Filter过滤器

发布时间 2023-06-14 07:05:32作者: ming1010

1.实现Filter接口,主要重写doFilter方法

 1 public class CharacterEncodingFilter implements Filter {
 2     @Override
 3     public void init(FilterConfig filterConfig) throws ServletException {
 4 
 5     }
 6 
 7     @Override
 8     public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
 9         request.setCharacterEncoding("utf-8");
10         response.setCharacterEncoding("utf-8");
11         response.setContentType("text/html;charset=UTF-8");
12         System.out.println("CharacterEncodingFilter will execute");
13         chain.doFilter(request,response);
14         System.out.println("CharacterEncodingFilter executed");
15     }
16 
17     @Override
18     public void destroy() {
19 
20         System.out.println("CharacterEncodingFilter destroyed");
21 
22     }
23 }

2.web.xml配置文件,任何servlet的页面都会被过滤

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
 3          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 4          xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
 5          version="4.0">
 6   <servlet>
 7     <servlet-name>ShowServlet</servlet-name>
 8     <servlet-class>com.ming.servlet.ShowServlet</servlet-class>
 9   </servlet>
10   <servlet-mapping>
11     <servlet-name>ShowServlet</servlet-name>
12     <url-pattern>/servlet/show</url-pattern>
13   </servlet-mapping>
14   <servlet-mapping>
15     <servlet-name>ShowServlet</servlet-name>
16     <url-pattern>/show</url-pattern>
17   </servlet-mapping>
18   <filter>
19     <filter-name>CharacterEncodingFilter</filter-name>
20     <filter-class>com.ming.filter.CharacterEncodingFilter</filter-class>
21   </filter>
22 
23   <filter-mapping>
24     <filter-name>CharacterEncodingFilter</filter-name>
25     <!--过滤servlet下的任何请求-->
26     <url-pattern>/servlet/*</url-pattern>
27   </filter-mapping>
28 </web-app>

服务器开启,过滤器一同开启

服务器关闭,过滤器销毁