**JSP(全称JavaServer Pages)**是由Sun Microsystems公司主导创建的一种动态网页技术标准。JSP部署于网络服务器上,可以响应客户端发送的请求,并根据请求内容动态地生成HTML、XML或其他格式文档的Web网页,然后返回给请求者
jsp的本质是Servlet
jsp能够写java代码
<%@ page import="java.util.Random" %> //jsp导入包
<% %> 在这里面写的java代码,会生成在service中
<%! %> 这里面写的java代码会被编译成成员变量
<%= %> 这里面写的是页面输出内容
HttpServletContext application; 整个项目
HttpSession session; 一次会话
HttpServletRequest requst ; 一次请求
HttpPageContext pageContext; 当前页面
他们的主要核心方法是
setAttribute(键,值); //设置键值对key-value
getAttribute(键); //通过key获取value
removeAttribute(键); //通过key移除键值对
基本概述
1.EL(Express Lanuage)表达式可以嵌入在jsp页面内部
2.可以替代jsp页面中输出脚本的编写,减少jsp脚本的编写
3.书写方式:${EL表达式内容}
<%@ page contentType="text/html;charset=UTF-8" language="java" isELIgnored="false" %>
el表达式获取值会从最小作用域优先拿取
作用域大小:pageContest < request < session
${
域中的key值} //通过key获取四个域中的value(优先最小域)
${
对象.属性} //获取对象中的属性值 (user.name)
${
对象.对象.属性} //获取对象里面对象的属性值 (user.birthday.year)
${
数组名[0].name} //通过下标获取数组中的对象,再获取值
案例:
User类
public class User {
private String name;
private int age;
private String sex;
private Birthday birthday;
}
Birthday类
public class Birthday {
private int year;
private int month;
private int day;
}
Jsp页面(这里直接在jsp页面写java代码)
导入包
<%@ page import="com.xgf.bean.User" %>
<%@ page import="com.xgf.bean.Birthday" %>
向作用于中添加值:
<%
//存入值
request.setAttribute("value","");
//存入对象
User user = new User("striveday01",20,"男",new Birthday(2000,10,23));
request.setAttribute("user", user);
ArrayList<User> userList = new ArrayList<User>();
userList .add(new User("list_User01",22,"男",new Birthday(1998,12,23)));
userList .add(new User("list_User02",21,"女",new Birthday(1999,12,23)));
userList .add(new User("list_User03",20,"女",new Birthday(2000,12,23)));
//存入数组
request.setAttribute("userList ", userList );
%>
在jsp中用EL表达式获取值
${
value} //直接获取值
${
user.name} //获取对象的name属性值
${
user.birthday.year} //获取user对象下的birthday对象下的year属性
${
userList[0].name} //获取数组对象里面的user的name值
String 类型: 空串和null都为空
Java Bean对象: null为空
集合 : 集合中没有数据,则为空
request.getContextPath();
${
pageContext.request.contextPath}