filter(过滤器)简介和工作原理

filter(过滤器)简介和工作原理

ID:11663039

大小:36.50 KB

页数:5页

时间:2018-07-13

filter(过滤器)简介和工作原理_第1页
filter(过滤器)简介和工作原理_第2页
filter(过滤器)简介和工作原理_第3页
filter(过滤器)简介和工作原理_第4页
filter(过滤器)简介和工作原理_第5页
资源描述:

《filter(过滤器)简介和工作原理》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、Filter(过滤器)简介和工作原理(2009-06-2420:25:33)标签:it 分类:javaFilter(过滤器)简介Filter的基本功能是对Servlet容器调用Servlet的过程进行拦截,从而在Servlet进行响应处理的前后实现一些特殊的功能。在ServletAPI中定义了三个接口类来开供开发人员编写Filter程序:Filter,FilterChain,FilterConfigFilter程序是一个实现了Filter接口的Java类,与Servlet程序相似,它由Servlet容器进行调用和执行Filter程序需要在web.xml文件中进行注册和设

2、置它所能拦截的资源:Filter程序可以拦截Jsp,Servlet,静态图片文件和静态html文件 Filter的基本工作原理当在web.xml中注册了一个Filter来对某个Servlet程序进行拦截处理时,这个Filter就成了Servlet容器与该Servlet程序的通信线路上的一道关卡,该Filter可以对Servlet容器发送给Servlet程序的请求和Servlet程序回送给Servlet容器的相应进行拦截,可以决定是否将请求继续传递给Servlet程序,以及对请求和相应信息是否进行修改在一个web应用程序中可以注册多个Filter程序,每个Filter程序

3、都可以对一个或一组Servlet程序进行拦截。若有多个Filter程序对某个Servlet程序的访问过程进行拦截,当针对该Servlet的访问请求到达时,web容器将把这多个Filter程序组合成一个Filter链(过滤器链)。Filter链中各个Filter的拦截顺序与它们在应用程序的web.xml中映射的顺序一致 Filter接口init(FilterConfigfilterConfig)throwsServletException:在web应用程序启动时,web服务器将根据web.xml文件中的配置信息来创建每个注册的Filter实例对象,并将其保存在服务器的内存

4、中。Web容器创建Filter对象实例后,将立即调用该Filter对象的init方法。Init方法在Filter生命周期中仅执行一次,web容器在调用init方法时,会传递一个包含Filter的配置和运行环境的FilterConfig对象(FilterConfig的用法和ServletConfig类似)。利用FilterConfig对象可以得到ServletContext对象,以及部署描述符中配置的过滤器的初始化参数。在这个方法中,可以抛出ServletException异常,通知容器该过滤器不能正常工作。 destroy():在Web容器卸载Filter对象之前被调用

5、。该方法在Filter的生命周期中仅执行一次。在这个方法中,可以释放过滤器使用的资源。 与开发Servlet不同的是,Filter接口并没有相应的实现类可供继承,要开发过滤器,只能直接实现Filter接口。 doFilter(ServletRequestrequest,ServletResponseresponse,    FilterChainchain)throwsjava.io.IOException,ServletException:    doFilter()方法类似于Servlet接口的service()方法。当客户端请求目标资源的时候,容器就会调用与这个目

6、标资源相关联的过滤器的doFilter()方法。其中参数request,response为web容器或Filter链的上一个Filter传递过来的请求和相应对象;参数chain为代表当前Filter链的对象,在特定的操作完成后,可以在当前Filter对象的doFilter方法内部需要调用FilterChain对象的chain.doFilter(request,response)方法才能把请求交付给Filter链中的下一个Filter或者目标Servlet程序去处理,也可以直接向客户端返回响应信息,或者利用RequestDispatcher的forward()和inclu

7、de()方法,以及HttpServletResponse的sendRedirect()方法将请求转向到其他资源。这个方法的请求和响应参数的类型是ServletRequest和ServletResponse,也就是说,过滤器的使用并不依赖于具体的协议。 FilterChain接口:FilterChain接口:代表当前Filter链的对象。由容器实现,容器将其实例作为参数传入过滤器对象的doFilter()方法中。过滤器对象使用FilterChain对象调用过滤器链中的下一个过滤器,如果该过滤器是链中最后一个过滤器,那么将调用目标资源。doF

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。