[关闭]
@duyao 2015-05-30T05:36:54.000000Z 字数 4094 阅读 1999

监听器

java_web


定义

监听器可以监听客户端发送的请求和服务器端发出的响应,满足servlet规范,是一种特殊的servlet类。
可以监听ServletContext,HttpSeesionServletRequest,即jsp域对象中的application,sessionrequest

用途

可以在事件发生前后做一些必要的处理。
1. 统计在线人数和在线用户
2. 系统启动时加载初始化信息
3. 统计网站访问量
4. 与spring进行结合

建立监听器的步骤

  1. 创建一个实现监听器接口的类
  2. 配置web.xml进行注册

顺序问题

多个监听器

若资源中有多个监听器,则按照其在web.xml的注册顺序进行启动

监听器,过滤器和servlet

若资源中有监听器,过滤器和servlet多者,其优先级是:监听器>过滤器>servlet

分类

按照监听对象划分

按照监听的事件划分

用法

监听器在servlet2.5下的用法

  1. <context-param>
  2. <param-name>test</param-name>
  3. <param-value>Amy</param-value>
  4. </context-param>

主要方法如下:

  1. public void contextDestroyed(ServletContextEvent arg0) {
  2. // TODO Auto-generated method stub
  3. //通过ServletContextEvent可以得到ServletContext
  4. ServletContext context=arg0.getServletContext();
  5. }
  6. public void contextInitialized(ServletContextEvent arg0) {
  7. // TODO Auto-generated method stub
  8. String nameString = arg0.getServletContext().getInitParameter("test");
  9. System.out.println("contextInitialized + name = " + nameString);
  10. }
  1. <session-config>
  2. <session-timeout>1</session-timeout>
  3. </session-config>

主要方法如下:

  1. public void sessionCreated(HttpSessionEvent arg0) {
  2. // TODO Auto-generated method stub
  3. //通过HttpSessionEvent得到HttpSession
  4. HttpSession httpSession = arg0.getSession();
  5. }
  6. public void sessionDestroyed(HttpSessionEvent arg0) {
  7. // TODO Auto-generated method stub
  8. }

主要方法如下:

  1. public void requestDestroyed(ServletRequestEvent arg0) {
  2. // TODO Auto-generated method stub
  3. }
  4. public void requestInitialized(ServletRequestEvent arg0) {
  5. // TODO Auto-generated method stub
  6. //得到传入的参数
  7. String nameString = arg0.getServletRequest().getParameter("name");
  8. }

监听器在servlet3.0下的用法

只需要标注@WebListener,无需再web.xml注册,并且不能指定顺序(2.5的顺序是根据在web.xml的注册顺序)
并至少实现一个方法即可:

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注