一、监听器
以下是3个Listener接口。
ServletRequestListener
HttpSessionListener
ServletContextListener
这三个监听器接口,分别监听Servlet中3种比较中要的对象的创建和销毁。这三个接口中分别有监听该对象创建和销毁事件的方法,服务器本身就是事件源。
listener的配置
<listener>
<listener-class>alan.servlet.listener.AlanContextListener</listener-class>
<!--listener-class也就是实现Listener接口的类-->
</listener>
Servlet中的重要对象(只针对应用)
数量 生命周期 是否线程安全 方法
-------------------------------------------------------------------------------------------------------------------------------------------
ServletContext 1 (天)全局的 不安全 setAttribute(String,Object) 全局属性
只有在应用关闭时才销毁 需要加同步访问 Object getAttribute(String) 任何Session
void removeAttibute(String) 都可以取到
-------------------------------------------------------------------------------------------------------------------------------------------
HttpSession 和用户的 (分/小时)局部的 不安全 setAttribute(String,Object) 存储用户级
数量相同 只在有效时间内存在 可以不加同步访问 Object getAttribute(String) 的属性
synchronized(session){......} void removeAttibute(String)
-------------------------------------------------------------------------------------------------------------------------------------------
ServletRequest 多个 (秒)局部的 线程安全 setAttribute(String,Object) 可以传递
(HttpServletRequest) 只在servic()和doGet() Object getAttribute(String) 大量信息
doPost()中存在 void removeAttibute(String) 只使用一次
-------------------------------------------------------------------------------------------------------------------------------------------
二、作用
1、主要对ServletContext、HttpSession、ServletRequest等对象行为的监听
2、必须要实现一个或多个listener interface
3、有两类监听器:声明周期监听器 ServletContextListener HttpSessionListener ServletRequestListener (2.4版本之后)
对象状态监听器 ServletContextAttributeListener HttpSessionAttributeListener ServletRequestAttributeListener
4、ServletContextListener中不能取得请求中的参数
以下是3个Listener接口。
ServletRequestListener
HttpSessionListener
ServletContextListener
这三个监听器接口,分别监听Servlet中3种比较中要的对象的创建和销毁。这三个接口中分别有监听该对象创建和销毁事件的方法,服务器本身就是事件源。
listener的配置
<listener>
<listener-class>alan.servlet.listener.AlanContextListener</listener-class>
<!--listener-class也就是实现Listener接口的类-->
</listener>
Servlet中的重要对象(只针对应用)
数量 生命周期 是否线程安全 方法
-------------------------------------------------------------------------------------------------------------------------------------------
ServletContext 1 (天)全局的 不安全 setAttribute(String,Object) 全局属性
只有在应用关闭时才销毁 需要加同步访问 Object getAttribute(String) 任何Session
void removeAttibute(String) 都可以取到
-------------------------------------------------------------------------------------------------------------------------------------------
HttpSession 和用户的 (分/小时)局部的 不安全 setAttribute(String,Object) 存储用户级
数量相同 只在有效时间内存在 可以不加同步访问 Object getAttribute(String) 的属性
synchronized(session){......} void removeAttibute(String)
-------------------------------------------------------------------------------------------------------------------------------------------
ServletRequest 多个 (秒)局部的 线程安全 setAttribute(String,Object) 可以传递
(HttpServletRequest) 只在servic()和doGet() Object getAttribute(String) 大量信息
doPost()中存在 void removeAttibute(String) 只使用一次
-------------------------------------------------------------------------------------------------------------------------------------------
二、作用
1、主要对ServletContext、HttpSession、ServletRequest等对象行为的监听
2、必须要实现一个或多个listener interface
3、有两类监听器:声明周期监听器 ServletContextListener HttpSessionListener ServletRequestListener (2.4版本之后)
对象状态监听器 ServletContextAttributeListener HttpSessionAttributeListener ServletRequestAttributeListener
4、ServletContextListener中不能取得请求中的参数