ss3ex中使用UrlRewrite

[quote]忠告一:看文档还是原文的好,如果一旦被人转发了,且加了些“作料”就变味了。[/quote]

配置urlrewrite,参考文档:[url]http://urlrewritefilter.googlecode.com/svn/trunk/src/doc/manual/3.2/index.html[/url]

[quote]忠告二:学习JAVA技术,尤其是类似urlrewrite这样的,千万不要用百度,因为搜索的东西真是离谱的很。[/quote]

注意几点:1、
<filter>
<filter-name>UrlRewriteFilter</filter-name>
<filter-class>org.tuckey.web.filters.urlrewrite.UrlRewriteFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>UrlRewriteFilter</filter-name>
<url-pattern>/*</url-pattern>
<dispatcher>REQUEST</dispatcher>
<dispatcher>FORWARD</dispatcher>
</filter-mapping>
一定要加dispatcher属性,且是2个;

2、urlrewrite.xml 文件就用下载包中的源文件,你只需在里面改就行了,注意默认路径是WEB-INF/urlrewrite.xml ,而不是WEB-INF/classes/urlrewrite.xml ;

3、列举一个去掉后缀的rule

<rule>   
<from>^/([_a-zA-Z]+[_0-9a-zA-Z-/]*[_0-9a-zA-Z]+)/?$</from>
<to type="forward">/$1.action</to>
</rule>


配置成功后,会在console中打印出:

[quote]信息: org.tuckey.web.filters.urlrewrite.UrlRewriteFilter INFO: loaded (conf ok)
2009-5-2 22:12:38 org.apache.coyote.http11.Http11Protocol start
信息: Starting Coyote HTTP/1.1 on http-8080
2009-5-2 22:12:38 org.apache.jk.common.ChannelSocket init
信息: JK: ajp13 listening on /0.0.0.0:8009
2009-5-2 22:12:38 org.apache.jk.server.JkMain start
信息: Jk running ID=0 time=0/32 config=null
2009-5-2 22:12:38 org.apache.catalina.startup.Catalina start[/quote]

SS3EX中由于使用了Sitemesh作为布局管理器,配上了urlrewrite后,Sitemesh就不起作用了,原因是一个请求如果发生了Forward,一般不会再经过Filter了(include同理),也就是说不会再次被Sitemesh装饰了,但是如果写成redirect就可以。

解决办法就是:把
<to type="forward">/$1.action</to>
换成
<to type="redirect">/$1.action</to>


遗憾的是:地址栏中的URL还是由无后缀变成了有后缀了。
我想以后在项目中使用的话,如果用urlrewrite就不要用Sitemesh,或者在Sitemesh里面就部分使用,如:新闻等

哎,最近在群里问了很多遍了,小鸟、狂人,白衣等人越来越忙了,否则他们能解决的。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值