Filter:过滤器 ,用来过滤网站的数据;

  • 处理中文乱码
  • 登录验证….

image.png

Filter开发步骤:

  1. 导包
  2. 编写过滤器

    1. 导包不要错
      image.png
      实现Filter接口,重写对应的方法即可

      1. public class CharacterEncodingFilter implements Filter {
      2. //初始化:web服务器启动,就以及初始化了,随时等待过滤对象出现!
      3. public void init(FilterConfig filterConfig) throws ServletException {
      4. System.out.println("CharacterEncodingFilter初始化");
      5. }
      6. //Chain : 链
      7. /*
      8. 1. 过滤中的所有代码,在过滤特定请求的时候都会执行
      9. 2. 必须要让过滤器继续同行
      10. chain.doFilter(request,response);
      11. */
      12. public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
      13. request.setCharacterEncoding("utf-8");
      14. response.setCharacterEncoding("utf-8");
      15. response.setContentType("text/html;charset=UTF-8");
      16. System.out.println("CharacterEncodingFilter执行前....");
      17. chain.doFilter(request,response); //让我们的请求继续走,如果不写,程序到这里就被拦截停止!
      18. System.out.println("CharacterEncodingFilter执行后....");
      19. }
      20. //销毁:web服务器关闭的时候,过滤会销毁
      21. public void destroy() {
      22. System.out.println("CharacterEncodingFilter销毁");
      23. }
      24. }
  3. 在web.xml中配置 Filter

    1. <filter>
    2. <filter-name>CharacterEncodingFilter</filter-name>
    3. <filter-class>com.kuang.filter.CharacterEncodingFilter</filter-class>
    4. </filter>
    5. <filter-mapping>
    6. <filter-name>CharacterEncodingFilter</filter-name>
    7. <!--只要是 /servlet的任何请求,会经过这个过滤器-->
    8. <url-pattern>/servlet/*</url-pattern>
    9. <!--<url-pattern>/*</url-pattern>-->
    10. </filter-mapping>