监听器
作用: 监听web中的域对象:ServletContext, ServletRequest, HttpSession
监听内容(也叫事件源):
- 监听三个对象的创建和销毁(3个)
- 监听三个对象属性的变化(增,删,改)(3个)
- 监听session中javabean的状态(2个)[绑定和解绑;钝化和活化]
监听三个对象的创建和销毁
- ServletContextListener:监听ServletContext域对象
- ServletRequestListener:监听ServletRequest域对象
- HttpSessionListener: 监听HttpSession域对象
需要实现每个域对象对应的监听接口并重写方法才能够实现监听
监听三个对象属性的变化
- ServletContextAttributeListener:监听ServletContext域对象的属性变化
- ServletRequestAttributeListener:监听ServletRequest域对象的属性变化
- HttpSessionAttributeListener:监听HttpSession域对象的属性变化
需要实现每个域对象对应的监听接口并重写方法才能够实现监听
监听session中javabean的状态
- HttpSessionBindingListener: 监听绑定和解绑
- HttpSessionActivationListener: 钝化和活化
javabean类需要继承对应的监听接口并重写方法才能够实现监听
将监听器和事件源绑定
像配置servlet一样在xml中配置一个
<listener>
<listener-class>监听器的全限定类名</listener-class>
</listener>
三个域对象的生命周期
ServletContext:
创建时间:服务器创建
销毁时间:服务器关闭
ServletRequest:
创建时间:请求来的时候
销毁时间:响应完
HtttpSession:
创建时间:
java中第一次调用request.getSession()方法时
jsp访问的时候创建
销毁时间:
session超时
手动销毁session(invalidate())
服务器非正常关闭
Filter过滤器
什么是过滤器:
一个实现了特殊接口(即Filter)的java类.实现对请求资源的过滤功能
过滤器的配置
像配置servlet一样在xml中配置
<filter>
<filter-name>过滤器唯一标识</filter-name>
<filter-class>过滤器的全限定类名</filter-class>
</filter>
<filter-mapping>
<filter-name>过滤器唯一标识</filter-name>
<url-pattern>/*</url-pattern><!--对指定请求路径拦截;此处针对所有请求进行拦截-->
</filter-mapping>
自定义监听器
步骤分析:
- 自定义一个监听器类,需要实现对应的监听器接口
- 重写接口提供的方法(即监听到之后要做什么事情)
以监听ServletContext的创建和销毁为例:
package com.daben.listener;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
public class MyServletContextListener implements ServletContextListener {
@Override
public void contextDestroyed(ServletContextEvent arg0) {
// 销毁操作
System.out.println("servletContext被销毁了");
}
@Override
public void contextInitialized(ServletContextEvent arg0) {
// 创建操作
System.out.println("servletContext被创建了!");
}
}
在web.xml中将自定义的监听器和事件源进行绑定
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
<display-name>listener</display-name>
<listener>
<listener-class>com.daben.listener.MyServletContextListener</listener-class>
</listener>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list>
</web-app>
声明:
有一些博文是看的黑马程序员视频,然后跟着老师做的笔记
Spring是跟子路老师学的
特此感谢,写这些文章的目的是为了自己方便查阅