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) 中属性的添加 、移除 和替换。