JSP
JSP:Java Server Pages,是一种动态网页开发技术。它使用JSP标签在HTML网页中插入Java代码。标签通常以<%开头以%>结束。动态插值使用 <%=值%> 的格式
jsp本质上就是servlet
JSP九大内置对象
private JSPWriter out;//输出流对象
private HttpServletRequest request;//请求对象
private HttpervletResponse response;//响应对象
private HttpSession sesion;//会话对象
private ServletContext application;//全局域对象,服务器只会创建一个
private ServletConfig config;//配置文件对象
private PageContext pageContext;//上下文关系对象,可以获取其他八大对象
private Object page;//当前页对象
//Exception exception//异常对象
JSP四大域
//请求域:将数据添加到request对象中,返回响应后,request对象就会被销毁
//使用场景:短时间数据的传输
request.setAttribute(String key, Object value);
Object obj = request.getAttribute(String key);
//会话域:将数据添加到session中,默认30分钟有效,不同的session之间数据不能共享
//使用场景:较长时间的数据传输,常用于web页面中的登陆验证界面(登陆成功后浏览器分配一个session键值对[JSESSIONID])
sesion.setAttribute(String key, Object value);
Object obj = sesion.getAttribute(String key);
//全局域;将数据添加到application中,项目启动时创建,当项目关闭时被销毁,所有用户可以共享
//使用场景:一般用于多个客户端共享数据时使用
application.setAttribute(String key, Object value);
Object obj = application.getAttribute(String key);
//当前页面域:page对象即this,代表JSP本身,可以调用Servlet类定义的方法
//使用场景:很少使用
page.setAttribute(String key, Object value);
Object obj = page.getAttribute(String key);
Servlet同样也有前面三种域,但是JSP是响应页面,所以有当前页面page
EL表达式
主要用途:获取数据
语法:
${要获取的数据}
注意:
通过EL表达式获取数据时,只能通过
Servlet
中设置的属性进行获取,比如
Servlet
设置了stu
的属性(stu
是一个Student
类的实例化对象)request.setAttribute("stu", student);
在JSP页面中获取该学生对象就应该通过 对象.属性 的方式进行获取
${stu.name} ${stu.age} ...
EL表达式获取数据的优先级
page(当前页面域) > request(请求域) > session(会话域) > application(全局域)
JSTL标签
JSTL标签就是使用标签取代JSP页面上的Java代码
使用方法:
-
导入依赖(导入需要的jar包)
-
引入标签(其中
prefix
是取得别名)<%@taglib uri="http://..../core" prefix="c"%>
-
使用标签(通常配合EL表达式进行使用)