一、内置对象简介
名称 类型 描述
out javax.servlet.jsp.JspWriter 用于页面输出request javax.servlet.http.HttpServletRequest 得到用户请求信息,
response javax.servlet.http.HttpServletResponse 服务器向客户端的回应信息
config javax.servlet.ServletConfig 服务器配置,可以取得初始化参数
session javax.servlet.http.HttpSession 用来保存会话的信息
Session=”false”,没有这个变量
application javax.servlet.ServletContext 所有用户的共享信息
page java.lang.Object 指当前页面转换后的Servlet类的实例
pageContext javax.servlet.jsp.PageContext JSP的页面容器
JSP中最小的域对象,作用范围仅仅是当前页面。
一般情况下,在jspService方法使用。
还没有一个jspService中定义的局部变量好用。
exception java.lang.Throwable 表示JSP页面所发生的异常,在错误页中才起作用
存的是请求转发来页面(上一个页面)的异常
isErrorPage=”true”
一共九个内置对象:
pageContext
request
session
application
page
response
config
out
exception
二、pagecontext对象
pageContext对象作用详解:
①JSP的最小域对象(没有用)
②查找作用域的值
pageContext.findAttribute(String name); 是从page作用域开始一路有小到大依次查找作用域中的属性值,如果能找到,就返回,找不到就去大一些的作用域中接着查找,如果application作用域也找不到,返回null
findAttribute()底层:
例如:pageContext.findAttribute(“msg”);
if(pageContext.getAttribute("msg")!=null){
return pageContext.getAttribute("msg");
}else if(request.getAttribute("msg")!=null){
return request.getAttribute("msg");
}else if(session.getAttribute("msg")!=null){
return session.getAttribute("msg");
}else if(application.getAttribute("msg")!=null){
return application.getAttribute("msg");
}else{
return null;
}
③获取其他八大内置对象【研发】
工具类专门操作jsp,获取九大内置对象,工具类九个形参
pageContext
<%
pageContext.setAttribute("name", "this is a name");
request.setAttribute("key", "value2");
application.setAttribute("key", "this is a value");
application.setAttribute("name", "zhangsan");
String v1 = (String) pageContext.findAttribute("name");
String v2 = (String) pageContext.findAttribute("key");
%>
<%= v1%> this is a name
<%= "\r\n"%>
<%= v2%> value2
三、servlet域对象(总结和比较)
由大到小依次为:
1. ServletContext:
作用范围:整个WEB项目的所有请求、所有会话
生命周期:
创建:服务器启动时
销毁:服务器关闭时
服务器内存中一个项目只有一个对象
2. HttpSession:
作用范围:一次会话【N多次请求】
生命周期:
创建:第一次调用getSession
销毁:①服务器关闭
②session过期
③主动销毁session
问题:浏览器关闭,session是否销毁?
Session还存在,只有上述三种情况会销毁session
正常情况下,一个会话对应一个session对象
3. HttpServletRequest:
作用范围:一次请求
生命周期:
创建:服务器接收到任意请求
销毁:服务器对这次请求进行响应
首先先从最小的开始看,如果满足需求,就直接使用,如果满足不了,就向大的再依次尝试。
四、jsp域对象(总结和比较)
PageContext常量名 描述 作用域名称 域对象类型
PageScope 当前页面中有效 pageContext PageContext
RequestScope 一次请求范围 request HttpServletRequest
SessionScope 一次会话范围 session HttpSession
ApplicationScope 应用范围 application ServletContext
1 page:表示当前页,通常没用。jsp标签底层使用。
2 request:表示一次请求。通常一次请求就一个页面,但如果使用请求转发,可以涉及多个页面。
3 session:表示一次会话。可以在多次请求之间共享数据。
4 application:表示 一个web应用(项目)。可以整个web项目共享,多次会话共享数据。
pageContext作用域(了解、知道):
作用范围:当前页面
生命周期:
创建:JSP-Servlet 被实例化时。
销毁:jsp-Service方法执行完毕时
JSP从Request开始。