过滤器的实现

Filter:过滤器,用来过滤网站的数据,功能有:

  • 处理中文乱码
  • 登录的验证

过滤器实现步骤:

  1. 导包
    在meven中导入:
<dependency>
          <groupId>javax.servlet</groupId>
          <artifactId>servlet-api</artifactId>
          <version>2.5</version>
      </dependency>

然后创建Java类,实现Filter接口,要注意是javax.servlet下的Filter接口

2. 重写其中方法

public class filter implements Filter {
    //初始化:在web服务器启动时,就已经初始化了,随时等待过滤对象的出现!
    @Override
    public void init(FilterConfig filterConfig) throws ServletException {
     System.out.println("CharacterEncodingFilter已经初始化");
    }

    //filterChain :链
    /*
    1.过滤中的所有代码,在过滤特定请求的时候都会执行
    2.必须让过滤器继续同行

     */
    @Override
    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("执行前");
        filterChain.doFilter(servletRequest,servletResponse);//让我们的请求继续走,如果不写,程序到这里就停止了
           System.out.println("执行后");

    }
  //销毁:web服务器关闭的时候,过滤器会销毁
    @Override
    public void destroy() {
        System.out.println("CharacterEncodingFilter已经初始化");
    }
}
  1. 在web.xml中配置Filter
<filter>
        <filter-name>filter</filter-name>
        <filter-class>com.zheng.filter.filter</filter-class>
    </filter>
    <filter-mapping>
        <filter-name>filter</filter-name>
        <url-pattern>/servet/*</url-pattern>
    </filter-mapping>
posted @ 2021-03-01 22:21  郑以  阅读(168)  评论(0)    收藏  举报