一、监听器定义
- 现实生活
-web监听器
Paste_Image.png Paste_Image.png二、web监听器应用
Paste_Image.png三、创建监听器
- 1、创建一个实现监听器接口的类。
public class FirstListener implements ServletContextListener {
@Override
//销毁方法
public void contextDestroyed(ServletContextEvent arg0) {
System.out.println("contextDestroyed");
}
@Override
//初始化方法
public void contextInitialized(ServletContextEvent arg0) {
System.out.println("contextInitialized");
}
}
- 2、配置web.xml进行注册。
<listener>
<listener-class>com.imooc.FirstListener</listener-class>
</listener>
四、监听器的启动顺序
Paste_Image.png五、监听器分类
- 1、按监听对象划分
- 2、按监听事件划分
- ServletConntext初始化方法:定时器或者全局属性对象
1、配置web.xml:
<context-param>
<param-name>initParam</param-name>
<param-value>imooc</param-value>
</context-param>
2、类中调用:
public void contextInitialized(ServletContextEvent arg0) {
String initParam=arg0.getServletContext().getInitParameter("initParam");
System.out.println("contextInitialized:initParam="+initParam);
}
- HttpSession监听器:统计在线人数或者记录访问日志
1、配置web.xml:
<listener>
<listener-class>mypackage.MySessionListener</listener-class>
</listener>
2、类中调用:
public class HttpSessionListener implements javax.servlet.http.HttpSessionListener {
@Override
//初始化方法
public void sessionCreated(HttpSessionEvent arg0) {
System.out.println("sessionCreated");
}
@Override
//销毁方法
public void sessionDestroyed(HttpSessionEvent arg0) {
System.out.println("sessionDestroyed");
}
}
- 销毁session
1.关闭服务器
2.关闭浏览器
3.不关闭浏览器,session超时,可以在web.xml配置session超时的时间
<session-config>
<session-timeout>0</session-timeout>
</session-config>
0:session没有超时的限制
1:session超时1分钟后销毁,但是并不是准确的一分钟
- ServletRequest监听器:读取参数或者记录访问历史
public class ServletRequestListener implements javax.servlet.ServletRequestListener {
@Override
public void requestDestroyed(ServletRequestEvent arg0) {
System.out.println("requestDestroyed");
}
@Override
public void requestInitialized(ServletRequestEvent arg0) {
String name=arg0.getServletRequest().getParameter("name");
System.out.println("requestInitialized"+name);
}
}
Paste_Image.png
网友评论