JAVAweb
十一、过滤器Filter
FIlter:过滤器,用于过滤网站的数据;
Filter原理图解:
Filter开发步骤:
1、导入Servlet-api依赖
<dependency>
<!--Servlet依赖-->
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>4.0.1</version>
</dependency>
2、编写过滤器
- 实现(javax.servlet.*)下的Filter接口:
- 重写Filter接口的三个方法,在diFilter方法中加入拦截逻辑,记得调用 filterChain.doFilter(servletRequest,servletResponse);让程序继续执行:
//初始化
public void init(FilterConfig filterConfig) throws ServletException {
}
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
servletRequest.setCharacterEncoding("utf-8");
servletResponse.setCharacterEncoding("utf-8");
servletResponse.setContentType("text/html;charset=utf-8");
System.out.println("Filter执行前。。。");
filterChain.doFilter(servletRequest,servletResponse);//让程序继续执行,不写的话程序被拦截
System.out.println("Filter执行后。。。");
}
//销毁
public void destroy() {
System.out.println("销毁");
}
3、在web.xml中配置Filter
<filter>
<filter-name>CharacterEncodingFilter</filter-name>
<filter-class>com.lengzher.filter.CharacterEncodingFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>CharacterEncodingFilter</filter-name>
<!--只要是servlet/下的任何请求都会经过这个过滤器-->
<url-pattern>/show</url-pattern>
</filter-mapping>