- package com.lee.listener;
- import javax.servlet.ServletContextEvent;
- import javax.servlet.ServletContextListener;
- import javax.servlet.annotation.WebListener;
- /**
- * Application Lifecycle Listener implementation class GetConnListener
- * ServletContextListener :用于监听Web应用启动和关闭
- * ServletContextAttributeListener: 用于监听ServletContxt范围(appliaction)内属性的改变
- *
- *
- * ServletRequestListener:用于监听用户的请求
- * SerlvetRequestAttributeListener:用于监听ServletReqeust范围(request)内属性的改变
- *
- * HttpSessionListener:用于监听用户sesion的开始和结束
- * HttpSessionAtributeListener:用于监听HttpSession范围(session)内属性的变化.
- */
- @WebListener
- public class GetConnListener implements ServletContextListener {
- /**
- * Default constructor.
- */
- public GetConnListener() {
- // TODO Auto-generated constructor stub
- }
- /**
- * @see ServletContextListener#contextInitialized(ServletContextEvent)
- */
- public void contextInitialized(ServletContextEvent arg0) {
- // TODO Auto-generated method stub
- System.out.println("Web 应用初始化了");
- }
- /**
- * @see ServletContextListener#contextDestroyed(ServletContextEvent)
- */
- public void contextDestroyed(ServletContextEvent arg0) {
- // TODO Auto-generated method stub
- System.out.println("Web 应用关闭了");
- }
- }
- package com.lee.listener;
- import javax.servlet.ServletContext;
- import javax.servlet.ServletContextAttributeEvent;
- import javax.servlet.ServletContextAttributeListener;
- import javax.servlet.annotation.WebListener;
- /**
- * Application Lifecycle Listener implementation class MyServletConnextAtrributeListener
- *
- */
- @WebListener
- public class MyServletConnextAtrributeListener implements ServletContextAttributeListener {
- /**
- * Default constructor.
- */
- public MyServletConnextAtrributeListener() {
- // TODO Auto-generated constructor stub
- }
- /**
- * @see ServletContextAttributeListener#attributeAdded(ServletContextAttributeEvent)
- */
- public void attributeAdded(ServletContextAttributeEvent arg0) {
- ServletContext application=arg0.getServletContext();
- String name=arg0.getName();
- Object value=arg0.getValue();
- System.out.println(application+"范围内添加了名为:"+name+",值为"+value+"的属性");
- }
- /**
- * @see ServletContextAttributeListener#attributeReplaced(ServletContextAttributeEvent)
- */
- public void attributeReplaced(ServletContextAttributeEvent arg0) {
- ServletContext application=arg0.getServletContext();
- String name=arg0.getName();
- Object value=arg0.getValue();
- System.out.println(application+"范围内名为:"+name+",值被替换为"+value+"的属性");
- }
- /**
- * @see ServletContextAttributeListener#attributeRemoved(ServletContextAttributeEvent)
- */
- public void attributeRemoved(ServletContextAttributeEvent arg0) {
- ServletContext application=arg0.getServletContext();
- String name=arg0.getName();
- Object value=arg0.getValue();
- System.out.println(application+"范围内名为:"+name+",值为"+value+"的被删除了!");
- }
- }
- package com.lee.listener;
- import java.util.HashMap;
- import java.util.Map;
- import javax.servlet.ServletContext;
- import javax.servlet.annotation.WebListener;
- import javax.servlet.http.HttpSession;
- import javax.servlet.http.HttpSessionEvent;
- import javax.servlet.http.HttpSessionListener;
- /**
- * Application Lifecycle Listener implementation class OnLineListener
- *
- */
- @WebListener
- public class OnLineListener implements HttpSessionListener {
- /**
- * Default constructor.
- */
- public OnLineListener() {
- // TODO Auto-generated constructor stub
- }
- /**
- * @see HttpSessionListener#sessionCreated(HttpSessionEvent)
- */
- public void sessionCreated(HttpSessionEvent arg0) {
- // TODO Auto-generated method stub
- HttpSession session=arg0.getSession();
- //获取sessionid
- String sessionid=session.getId();
- ServletContext application=session.getServletContext();
- if(session.isNew()){//如果是一次新的回话
- String user=(String)session.getAttribute("user");
- user=(user==null)? "游客":user;
- Map<String,String> online=(Map<String,String>)application.getAttribute("online");
- if(online==null){
- online=new HashMap<String,String>();
- }
- online.put(sessionid, user);
- application.setAttribute("online", online);
- }
- }
- /**
- * @see HttpSessionListener#sessionDestroyed(HttpSessionEvent)
- */
- public void sessionDestroyed(HttpSessionEvent arg0) {
- // TODO Auto-generated method stub
- HttpSession session=arg0.getSession();
- ServletContext application=session.getServletContext();
- String sessionid=session.getId();
- Map<String,String> online=(Map<String,String>)application.getAttribute("online");
- if(online!=null)
- online.remove(sessionid);
- application.setAttribute("online",online);
- }
- }
- package com.lee.listener;
- import javax.servlet.ServletRequest;
- import javax.servlet.ServletRequestAttributeEvent;
- import javax.servlet.ServletRequestAttributeListener;
- import javax.servlet.ServletRequestEvent;
- import javax.servlet.ServletRequestListener;
- import javax.servlet.annotation.WebListener;
- import javax.servlet.http.HttpServletRequest;
- import javax.servlet.http.HttpSession;
- /**
- * Application Lifecycle Listener implementation class RequestListenter
- *
- */
- @WebListener
- public class RequestListenter implements ServletRequestListener, ServletRequestAttributeListener {
- /**
- * Default constructor.
- */
- public RequestListenter() {
- // TODO Auto-generated constructor stub
- }
- /**
- * @see ServletRequestListener#requestDestroyed(ServletRequestEvent)
- */
- public void requestDestroyed(ServletRequestEvent arg0) {
- // TODO Auto-generated method stub
- System.out.println("请求被初始化");
- }
- /**
- * @see ServletRequestAttributeListener#attributeAdded(ServletRequestAttributeEvent)
- */
- public void attributeAdded(ServletRequestAttributeEvent arg0) {
- // TODO Auto-generated method stub
- ServletRequest request=arg0.getServletRequest();
- String name=arg0.getName();
- Object value=arg0.getValue();
- System.out.println(request+"范围内添加了名为"+name+",值为"+value+"的属性");
- }
- /**
- * @see ServletRequestAttributeListener#attributeRemoved(ServletRequestAttributeEvent)
- */
- public void attributeRemoved(ServletRequestAttributeEvent arg0) {
- ServletRequest request=arg0.getServletRequest();
- String name=arg0.getName();
- Object value=arg0.getValue();
- System.out.println(request+"范围内删除了名为"+name+",值为"+value+"的属性");
- }
- /**
- * @see ServletRequestAttributeListener#attributeReplaced(ServletRequestAttributeEvent)
- */
- public void attributeReplaced(ServletRequestAttributeEvent arg0) {
- ServletRequest request=arg0.getServletRequest();
- String name=arg0.getName();
- Object value=arg0.getValue();
- System.out.println(request+"范围内替换了名为"+name+",值为"+value+"的属性");
- }
- /**
- * @see ServletRequestListener#requestInitialized(ServletRequestEvent)
- */
- public void requestInitialized(ServletRequestEvent arg0) {
- HttpServletRequest request=(HttpServletRequest)arg0.getServletRequest();
- HttpSession session =request.getSession();
- String sessionid=session.getId();
- String ip=request.getRemoteAddr();
- String page=request.getRequestURI();
- String user=(String)session.getAttribute("user");
- user=(user==null)?"游客":user;
- try {
- //将用户登录存入 数据库 通过sessionid 查询.
- } catch (Exception e) {
- // TODO: handle exception
- }
- System.out.println("---发出---"+request.getRequestURI()+
- "Addr:"+request.getRemoteAddr()+
- "Host:"+request.getRemoteHost()+
- "Port:"+request.getRemotePort()+
- "User:"+request.getRemoteUser()+
- "SessionId:"+request.getRequestedSessionId());
- System.out.println("请求被初始化");
- }
- }