filter

Filter 过滤器

对web资源进行过滤,通常拦截request进行处理,也可以对response处理,然后交给下一个filter或者servlet

实现filter接口,并实现其中的抽象方法

public class Item implements Filter {
    public void destroy() {
        /*销毁时调用*/
    }

    public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain) throws ServletException, IOException {
        /*过滤方法 主要是对request和response进行一些处理,然后交给下一个过滤器或Servlet处理*/       
        chain.doFilter(req, resp);//交给下一个过滤器或servlet处理
    }

    public void init(FilterConfig config) throws ServletException {
        /*初始化方法  接收一个FilterConfig类型的参数 该参数是对Filter的一些配置*/
    }
} 

容器启动时根据web.xml创建filter对象,只产生一个实例,容器关闭时销毁filter对象,初始化时传入FilterConfig对象,FilterConfig对象中保存了web.xml中当前filter的初始化参数

    <filter>
	    <filter-name>encodingFilter</filter-name>
		<filter-class>
			org.springframework.web.filter.CharacterEncodingFilter
		</filter-class>
		    <init-param>
			    <param-name>encoding</param-name>
			    <param-value>UTF-8</param-value>
		    </init-param>
		    <init-param>
			    <param-name>forceEncoding</param-name>
			    <param-value>true</param-value>
		    </init-param>
	</filter>
	<!-- Filter 映射 -->
	<filter-mapping>
		<filter-name>encodingFilter</filter-name>
		<url-pattern>/*</url-pattern>
	</filter-mapping>

容器提供了一个FilterChain对象(过滤链),调用过滤的下一个过滤器或者servlet

执行顺序:根据web.xml中<filter-mapping>的先后顺序,当存在同名的filter时,调用最前面的

容器启动时:ServletContext > Listener > Filter > Servlet

在web.xml中Servlet配置了<load-on-startup>时该Servlet会随着容器启动而启动,没有配置时什么时候用到什么时候初始化

 

 

 

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值