Servlet Filter(过虑器)

Servlet API中提供了一个Filter接口,开发web应用时,如果编写的Java类实现了这个接口,则把这个java类称之为过滤器Filter。通过Filter技术,开发人员可以实现用户在访问某个目标资源之前,对访问的请求和响应进行拦截


如上图:也就是说每次访问网站时,都会先经过虑器,再到调用的资源,所以我们可以在过虑器里面做相应的处理

如,自动登录,全站的编码问题,控制缓存==;

Filter的生命周期

1、init(FilterConfig filterConfig)throws ServletException:和我们编写的Servlet程序一样,Filter的创建和销毁由WEB服务器负责。 web 应用程序启动时,web 服务器将创建Filter 的实例对象,并调用其init方法进行初始化开发人员通过init方法的参数,可获得代表当前filter配置信息的FilterConfig对象。

2、 doFilter(ServletRequest,ServletResponse,FilterChain)每次filter进行拦截都会执行在实际开发中方法中参数requestresponse通常转换为HttpServletRequest和HttpServletResponse类型进行操作

3、destroy():在Web容器卸载 Filter 对象之前被调用。

public class Filter1 implements Filter {
    //在filter初始化的时候执行
	@Override
	public void init(FilterConfig filterConfig) throws ServletException {
		
	}
    // 在过滤器每次执行过滤的时候调用
	@Override
	public void doFilter(ServletRequest request, ServletResponse response,
			FilterChain chain) throws IOException, ServletException {
		
		System.out.println("filter1 ...");
		
		// 如果 要想去 访问 拦截的 的资源 的话 就 要 放行
		chain.doFilter(request, response);
	}
    // 在过滤器销毁的时候调用。
	@Override
	public void destroy() {
	}
}

<span style="font-family: 'Source Code Pro', monospace; font-size: 16px; white-space: pre;">	</span><span style="font-family:Source Code Pro, monospace;font-size:18px;"><span style="white-space: pre-wrap;"><filter>
 	     <filter-name></span></span><span style="font-family: 'Source Code Pro', monospace; font-size: 16px; white-space: pre-wrap;">Filter1 </span><span style="font-family:Source Code Pro, monospace;font-size:18px;"><span style="white-space: pre-wrap;"></filter-name>
	     <filter-class>org.test.</span></span><span style="font-family: 'Source Code Pro', monospace; font-size: 16px; white-space: pre-wrap;">Filter1</span><span style="font-family: 'Source Code Pro', monospace; font-size: 16px; white-space: pre-wrap;"></filter-class></span><span style="font-family:Source Code Pro, monospace;font-size:18px;"><span style="white-space: pre-wrap;">
</span></span><span style="font-family: 'Source Code Pro', monospace; font-size: 16px; white-space: pre;">	</span><span style="font-family:Source Code Pro, monospace;font-size:18px;"><span style="white-space: pre-wrap;"></filter></span></span><span style="font-size:18px;">
</span>
<span style="white-space: pre;"></span><div><div><span style="font-size:18px;"><span style="white-space:pre">	</span><filter-mapping>
    <span style="white-space:pre">		</span> <filter-name>Filter1</filter-name>
  <span style="white-space:pre">		</span>  <url-pattern>/test.jsp</url-pattern>
<span style="white-space:pre">	</span></filter-mapping>
</span></div></div>











评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值