笔记

way

Filter

javax.servlet.Filter接口定义了接口的生命周期,该接口定义了三个方法:
1 init(FilterConfig config) :容器加载filter的时候触发此方法,可以用来从web.xml文件收集初始化参数以及做些初始化操作。FilterConfig可用来获得初始化数据,此方法被调用一次且仅一次。
2 destroy():当Filter被从内存中unload的时候调用(最典型的是关闭应用的时候),该方法最好用来关闭Filter初始化的外部资源。
3 doFilter(ServletRequest request, ServletResponse response, FilterChain chain) :执行filter要完成的事情,HttpServlet情况下, ServletRequestServletResponse 对象是HttpServletRequest 和HttpServletResponse的实例。Filter 需要类型转换他们以便使用HttpServletRequest 和HttpServletResponse对象的方法。
FilterConfig 对象用来配置filter,FilterChain 对象用来表示filters链中当前应用到request和response中的filter。Filter 和Servlet的功能基本类似,唯一区别时候他强制分开链中的各个资源。可以说Filter是有额外功能的Servlet。FilterChain对象可以形象的理解为一种Stack,statck中的某个filter正在某个request和response上运行。FilterConfigServletConfig 极为类似
   默认情况filters链只能用来处理客户端发送的request,如果用RequestDispatcher 对象的forward() 或者include() 方法发送请求,filter是不能处理的,但是可通过配置web.xml处理:dispatcher元素中有REQUEST, INCLUDE, FORWARD, ERROR四种值可用来配置。

二 Wrapper
     定制request或者response对象的时候,只需要简单的继承request或response的相应wrapper类(就是对request或response进行扩展实现)。sun公司提供四个方便的wrapper类:

ServletRequestWrapper
HttpServletRequestWrapper
ServletResponseWrapper
HttpServletResponseWrapper
wrapper类实际上使用了Decorator模式

posted on 2009-05-15 10:21 yuxh 阅读(187) 评论(0)  编辑  收藏 所属分类: j2ee


只有注册用户登录后才能发表评论。


网站导航:
 

导航

<2009年5月>
262728293012
3456789
10111213141516
17181920212223
24252627282930
31123456

统计

常用链接

留言簿

随笔分类

随笔档案

收藏夹

博客

搜索

最新评论

阅读排行榜

评论排行榜