JavaWeb之Filter过滤器

什么是过滤器

Filter 的基本功能是对 Servlet 容器调用 Servlet 的过程进行拦截,从而在 Servlet 进行响应处理的前后实现一些特殊的功能。

Filter 程序是一个实现了 Filter 接口的 Java 类,与 Servlet 程序相似,它由 Servlet 容器进行调用和执行

Filter 程序需要在 web.xml 文件中进行注册和设置它所能拦截的资源

  <filter>
    <filter-name>hello</filter-name>
    <filter-class>com.neuedu.filter.HelloFilter</filter-class>
  </filter>
  <filter-mapping>
    <filter-name>hello</filter-name>
    <url-pattern>/filter</url-pattern>
  </filter-mapping>

注解方式:与servlet几乎完全一致,但是过滤器

import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.annotation.WebFilter;


@WebFilter("/*")
public class Filter1_Encoding implements Filter {
    public Filter1_Encoding() {
        // TODO Auto-generated constructor stub
    }
    public void destroy() {
        // TODO Auto-generated method stub
    }
    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
        request.setCharacterEncoding("utf-8");
        response.setCharacterEncoding("utf-8");
        response.setContentType("text/html;charset=utf-8");
        // 放行
        chain.doFilter(request, response);
    }
    public void init(FilterConfig fConfig) throws ServletException {
        // TODO Auto-generated method stub
    }
}

注意:Filter存在链式操作的,不同的过滤器可以拥有相同的映射路径,表示拦截同一个请求,先后顺序,如果是注解方式的方式是类名决定的,例如: AFilter,BFilter,AFilter会先进行拦截,再如Filter1_xxx,Filter2_xxx,Filter1_xxx会先拦截
如果是配置的方式,先配置<filter-mapping></filter-mapping>的过滤器先拦截

典型应用

统一编码字符集

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 概念 1、JavaWeb 的一个重要组件,可以对发送到 Servlet 的请求进行拦截,并对响应也进行拦截 2、F...
    指间Hrc阅读 6,563评论 0 1
  • 本文包括:1、Filter简介2、Filter是如何实现拦截的?3、Filter开发入门4、Filter的生命周期...
    廖少少阅读 12,096评论 3 56
  • 监听器(listener) 监听器简介 :监听器就是一个实现特定接口的普通java程序,这个程序专门用于监听另一个...
    奋斗的老王阅读 7,380评论 0 53
  • 1.过滤器简介 Filter也称之为过滤器,它是Servlet技术中最激动人心的技术,WEB开发人员通过Filte...
    胖先森阅读 4,860评论 0 16
  • 下了一天的雨,天气真的很冷了。我原来的房间,有一个简易衣柜,有几件秋冬的上装,如今远远挂在那里。原本的台式电...
    沅有芷兮兮阅读 1,868评论 0 0

友情链接更多精彩内容