一、过滤器
1、实现
(1)filter.java 实现Filter接口
//过滤器
public class MyFilter implements Filter {
@Override
public void init(FilterConfig filterConfig) throws ServletException {
System.out.println("filter..init..");
}
@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)throws IOException, ServletException {
//拦截请求
System.out.println("拦截请求......");
//放行
chain.doFilter(request, response);
//拦截响应
System.out.println("拦截响应......");
}
@Override
public void destroy() {
System.out.println("filter..destroy..");
}
}
(2)web.xml 进行配置
<!-- 配置过滤器 -->
<filter>
<filter-name>MyServlet</filter-name>
<filter-class>org.student.filter.MyFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>MyServlet</filter-name>
<url-pattern>/*</url-pattern>
<dispatcher>REQUEST</dispatcher>
<dispatcher>FORWARD</dispatcher>
</filter-mapping>
2、通配符
dispatcher请求方式:
REQUEST:拦截HTTP请求 get post
FORWARD:只拦截 通过 请求转发方式的请求
INCLUDE:只拦截拦截通过 request.getRequestDispatcher("").include() 、通过<jsp:include page="…" />此种方式发出的请求
ERROR:只拦截发出的请求
3、过滤器链
可以配置多个过滤器,过滤器的先后顺序 是由 的位置 决定
4、过滤器和拦截器的区别
百度……
https://www.jianshu.com/p/7bd0cad17f23
https://www.liangzl.com/get-article-detail-122894.html
二、监听器
1、监听对象的创建销毁、绑定解绑
2、销毁监听对象属性变化
(1)实现接口
(2)配置web.xml
3、钝化、活化
(1)实现接口(包括序列化接口)
(2)配置servlet.xml
综述参考https://www.cnblogs.com/Java3y/p/8436237.html
应用参考https://www.cnblogs.com/pingxin/p/p00099.html