Filter的使用

filter在J2EE中扮演一个很重要的角色,它作用于一对request/response之间,这样可以使你对一个请求做一些处理,例如设定编码,例如权限验证等等操作。

 

filter部署在web.xml中,可以部署多个filter形成一个filterChain,web容器会按照在web.xml中配置的顺序去调用filter,配置方式如下所示

 

<filter> <filter-name>EncodingFilter</filter-name> <filter-class>my.filter.EncodingFilter</filter-class> <init-param> <param-name>encoding</param-name> <param-value>utf-8</param-value> </init-param> </filter> <filter-mapping> <filter-name>EncodingFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>

 

filter的生命周期为init()->doFilter()->destroy(),一个filter的实现很容易,只有实现javax.servlet.Filter接口即可,然后配置在web.xml中。

 

public class MyFilter implements Filter { /* * Web容器在实例化一个filter时,首先会调用init方法 * @see javax.servlet.Filter#init(javax.servlet.FilterConfig) */ public void init(FilterConfig arg0) throws ServletException { //在filter初始化时可以从参数FilterConfig获得以下信息 //filterName,initParameters,servletContext } /* * Web容器会在处理一对request/response通过filterChain时调用doFilter方法 * @see javax.servlet.Filter#doFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse, javax.servlet.FilterChain) */ public void doFilter(ServletRequest arg0, ServletResponse arg1, FilterChain arg2) throws IOException, ServletException { //可以进行一些操作处理,如编码设定、权限验证操作 //进入下一个filter的执行 arg2.doFilter(arg0, arg1); } /* * 当doFilter执行完毕后或超时后,Web容器会调用destroy方法 * @see javax.servlet.Filter#destroy() */ public void destroy() { } }

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值