黑马程序员
Filter–概述
Filter–快速入门
package cn
.itcast
.web
.filter
;
import javax
.servlet
.*
;
import javax
.servlet
.annotation
.WebFilter
;
import java
.io
.IOException
;
@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("doFilter被执行。。。。");
filterChain
.doFilter(servletRequest
,servletResponse
);
}
@Override
public void destroy() {
}
}
Filter–细节–web.xml配置方式
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
version="4.0">
<filter>
<filter-name>filter1
</filter-name>
<filter-class>cn.itcast.web.filter.FilterDemo1
</filter-class>
</filter>
<filter-mapping>
<filter-name>filter1
</filter-name>
<url-pattern>/*
</url-pattern>
</filter-mapping>
</web-app>
Filter–细节–执行流程&生命周期
package cn
.itcast
.web
.filter
;
import javax
.servlet
.*
;
import javax
.servlet
.annotation
.WebFilter
;
import java
.io
.IOException
;
@WebFilter("/*")
public class FilterDemo2 implements Filter {
public void destroy() {
}
public void doFilter(ServletRequest req
, ServletResponse resp
, FilterChain chain
) throws ServletException
, IOException
{
System
.out
.println("FilterDemo2--->");
chain
.doFilter(req
, resp
);
System
.out
.println("FilterDemo2<---");
}
public void init(FilterConfig config
) throws ServletException
{
}
}
<%@ page contentType
="text/html;charset=UTF-8" language
="java" %>
<html
>
<head
>
<title
>$Title$
</title
>
</head
>
<body
>
$
END$
<%
System
.out
.println("index.jsp");
%>
</body
>
</html
>
FilterDemo2
--->
index
.jsp
FilterDemo2
<---
Filter–细节–过滤器拦截路径配置
Filter–细节–过滤器拦截方式配置
会被执行 不会被执行 不会被执行 会被执行
Filter–细节–过滤器链