Servlet作用域,监听器,JSP九大内置对象
Servlet/JSP 作用域对象
- 页面域 (Page Scope)
- 对象:
pageContext
(javax.servlet.jsp.PageContext) - 作用范围:当前 JSP 页面。页面执行完毕后即失效。
- 对象:
- 请求域 (Request Scope)
- 对象:
request
(javax.servlet.http.HttpServletRequest) - 作用范围:一次完整的客户端请求链(可能包含多个 Servlet 或 JSP 的转发/包含)。
- 对象:
- 会话域 (Session Scope)
- 对象:
session
(javax.servlet.http.HttpSession) - 作用范围:同一用户的整个会话(从浏览器打开连接到关闭或会话超时)。
- 对象:
- 应用程序域 (Application Scope)
- 对象:
application
(javax.servlet.ServletContext) - 作用范围:整个 Web 应用。一个 Web 应用有且仅有一个
ServletContext
对象,所有用户共享。
- 对象:
总结:
- Servlet 中常用:
request
,session
,application
(3个作用域对象)。 - JSP 中内置:
pageContext
,request
,session
,application
(4个作用域对象)。
过滤器 (Filter)
- 位于 Servlet/JSP 处理请求之前或响应之后,用于执行预处理(如日志、权限检查、编码设置)和后处理(如压缩响应、修改响应头)等横切关注点逻辑。
Cookie 与 HttpSession (会话技术)
- HttpSession (服务器端会话):
- 数据存储在服务器端。
- 通常依赖一个名为
JSESSIONID
的 Cookie 或 URL 重写机制来标识同一用户的会话。
- Cookie (客户端会话):
- 数据存储在客户端(浏览器文件系统)。
- 客户端在后续请求中会自动携带有效的 Cookie 发送给服务器。
JSP 九大内置对象
pageContext
(页面域对象)request
(请求域对象)session
(会话域对象)application
(应用程序域对象)response
(响应对象 - javax.servlet.http.HttpServletResponse)out
(输出流对象 - javax.servlet.jsp.JspWriter)page
(代表当前 JSP 页面的实例,类似于this
)config
(页面配置对象 - javax.servlet.ServletConfig)exception
(异常对象 - java.lang.Throwable, 仅在isErrorPage="true"
的页面中可用)
监听器 (Listener)
用于监听 Web 应用中特定对象的生命周期事件和属性变更事件。
- ServletContext 监听
ServletContextListener
: 监听应用程序的创建和销毁。ServletContextAttributeListener
: 监听应用程序域 (ServletContext
) 中属性的添加、移除和替换。
- HttpSession 监听
HttpSessionListener
: 监听会话的创建和销毁 (超时或调用invalidate()
)。HttpSessionAttributeListener
: 监听会话域 (HttpSession
) 中属性的添加、移除和替换。HttpSessionBindingListener
(对象自身感知绑定/解绑到 session 的事件)HttpSessionActivationListener
(监听会话的钝化 (序列化) 和活化 (反序列化) 事件)
- ServletRequest 监听
ServletRequestListener
: 监听请求的创建和销毁 (请求处理完成)。ServletRequestAttributeListener
: 监听请求域 (ServletRequest
) 中属性的添加、移除和替换。