过滤器生命周期-17

1.web项目加载时,过滤器会实例化及调用init方法,且容器只会维护一个实例
2.当请求经过过滤器时,调用doFilter方法
3.当容器正常关闭或项目卸载时,调用destory方法

初始化参数的配置

@WebFilter(servletNames = { "s" }, initParams = { @WebInitParam(name = "n1", value = "v1") })

还有一种web.xml

     <filter>
          <filter-name>filter1</filter-name> 
          <filter-class>com.tanlan.javaees1.Filter1</filter-class> 
          <init-param> 
          <param-name>n1</param-name>
          <param-value>v1</param-value> 
      </init-param> 
      </filter>
       <filter-mapping> 
            <filter-name>filter1</filter-name>
            <url-pattern>/servlet1</url-pattern> 
        </filter-mapping>

初始化参数的读取

    @Override
    public void init(FilterConfig config) throws ServletException {
        System.out.println("init");
        Enumeration<String> names = config.getInitParameterNames();
        while(names.hasMoreElements()){
            String name=names.nextElement();
            System.out.println(name+"="+config.getInitParameter(name));
        }
    }

doFilter方法的实现:
获取http请求,做相关处理
根据处理请求结果决定是否使其访问下一个资源

    @Override
    public void doFilter(ServletRequest req, ServletResponse res,
            FilterChain chain) throws IOException, ServletException {
        System.out.println("start doFilter");
        req.setCharacterEncoding("UTF-8");
        chain.doFilter(req, res);//允许请求访问下一个资源
        System.out.println("end doFilte");
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值