转载自: https://blog.csdn.net/qq_32224047/article/details/106886649
1.什么是隐含对象
隐含对象(也称隐式对象)是指容器自动创建,在JSP文件中可以直接使用的对象。
作用:JSP预先创建的这些对象可以简化对HTTP请求、响应信息的访问
2.JSP页面中的隐含对象分类
2.1.输入输出对象:
- request
- response
- out
2.2作用域通信对象:
- session
- application
- pageContext
2.3Servlet对象:
- page
- config
2.4异常对象
- exception
上面列出的就是JSP的九大隐式对象,其中pageContext 对象比较特殊,在此专门说明
pageContext:
1.pageContext代表当前的环境
2.pageContext不仅能作为域对象,它能够获取其他的八大隐式对象
page对象的说明
page 对象是为了执行当前页面应答请求而设置的 Servlet 类的实体,即显示 JSP 页面自身,与类的 this 指针类似(可理解为Servlet中的this),使用它来调用 Servlet 类中所定义的方法,只有在本页面内才是合法的。它是 java.lang.Object 类的实例,对于开发 JSP 比较有用。表 1 列出了 page 对象常用的方法。
方法 | 说明 |
---|---|
class getClass() | 返回当前 Object 的类 |
int hashCode | 返回 Object 的 hash 代码 |
String toString | 把 Object 对象转换成 String 类的对象 |
boolean equals(Object obj) | 比较对象和指定的对象是否相等 |
void copy (Object obj) | 把对象拷贝到指定的对象中 |
Object clone() | 复制对象(克隆对象) |
3.JSP页面中的隐含对象类型及说明
隐含对象 | 类型 | 说明 |
request | HttpServletRequest | 请求信息 |
response | HttpServletResponse | 响应信息 |
out | JSPWriter | 输出的数据流 |
session | HttpSession | 会话 |
application | ServletContext | 全局的上下文对象 |
pageContext | PageContext | JSP页面上下文 |
page | Object | JSP页面本身 |
config | ServletConfig | Servlet配置对象 |
exception | Throwable | 捕获网页异常 |
4. 四大域对象
4.1ServletContext
生命周期:和web应用的生命一样长
作用范围:整个web应用
功能:在整个web应用范围内共享数据
4.2Session
生命周期:
创建:第一次调用request.getSession()方法时创建
销毁:超时(默认30分钟)、杀死(invalidate方法)、意外身亡
作用范围:整个会话
功能:在整个会话范围内共享数据
4.3Request
生命周期:一次请求开始时创建,请求结束时销毁
作用范围:整个请求链
功能:在整个请求链范围内共享数据
4.4pageContext
生命周期:开始访问jsp页面时创建,访问结束时销毁
作用范围:整个jsp页面
功能:在整个jsp页面范围内共享数据
注意:EL表达式获取数据时,只能从四大域中获取
获取顺序为:
pageContext->request->session->ServletContext
注:因为ServletContext作用范围太大,在实际应用中使用较少(使用方式:一般是在后端,比如servlet 中将数据存储到域中,然后转发到对应的jsp页面,在jsp页面获取数值)
5.pageContext对象获取八大隐式对象方法
5.1pageContext对象代表当前jsp页面环境的对象
5.2获取方法
getPage() :获取page隐式对象
getRequest() :获取request隐式对象
getResponse() :获取response隐式对象
getServletConfig() :获取ServletConfig隐式对象
getServletContext() :获取ServletContext隐式对象
getSession() :获取Session隐式对象
getException() :获取Exception隐式对象
getOut() :获取out隐式对象
注意:八大隐式对象在jsp中是可以直接使用,不必采用上述方法去获取,但是在EL表达式中只能通过pageContext获取