天地归一

导航

<2008年11月>
2627282930311
2345678
9101112131415
16171819202122
23242526272829
30123456

留言簿(1)

随笔档案

阅读排行榜

评论排行榜

常用链接

统计

ajax

IDE

java天空

JEE

mvc

scm

ws

xml

世界如我

图表

好友交流

工作流

开源精品

搜索

数据持久化

模板

正在学习中

空间

缓存

论坛文化

最新评论

urlrewritefilter+Struts不能解析故障解决

   今天在做urlrewritefilter和struts2整合,遇到一个奇怪的问题:url已经重写之后就没反应了,提示找不到Action,但是换其它的:如html,jsp就可以.

   没办法,开启百度来找,对于遇到问题,我一向把自己看到很笨,个人认为,我遇到的问题,一定会有前人遇到。
   在蜘蛛网爬上好久,终于找到了解决办法,感谢各位网友的解答.
   原来问题去在filter的响应方式上,servelt2.4给filter定义了4种过滤方式,用"<dispatcher>" 来标识,REQUEST,FORWARD,INCLUDE,ERROR,默认是REQUEST
   urlrewrite默认重写URL之后用的是Forward方式流向下一个Filter。
   这样就出现在上述问题,我要的你不给我,我当然不处理啊;
   解决方案:
   解决之后,又仔细想了一下,这外标签为什么要在2.4加入,个人理解:可以提高过滤器的效率,可以让filter只处理他需要关心的Servlet,如例:<dispatcher>FORWARD</dispatcher>这样标识,这个过滤器就只处理通过forward传出来的请求,其它 的一律不管


posted on 2008-11-23 21:43 张江平 阅读(1232) 评论(3)  编辑  收藏

评论

# re: urlrewritefilter+Struts不能解析故障解决 2008-11-25 08:50 super2

也有可能,一般struts2的配置都写在最上边,struts2的配置顺序是有说道的。很容易出问题
  回复  更多评论   

# re: urlrewritefilter+Struts不能解析故障解决 2008-11-27 20:33 张江平

@super2
谢谢你的回复
过滤器是按顺序配置的顺序执行的,这里的第一个过滤器是 用来进行URL重写的,他一定是要放在Struct2之前的。这是解决过的版本,后面的图是解决办法,<dispatcher>FOWARD</dispatcher>,因为URLWriterFilter重写之后是以ForWard方式转发的,但是默认的<dispatcher>的设定值为REQUEST(只对通过Request方式的请求进行处理),如是要想接受其它方式,就必须指定,就是图的第31行

  回复  更多评论   

# re: urlrewritefilter+Struts不能解析故障解决 2015-03-09 13:11 zuidaima

java伪静态的urlrewrite,支持二级域名 http://zuidaima.com/share/2074386456153088.htm  回复  更多评论   


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


网站导航: