菜鸟学习JSP之第9章-过滤器的初体验

1、什么是Filter?

依据字面上的中文意思为过滤器。

☆Filter的作用

当用户的请求到达指定的URL之前,可以借助Filter来改变这些请求的内容;同样地,当响应结果到达客户端之前,可以使用Filter修改输出的内容。

什么是FilterChain(过滤器链)?

一个FilterChain包含多个Filter。

2、过滤器的工作原理

3、过滤器的声明周期:

4、过滤器的应用场合

·加载:对于到达系统的所有请求,过滤器收集诸如浏览器类型,一天中的时间等相关信息,并对它们进行日志记录

·性能:过滤器在内容通过线路传来并在到达Servlet和JSP页面之前解压缩该内容,然后再取得响应内容,并在响应内容发送到客户机器之前将它转换为压缩格式

·安全:过滤器处理身份验证令牌的管理,并适当地限制安全资源的访问,提示用户进行身份验证或将它们指引到第三方进行身份验证.

·会话管理:将Servlet和JSP页面与会话处理代码混杂在一起可能带来相当大的麻烦.使用过滤器来管理会话可以让WEB页面集中精力考虑内容显示和委托处理,而不必担心会话管理的细节.

5、Filter接口

过滤器是一个对象,它根据用户的请求和资源的响应进行过滤.

包含的方法:

接口包含的方法
Filter接口Init(FilterConfig)
 doFilter(ServletRequest,ServletRespone,
 destory()

6、使用

新建一个类,需要实现filter接口

public class Filter implements javax.servlet.Filter{public void destroy{System.out.println("销毁");}public void doFilter(ServletRequest req,ServletResponse res,FilterChain chain)throws IOException,ServletException{System.out.println("----处理请求之前----");chain.doFilter(req,res);System.out.println("----处理请求之后----");}public void init(FilterConfig fig)throws ServletException{System.out.println("----初始化----");}}

然后配置xml---->


firstservlet.Filter


first/*

然后访问项目,发送任意一个请求,均能在控制台看到如下:

经典例子:统一文字编码、用户登录验证、记录日志功能等。

☆☆☆ 设置字符:

public void doFilter(ServletRequest request, ServletResponse response,FilterChain chain) throws IOException, ServletException {

  //设置请求字符集

  request.setCharacterEncoding("GBK");

  //请求向下传递

  chain.doFilter(request, response);

}


    EncodingFilter
    com.javaweb.filter.EncodingFilter


    EncodingFilter
    
    /*

7、过滤器链

一个过滤器链(FilterChain),在请求到达请求资源前会依次经过链中的所有过滤器,配置在前的Filter先执行,而请求处理完成后,会按照相反的顺序再次经过链中的所有过滤器。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部