urlrewrite2.6.0

定义:

urlrewrite顾名思义,就是对URL进行重写,用户得到的全部都是经过处理后的URL地址,好处:
一:提高安全性,可以有效的避免一些参数名、ID等完全暴露在用户面前。

二:美化URL,去除了那些比如*.do之类的后缀名、长长的参数串等,可以自己组织精简更能反映访问模块内容的URL
三:更有利于搜索引擎的收入,通过对URL的一些优化,可以使搜索引擎更好的识别与收录网站的信息。

 

项目部署

1、在http://tuckey.org/urlrewrite/下载urlrewirtefilter,现在有2.6.03.2.0两个版本,这里对比网站选择的是前面一个稳定版本。

2、把urlrewrite-2.6.0.jarurlrewrite.xml(放在WEB-INF文件夹下面)拷贝到我们项目中。

3、在web.xml文件里配置urlrewrite的核心控制器(过滤器),代码如下:

<filter>

     <filter-name>UrlRewriteFilter</filter-name>  <filter-class>org.tuckey.web.filters.urlrewrite.UrlRewriteFilter</filter-class>

     <init-param>

           <param-name>logLevel</param-name>

           <param-value>WARN</param-value>

      </init-param>

 </filter>

 

<filter-mapping>

       <filter-name>UrlRewriteFilter</filter-name>

       <url-pattern>/*</url-pattern>

         <!--<dispatcher>REQUEST</dispatcher>-->

         <!--<dispatcher>FORWARD</dispatcher>-->

</filter-mapping>

4需要配置urlrewrite.xml文件来实现url静态化,下面将详细说明

<urlrewrite>

     

    <rule>

        <from>/see-all-departments.html</from>

        <to type="forward">/buyer/viewalldepartment.do</to>

    </rule>

 

    <outbound-rule>

<from>/buyer/viewrootcategory.do/?categoryDetail.id=([0-9]+)&amp;categoryname=(.*)</from>

       <to>/catalog/$1/$2</to>

</outbound-rule>

 

<rule>

        <from>/catalog/([0-9]+)/(.*)</from>

        <to>/buyer/viewrootcategory.do/?categoryDetail.id=$1</to>

    </rule>

 

       

    <outbound-rule>

<from>/buyer/viewstandproductdetail.do/?productDetail.id=([0-9]+)&amp;productname=(.*)</from>

       <to>/$1/$2/compare</to>

</outbound-rule>

 

<rule>

        <from>/([0-9]+)/(.*)/compare</from>

        <to>/buyer/viewstandproductdetail.do/?productDetail.id=$1</to>

    </rule>

 

 

说明:

<rule>标签:设置url重写规则,它将重写后的URL和实际URL对应起来。如

<rule>

        <from>/see-all-departments.html</from>

        <to type="forward">/buyer/viewalldepartment.do</to>

    </rule>

在浏览器地址输入http://www.shopsimple.com/see-all-departments.html实质上访问http://www.shopsimple.com/buyer/viewalldepartment.do.

 

<outbound-rule>标签:把页面上的*.do换成你浏览器地址上的url.

<outbound-rule>

<from>/buyer/viewstandproductdetail.do/?productDetail.id=([0-9]+)&amp;productname=(.*)</from>

       <to>/$1/$2/compare</to>

</outbound-rule>

 

<rule>

        <from>/([0-9]+)/(.*)/compare</from>

        <to>/buyer/viewstandproductdetail.do/?productDetail.id=$1</to>

    </rule> 

在页面通过<a href="<c:url value="http://www.shopsimple.com/buyer/viewstandproductdetail.do?productDetail.id=1& productname=test" />"" target="_blank">test</a>游览器页面上会显示<a href= http://www.shopsimple.com/1/test/compare>test</a>

 

注意:<rule>标签可以单独的存在。而<outbound-rule>必须要和<rule>标签成对出现。而且在页面的时候需要<c:url>标签来转换成<rule>所对应的规则。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值