网站开发环境windows7的优点,企业年金一般一个月交多少,网页设计版权怎么写,一个在线做笔记的网站web监听器的定义; web监听器是servlet规范中定义的一种特殊类; 用于监听servletContext(application) 、 HttpSession (session)、ServeletRequest (request)等域对象的创建与销毁事件#xff1b; WEB容器在启动时#xff0c;它会为每个WEB应用程序都创建一个对应的ServletCo…web监听器的定义; web监听器是servlet规范中定义的一种特殊类; 用于监听servletContext(application) 、 HttpSession (session)、ServeletRequest (request)等域对象的创建与销毁事件 WEB容器在启动时它会为每个WEB应用程序都创建一个对应的ServletContext对象它代表当前web应用。 ServletConfig对象中维护了ServletContext对象的引用开发人员在编写servlet时可以通过ServletConfig.getServletContext方法获得ServletContext对象。 由于一个WEB应用中的所有Servlet共享同一个ServletContext对象因此Servlet对象之间可以通过ServletContext对象来实现通讯。ServletContext对象通常也被称之为context域对象。 在Servlet API中有一个ServletContextListener接口它能够监听ServletContext对象的生命周期实际上就是监听Web应用的生命周期。 可以在事件发生前、发生后做一些必要的处理;用于监听域对象的属性发生修改的事件; web监听器的用途; 1.统计在线人数和在线用户; 2.系统启动时加载初始化信息; 3.统计网站访问量; 4.跟SPring结合; 第一个web监听器 步骤1.创建一个实现监听器接口的类2.配置web.xml 进行注册;(点击desgin)然后选中Lister之后把实现的类路径选中就好了 按监听的对象划分 1.用于监听应用程序环境对象ServletContext)的事件监听器; 2.用于监听用户会话对象(HttpSession)的事件监听器; 3.用于监听请求消息对象ServletRequset)的事件监听器 按监听的事件划分 1.监听域对象自身的创建和销毁的事件监听器; 2.监听域对象的属性的增加和删除监听器; 3.监听绑定到HttpSession域的某个对象的事件监听器 监听域对象自身的创建和销毁的事件监听器; 在servlet规范中呢定义了三个接口分别是ServletContextListener HttpSessionLister ,ServletRequestLister来监听ServletContextHttpSessionServletRequset 对象的创建和销毁 1.ServletContext的创建和销毁 ServletContext实现了ServletContextListener 这个接口来监听这个对象的创建和销毁; ServletContextListener 有两个方法 public void contextInitialized(ServletContextEvent sce) ServletContext创建时调用; public vod contextDestoryed(ServletContextEvent sce) ServletContext销毁时调用; 事例代码 public class MyServletContextListener implements ServletContextListener {Overridepublic void contextDestroyed(ServletContextEvent arg0) {System.out.println(contextDestroyed);}Overridepublic void contextInitialized(ServletContextEvent arg0) {System.out.println(contextInitialized);}} View Code 2.HttpSession的对象创建与销毁 HttpSession实现了HttpSessionLister 这个接口来监听这个对象的创建和销毁; HttpSessionLister有两个方法 public void sessionCreated(HttpSessionEvent sce) Session创建时调用; public vod sessionDestroyed(((HttpSessionEvent sce); Session销毁时调用; 用途统计访问人数记录访问日志; session创建的时间当用户打开浏览器第一次访问我们的网站的时候这个时候session对象就会被创建;可以在session保存一些信息; 销毁session对象有三种方法;1.手动的点击退出的时候程序会去调用销毁的方法2当关闭浏览器的时候session对象也会被销毁。3没有关闭浏览器 但是会话超时了这个时候session对象也会被销毁; 我们可以在web.xml中配置 session-configtime-out1/time-out
/session-config View Code 事例代码 package com.imooc.listener;import java.util.ArrayList;import javax.servlet.annotation.WebListener;
import javax.servlet.http.HttpSessionEvent;
import javax.servlet.http.HttpSessionListener;import com.imooc.entity.User;
import com.imooc.util.SessionUtil;
WebListener
public class MyHttpSessionListener implements HttpSessionListener {private int userNumber 0;Overridepublic void sessionCreated(HttpSessionEvent arg0) {userNumber;arg0.getSession().getServletContext().setAttribute(userNumber, userNumber);}Overridepublic void sessionDestroyed(HttpSessionEvent arg0) {userNumber--;arg0.getSession().getServletContext().setAttribute(userNumber, userNumber);ArrayListUser userList null;//在线用户ListuserList (ArrayListUser)arg0.getSession().getServletContext().getAttribute(userList);if(SessionUtil.getUserBySessionId(userList, arg0.getSession().getId())!null){userList.remove(SessionUtil.getUserBySessionId(userList, arg0.getSession().getId()));}}} View Code ServletRequest实现了ServletRequestListener 接口; public void requestDestroyed(ServletRequestEvent arg0) Request创建时调用; public void requestInitialized(ServletRequestEvent arg0) Request销毁时调用; 用途读取参数记录访问历史 事例代码 import javax.servlet.ServletRequestEvent;
import javax.servlet.ServletRequestListener;
import javax.servlet.annotation.WebListener;
import javax.servlet.http.HttpServletRequest;WebListener
public class MyServletRequestListener implements ServletRequestListener {Overridepublic void requestDestroyed(ServletRequestEvent arg0) {}Overridepublic void requestInitialized(ServletRequestEvent arg0) {System.out.println(fff);}} View Code 转载于:https://www.cnblogs.com/zht0915/p/4688854.html