天地归一

常用链接

统计

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 张江平 阅读(1216) 评论(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  回复  更多评论   


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


网站导航: