UrlRewrite Filter下载 配置及如何使用【转】

1 下载地址: http://tuckey.org/urlrewrite/#download

下载的文件(Binary 的)结构简单:urlrewrite.xml和lib文件夹下的一个.jar


2 .jar文件放入项目的lib库中,urlrewrite.xml和web.xml放在一块。修改web.xml,添加以下配置:
<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>
</filter-mapping>


我觉得 /* 这样的通配,并不符合我的预期,我只想对部分路径进行URL的重写, /* 可能会造成我想象不到的或者是许微不足道的性能浪费.我把它改成了我需要的:
<filter-mapping>
    <filter-name>UrlRewriteFilter</filter-name>
    <url-pattern>/member/*</url-pattern>
</filter-mapping>

<filter-mapping>
    <filter-name>UrlRewriteFilter</filter-name>
    <url-pattern>/article/*</url-pattern>
</filter-mapping>

等...

3 .urlrewriter.xml的配置
先提一下urlrewriter.xml中原有的几个例子:
<rule>
     <from>/some/old/page.html</from>
     <to type="redirect">/very/new/page.html</to>
</rule>

/**从一个文件到另一个文件的转发   如果不使用正则表达式,这样的配置真是把简单的问题复杂化了**/
<rule>
      <from>/some/olddir/(.*)</from>
      <to type="redirect">/very/newdir/$1</to>
</rule>

/** 重定向到一个目录 我觉得实际应用中可能用得不多 **/
<rule>
       <from>/products/([0-9]+)</from>
       <to>/products/index.jsp?product_id=$1</to>
</rule>

/**这种是最常用的,通过正则对请求路径进行匹配,并把分组作为参数 ,实际转到到<to>的路径 **/

说明一下,如果你在 Filter配置中使用了所有路径通配符<url-pattern>/*</url-pattern>
在配置urlrewriter.xml中的<from>时,随便怎么写路径无所谓,但若 象我一样使用了
<url-pattern>/memeber/*</url-pattern>,那么在<from>标签中也要写上 /memeber/(你的正则分组)
以便在访问与<from>匹配的路径时,Filter能够执行

最后一点,不得不说,举个例子
<rule>
   <from>/member/(.*)</from>
   <to>/html/member.do?username=$1</to>
</rule>

<rule>
   <from>/article/(.*)</from>
   <to>
/html/article.do?articleid=$1 </to>
</rule>
<rule>
   <from>/member/article/(.*)</from>
   <to>
/html/another/article.do?articleid=$1 </to>
</rule>

当你访问http://localhost /member/article/1111 会显示哪一个页面呢?
结果应该不是意想中的 /html/another/article.do?articleid=1111.
我想大概是因为<from>中的路径,相当于filter中的
<url-pattern>

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值