Servlet3.0 Listener

Java代码   收藏代码
  1. package com.lee.listener;  
  2.   
  3. import javax.servlet.ServletContextEvent;  
  4. import javax.servlet.ServletContextListener;  
  5. import javax.servlet.annotation.WebListener;  
  6.   
  7. /** 
  8.  * Application Lifecycle Listener implementation class GetConnListener 
  9.  * ServletContextListener :用于监听Web应用启动和关闭 
  10.  * ServletContextAttributeListener: 用于监听ServletContxt范围(appliaction)内属性的改变 
  11.  *  
  12.  *  
  13.  * ServletRequestListener:用于监听用户的请求 
  14.  * SerlvetRequestAttributeListener:用于监听ServletReqeust范围(request)内属性的改变 
  15.  *  
  16.  * HttpSessionListener:用于监听用户sesion的开始和结束 
  17.  * HttpSessionAtributeListener:用于监听HttpSession范围(session)内属性的变化. 
  18.  */  
  19. @WebListener  
  20. public class GetConnListener implements ServletContextListener {  
  21.   
  22.     /** 
  23.      * Default constructor.  
  24.      */  
  25.     public GetConnListener() {  
  26.         // TODO Auto-generated constructor stub  
  27.     }  
  28.   
  29.     /** 
  30.      * @see ServletContextListener#contextInitialized(ServletContextEvent) 
  31.      */  
  32.     public void contextInitialized(ServletContextEvent arg0) {  
  33.         // TODO Auto-generated method stub  
  34.         System.out.println("Web 应用初始化了");  
  35.           
  36.     }  
  37.   
  38.     /** 
  39.      * @see ServletContextListener#contextDestroyed(ServletContextEvent) 
  40.      */  
  41.     public void contextDestroyed(ServletContextEvent arg0) {  
  42.         // TODO Auto-generated method stub  
  43.         System.out.println("Web 应用关闭了");  
  44.     }  
  45.       
  46. }  

Java代码   收藏代码
  1. package com.lee.listener;  
  2.   
  3. import javax.servlet.ServletContext;  
  4. import javax.servlet.ServletContextAttributeEvent;  
  5. import javax.servlet.ServletContextAttributeListener;  
  6. import javax.servlet.annotation.WebListener;  
  7.   
  8. /** 
  9.  * Application Lifecycle Listener implementation class MyServletConnextAtrributeListener 
  10.  * 
  11.  */  
  12. @WebListener  
  13. public class MyServletConnextAtrributeListener implements ServletContextAttributeListener {  
  14.   
  15.     /** 
  16.      * Default constructor.  
  17.      */  
  18.     public MyServletConnextAtrributeListener() {  
  19.         // TODO Auto-generated constructor stub  
  20.     }  
  21.   
  22.     /** 
  23.      * @see ServletContextAttributeListener#attributeAdded(ServletContextAttributeEvent) 
  24.      */  
  25.     public void attributeAdded(ServletContextAttributeEvent arg0) {  
  26.        ServletContext application=arg0.getServletContext();  
  27.        String name=arg0.getName();  
  28.        Object value=arg0.getValue();  
  29.        System.out.println(application+"范围内添加了名为:"+name+",值为"+value+"的属性");  
  30.     }  
  31.   
  32.     /** 
  33.      * @see ServletContextAttributeListener#attributeReplaced(ServletContextAttributeEvent) 
  34.      */  
  35.     public void attributeReplaced(ServletContextAttributeEvent arg0) {  
  36.         ServletContext application=arg0.getServletContext();  
  37.         String name=arg0.getName();  
  38.         Object value=arg0.getValue();  
  39.         System.out.println(application+"范围内名为:"+name+",值被替换为"+value+"的属性");  
  40.     }  
  41.   
  42.     /** 
  43.      * @see ServletContextAttributeListener#attributeRemoved(ServletContextAttributeEvent) 
  44.      */  
  45.     public void attributeRemoved(ServletContextAttributeEvent arg0) {  
  46.         ServletContext application=arg0.getServletContext();  
  47.         String name=arg0.getName();  
  48.         Object value=arg0.getValue();  
  49.         System.out.println(application+"范围内名为:"+name+",值为"+value+"的被删除了!");  
  50.     }  
  51.       
  52. }  


