JAVA WEB filter

Filter可认为是servlet的一种“加强版”,它是java下的一种过滤器 ,能实现对java web程序 客户端和服务器端消息的过滤,也就是在服务器段接受request之前,可以预先对request进行处理,或在客户端接受response之前,对response进行处理。

Filter也可对用户请求生成响应,但实际上很少会使用filter向用户请求生成响应。

使用filter完整的流程是:Filter对用户请求进行预处理,接着将请求交给servlet进行处理并生成响应,最后filter再对服务器响应进行后处理。

Filter的作用:

1、在httpServletRequest到达servlet之前,拦截客户的httpServletRequest。
2、根据需要检查httpServletRequest,也可以修改HttpServletRequest头和数据。

3、httpServletResponse到达客户端之前,拦截httpServletResponse。
4、根据需要检查httpServletResponse,也可以修改httpServletResponse头和数据

创建Filter类

void init(FilterConfig):用于完成Filter的初始化
void destroy();用户FIlter销毁钱,完成某些资源的回收
void doFilter(ServletRequest request,ServletResponse response,FilterChain chain);

实现过滤功能,该方法就是对每个请求以及响应增加的额外处理

配置Filter拦截URL模式
区别在于,servlet通常只配置一个URL,而Filter可以同时拦截多个请求的URL。因此,在配置Filter的URL模式时通常会使用模式字符串,使得Filter可以拦截多个请求。与配置Servlet相似的是,
配置Filter同样有两种方式:

1、在Filter类中通过Annotation进行配置

2、在web.xml文件中通过配置文件进行配置

 <filter>

<!--Filter的名字,相当于指定@WebFilter的filterName的属性-->
        <filter-name>LogFilter</filter-name>

<!--Filter的实现类-->
        <filter-class>com.xx.LogFilter</filter-class>

 </filter>

<!--定义Filter拦截URL的地址-->
<filter-mapping>

<!--Filter的名字-->
        <filter-name>LogFilter</filter-name>

<!--FIlter负责拦截的URL,相当于指定@WebFilter的urlPatterns属性-->
        <url-pattern>/*</url-pattern>

</filter-mapping>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值