jsp中九大内置对象及四大域对象和作用域
域对象的作用:保存数据,获取数据,共享数据
1.九大内置对象:不需要声明,就可以使用
①、request:就是HTTPServletRequest对象,代表的是客户端请求,主要是获取http协议传输的数据
②、response:HTTPServletResponse对象,代表的是服务端响应
③、session:HTTPSession对象,代表一次会话
④、application:ServletContext对象,代表当前Web应用
⑤、config:ServletConfig对象,代表当前Servlet,可以获取当前servlet配置信息
⑥、out:JspWriter对象,把结果输出到浏览器上
⑦、page:指当前jsp对应servlet的引用
⑧、exception:异常对象,可以处理jsp异常
⑨、pageContext:页面上下文,可以获取其他8个内置对象
2.jsp页面上四大域对象
作用域范围从大到小①>②>③>④
①、application:范围在当前web应用,只要在一处设置了,当前web应用下的其他地方都可以获取到
②、session:范围在一次会话,浏览器打开到关闭叫一次会话
③、request:范围在同一次请求
④、pageContext:范围在当前页面
四大域对象的例子:
attr.jsp:使用四个域对象存储值
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Insert title here</title> </head> <body> <h1>第一个页面</h1> <% application.setAttribute("name", "ServletContext"); session.setAttribute("name", "ServletSession"); request.setAttribute("name", "Request"); pageContext.setAttribute("name", "PageContext"); %> <hr> application:<%=application.getAttribute("name") %> <br> session:<%=session.getAttribute("name") %> <br> request:<%=request.getAttribute("name") %> <br> pageContext:<%=pageContext.getAttribute("name") %> <br> <a href="attr1.jsp">下一个页面</a> </body> </html>
attr1.jsp:获取存在域对象中的值
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Insert title here</title> </head> <body> <h1>第二个页面</h1> application:<%=application.getAttribute("name") %> <br> session:<%=session.getAttribute("name") %> <br> request:<%=request.getAttribute("name") %> <br> pageContext:<%=pageContext.getAttribute("name") %> <br> </body> </html>
一个jsp到另一个jsp
①、application:是在一个web应用中 application可以获取到值
②、session:范围在一次会话,浏览器打开到关闭叫一次会话 session可以获取到值
③、request:范围在同一次请求 因为第一次请求时在访问attr.jsp,访问attr1.jsp是第二次请求,request获取不到值
④、pageContext:范围在当前页面 跳转了页面,不在一个页面了,pageContext获取不到值
运行第一个界面,存值
点击跳转下一个页面,获取值