Java代码   收藏代码
  1. package com.lee.listener;  
  2.   
  3. import java.util.HashMap;  
  4. import java.util.Map;  
  5.   
  6. import javax.servlet.ServletContext;  
  7. import javax.servlet.annotation.WebListener;  
  8. import javax.servlet.http.HttpSession;  
  9. import javax.servlet.http.HttpSessionEvent;  
  10. import javax.servlet.http.HttpSessionListener;  
  11.   
  12. /** 
  13.  * Application Lifecycle Listener implementation class OnLineListener 
  14.  * 
  15.  */  
  16. @WebListener  
  17. public class OnLineListener implements HttpSessionListener {  
  18.   
  19.     /** 
  20.      * Default constructor.  
  21.      */  
  22.     public OnLineListener() {  
  23.         // TODO Auto-generated constructor stub  
  24.     }  
  25.   
  26.     /** 
  27.      * @see HttpSessionListener#sessionCreated(HttpSessionEvent) 
  28.      */  
  29.     public void sessionCreated(HttpSessionEvent arg0) {  
  30.         // TODO Auto-generated method stub  
  31.           
  32.         HttpSession session=arg0.getSession();  
  33.         //获取sessionid  
  34.         String sessionid=session.getId();  
  35.         ServletContext application=session.getServletContext();  
  36.         if(session.isNew()){//如果是一次新的回话  
  37.             String user=(String)session.getAttribute("user");  
  38.             user=(user==null)? "游客":user;  
  39.             Map<String,String> online=(Map<String,String>)application.getAttribute("online");  
  40.             if(online==null){  
  41.                 online=new HashMap<String,String>();  
  42.             }  
  43.             online.put(sessionid, user);  
  44.             application.setAttribute("online", online);  
  45.               
  46.         }   
  47.               
  48.           
  49.     }  
  50.   
  51.     /** 
  52.      * @see HttpSessionListener#sessionDestroyed(HttpSessionEvent) 
  53.      */  
  54.     public void sessionDestroyed(HttpSessionEvent arg0) {  
  55.         // TODO Auto-generated method stub  
  56.         HttpSession session=arg0.getSession();  
  57.         ServletContext application=session.getServletContext();  
  58.         String sessionid=session.getId();  
  59.         Map<String,String> online=(Map<String,String>)application.getAttribute("online");  
  60.         if(online!=null)  
  61.             online.remove(sessionid);  
  62.         application.setAttribute("online",online);  
  63.     }  
  64.       
  65. }  

Java代码   收藏代码
  1. package com.lee.listener;  
  2.   
  3. import javax.servlet.ServletRequest;  
  4. import javax.servlet.ServletRequestAttributeEvent;  
  5. import javax.servlet.ServletRequestAttributeListener;  
  6. import javax.servlet.ServletRequestEvent;  
  7. import javax.servlet.ServletRequestListener;  
  8. import javax.servlet.annotation.WebListener;  
  9. import javax.servlet.http.HttpServletRequest;  
  10. import javax.servlet.http.HttpSession;  
  11.   
  12. /** 
  13.  * Application Lifecycle Listener implementation class RequestListenter 
  14.  * 
  15.  */  
  16. @WebListener  
  17. public class RequestListenter implements ServletRequestListener, ServletRequestAttributeListener {  
  18.   
  19.     /** 
  20.      * Default constructor.  
  21.      */  
  22.     public RequestListenter() {  
  23.         // TODO Auto-generated constructor stub  
  24.     }  
  25.   
  26.     /** 
  27.      * @see ServletRequestListener#requestDestroyed(ServletRequestEvent) 
  28.      */  
  29.     public void requestDestroyed(ServletRequestEvent arg0) {  
  30.         // TODO Auto-generated method stub  
  31.          System.out.println("请求被初始化");  
  32.     }  
  33.   
  34.     /** 
  35.      * @see ServletRequestAttributeListener#attributeAdded(ServletRequestAttributeEvent) 
  36.      */  
  37.     public void attributeAdded(ServletRequestAttributeEvent arg0) {  
  38.         // TODO Auto-generated method stub  
  39.         ServletRequest request=arg0.getServletRequest();  
  40.         String name=arg0.getName();  
  41.         Object value=arg0.getValue();  
  42.         System.out.println(request+"范围内添加了名为"+name+",值为"+value+"的属性");  
  43.           
  44.     }  
  45.   
  46.     /** 
  47.      * @see ServletRequestAttributeListener#attributeRemoved(ServletRequestAttributeEvent) 
  48.      */  
  49.     public void attributeRemoved(ServletRequestAttributeEvent arg0) {  
  50.         ServletRequest request=arg0.getServletRequest();  
  51.         String name=arg0.getName();  
  52.         Object value=arg0.getValue();  
  53.         System.out.println(request+"范围内删除了名为"+name+",值为"+value+"的属性");  
  54.     }  
  55.   
  56.     /** 
  57.      * @see ServletRequestAttributeListener#attributeReplaced(ServletRequestAttributeEvent) 
  58.      */  
  59.     public void attributeReplaced(ServletRequestAttributeEvent arg0) {  
  60.         ServletRequest request=arg0.getServletRequest();  
  61.         String name=arg0.getName();  
  62.         Object value=arg0.getValue();  
  63.         System.out.println(request+"范围内替换了名为"+name+",值为"+value+"的属性");  
  64.     }  
  65.   
  66.     /** 
  67.      * @see ServletRequestListener#requestInitialized(ServletRequestEvent) 
  68.      */  
  69.     public void requestInitialized(ServletRequestEvent arg0) {  
  70.        HttpServletRequest request=(HttpServletRequest)arg0.getServletRequest();  
  71.        HttpSession session =request.getSession();  
  72.        String sessionid=session.getId();  
  73.        String ip=request.getRemoteAddr();  
  74.        String page=request.getRequestURI();  
  75.        String user=(String)session.getAttribute("user");  
  76.        user=(user==null)?"游客":user;  
  77.        try {  
  78.           
  79.            //将用户登录存入 数据库  通过sessionid 查询.  
  80.                  
  81.         } catch (Exception e) {  
  82.             // TODO: handle exception  
  83.         }  
  84.                  
  85.          
  86.        System.out.println("---发出---"+request.getRequestURI()+  
  87.                "Addr:"+request.getRemoteAddr()+  
  88.                "Host:"+request.getRemoteHost()+  
  89.                "Port:"+request.getRemotePort()+  
  90.                "User:"+request.getRemoteUser()+  
  91.                "SessionId:"+request.getRequestedSessionId());  
  92.        System.out.println("请求被初始化");  
  93.     }  
  94.       
  95. }  
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值