FilterAndListener
- web中的过滤器, 当访问服务器的资源的时候,可以将请求和响应拦截下来
-
通用化的处理, 比如说登录的功能,统一的编码问题可以放在过滤器中进行拦截
快速入门 ##
-
定义一个类,实现Filter接口
- 复写方法
- 配置拦截路径
- 注解的配置
`@WebFilter("/*")
public class FilterDemo1 implements Filter {
@Override
public void init(FilterConfig filterConfig) throws ServletException {
}
@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
System.out.println("servletDFilterDemo执行了");
// 放行
filterChain.doFilter(servletRequest,servletResponse);
}
@Override
public void destroy() {
}
}`
2. web.xml 方式的配置
`<filter>
<filter-name>demo1</filter-name>
<filter-class>com.liangxin.web.Filter.FilterDemo1</filter-class>
</filter>
<filter-mapping>
<filter-name>demo1</filter-name>
<!--拦截路径-->
<url-pattern>/*</url-pattern>
</filter-mapping>`
3. 过滤器的执行流程
`WebFilter("/*")
public class FilterDemo2 implements Filter {
public void destroy() {
}
public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain) throws ServletException, IOException {
System.out.println("我是用来执行request请求的 ,我是在放行方法doFilter方法之前执行的");
// 放行
chain.doFilter(req, resp);
System.out.println("在放行之后 ,执行请求资源文件或者路径之后, 再回来执行执行放行之后的方法");
}
public void init(FilterConfig config) throws ServletException {
}
`
4. 过滤器的生命周期
`@WebFilter( "/*")
public class FilterDemo3 implements Filter {
public void destroy() {
System.out.println("我是destroy方法&