论坛首页 Java企业应用论坛

Struts2的灵魂——Interceptor

浏览 28619 次
精华帖 (0) :: 良好帖 (12) :: 新手帖 (5) :: 隐藏帖 (0)
作者 正文
   发表时间:2012-03-09  
Candy_Code 写道
beyondyuefei 写道
顺便请问下 LZ, struts2 的 拦截器 和 servlet标准中的 过滤器 在设计是是否相似 ? 都是在 某个过滤器链中 调用下一个链, 只是前者递归,后者顺序执行。

Filter(过滤器)和Interceptor在设计上非常类似,都运用了递归的思想。
Filter接口最重要的方法是
doFilter(ServletRequest req, ServletResponse res, FilterChain chain){},其中chain就是过滤器链,
Filter的子类StrutsPrepareAndExecuteFilter在doFilter()中有这样一段代码:
if (!handled) {
   chain.doFilter(request, response);
} else {
  execute.executeAction(request, response, mapping);
}
可以看出,和Interceptor非常类似。


Servlet Filter和Interceptor思想类似,只不过Filter粒度较大,比如struts的处理就从filter开始接管(web.xml中配置),interceptor是xwork中的拦截器,粒度较小些,一般处理业务上的通用的逻辑。
0 请登录后投票
   发表时间:2012-03-10  
whiletrue 写道
这个叫递归吗?command模式才对

A说:刘翔是个男人。
B说:不对,刘翔明明是个中国人。
0 请登录后投票
   发表时间:2012-03-10  
Candy_Code 写道
whiletrue 写道
这个叫递归吗?command模式才对

A说:刘翔是个男人。
B说:不对,刘翔明明是个中国人。

递归(英语:Recursion),又译为递回,在数学与计算机科学中,是指在函数的定义中使用函数自身的方法。
http://zh.wikipedia.org/wiki/%E9%80%92%E5%BD%92

有点跑题了
0 请登录后投票
   发表时间:2012-03-12  
写的非常好!!!
0 请登录后投票
   发表时间:2012-03-18  
楼主这里面没有Action的说。
0 请登录后投票
   发表时间:2012-03-19  
ashidaya 写道
楼主这里面没有Action的说。

多谢提醒,一时疏漏,现已贴上。
0 请登录后投票
   发表时间:2012-03-19   最后修改:2012-03-19
LZ 能不能多开几个类似的贴,struts2 的精华代码肯定不止这点,多写几篇类似的文章吧,坐等中。。。
0 请登录后投票
   发表时间:2012-03-19  
beyondyuefei 写道
LZ 能不能多开几个类似的贴,struts2 的精华代码肯定不止这点,多写几篇类似的文章吧,坐等中。。。

首先谢谢你给予我如此高的评价。不过我要的是质量,不是数量,要写出好的文章需要大量的调查研究,不然会被批判。
本人正在积极查阅资料,准备新的帖子。
0 请登录后投票
   发表时间:2012-03-23  
写的不错,顶一个。
0 请登录后投票
   发表时间:2012-03-24  
请教楼主一个问题。我修改密码的时候我在Action中做的验证,然后提示失败,请求转发到一个JSP提示,然后输入正确的,但是还是报原来的错误,而且也没有进拦截器,我想问的就是:从Action请求转发到一个JSP后再到原来的Action。这段过程还过不过拦截器!,求楼主解答!
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics