2022/3/23
一、Filter:过滤器
1.概念:
* 生活中的过滤器:净水器,空气净化器,土匪、
* web中的过滤器:当访问服务器的资源时,过滤器可以将请求拦截下来,完成一些特殊的功能
* 过滤器的作用:一般用于完成通用的操作。如:登录验证、统一编码处理、敏感字符过滤...
2.快速入门:
1.步骤:
1.定义一个类,实现接口Filter
2.复写方法
3.配合拦截路径
1.web.xml
2.注解
package ln.webtest.day01.demo04;
import javax.servlet.*;
import javax.servlet.annotation.WebFilter;
import java.io.IOException;
//WebFilter("/*") //访问所有资源之前,都会执行该过滤器
@WebFilter("/index.jsp")
public class FilterDemo01 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("Filter被执行了...");
//过滤器放行
filterChain.doFilter(servletRequest,servletResponse);
}
@Override
public void destroy() {
} //实现javax.servlet的Filter
}
<%--
Created by IntelliJ IDEA.
User: ASUS
Date: 2022/3/17
Time: 10:02
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>$Title$</title>
</head>
<body>
Index.jsp执行前先执行过滤器
</body>
</html>
3.过滤器细节:
1.web.xml配置
<filter>
<filter-name>demo1</filter-name>
<filter-class>ln.webtest.day01.demo04.FIlterDemo01</filter-class>
</filter>
<filter-mapping>
<filter-name>demo1</filter-name>
<!-- 拦截路径 -->
<url-pattern>/*</url-pattern>
</filter-mapping>
2.过滤器的执行流程:先执行过滤器,再通过放行执行拦截路径资源,再返回到放行后
3.过滤器的生命周期方法:
1.init:在服务器启动后,会创建Filter对象,然后调用init方法。只执行一次。用于加载资源