Urlrewritefilter使用说明

  • Post author:
  • Post category:其他



一、Urlrewritefilter说明及优势


Urlrewritefilter,通过java的Filter过滤器对URL进行重写,用户得到的全部都是经过处理后的URL地址,本质上通过伪地址进行页面跳转,隐藏真实地址,达到掩人耳目的目的,哈哈。

有以下优势:


1:提高安全性,可以有效的避免一些参数名、ID等完全暴露在用户面前,如果用户随便乱输的话,不符合规则的话直接会返回个404或错误页面,这比直接返回500或一大堆服务器错误信息要好的多


2:美化URL,去除了那些比如*.do,

*.action


之类的后缀名、长长的参数串等,可以自己组织精简更能反映访问模块内容的URL

3:更有利于搜索引擎的收入,通过对URL的一些优化,可以使搜索引擎更好的识别与收录网站的信息

二、网络资源

1、下载地址 官网:

http://tuckey.org/urlrewrite/

google code :

https://code.google.com/p/urlrewritefilter/

2、文档使用说明:

http://urlrewritefilter.googlecode.com/svn/trunk/src/doc/manual/4.0/index.html

三、使用步骤

1、在web.xml中加入以下代码

Java代码

收藏代码


  1. <filter>

  2. <filter-name>UrlRewriteFilter</filter-name>

  3. <filter-

    class

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

    class

    >

  4. </filter>

  5. <filter-mapping>

  6. <filter-name>UrlRewriteFilter</filter-name>

  7. <url-pattern>/*</url-pattern>

  8. <dispatcher>REQUEST</dispatcher>

  9. <dispatcher>FORWARD</dispatcher>

  10. </filter-mapping>

2、在urlrewrite.xml配置文件中进行地址映射规则,使用正则表达式

Xml代码

收藏代码



  1. <?


    xml


    version

    =

    “1.0”


    encoding

    =

    “utf-8”


    ?>


  2. <!DOCTYPE urlrewrite PUBLIC “-//tuckey.org//DTD UrlRewrite 3.2//EN”

  3. “http://tuckey.org/res/dtds/urlrewrite3.2.dtd”

    >




  4. <


    urlrewrite


    >




  5. <


    rule


    >



  6. <


    from


    >

    ^/newsInfo-list-([0-9]+).shtml$

    </


    from


    >



  7. <


    to


    >

    /NewsInfo.do?

    method

    =

    list

    &amp;

    mod_id

    =$1

    </


    to


    >



  8. </


    rule


    >



  9. <


    outbound-rule


    >



  10. <


    from


    >

    /NewsInfo.do\?

    method

    =

    list

    &amp;

    mod_id

    =([0-9]+)$

    </


    from


    >



  11. <


    to


    >

    /newsInfo-list-$1.shtml

    </


    to


    >



  12. </


    outbound-rule


    >




  13. </


    urlrewrite


    >

3、JSP中使用如下地址

Java代码

收藏代码


  1. <c:url var=

    “url_1001001000”

    value=

    “/NewsInfo.do?method=list&mod_id=1001001000”

    />

  2. <li><a href=

    “${url_1001001000}”

    >测试地址</a></li>

官网文档中提供如下使用方式:

Xml代码

收藏代码


  1. Using the example above JSP’s with the code


  2. <


    a


    href

    =

    “<%= response.encodeURL(”

    /world.jsp?

    country

    =

    usa

    &amp;

    city

    =nyc

    “) %>”


    >

    nyc

    </


    a


    >


  3. will output


  4. <


    a


    href

    =

    “/world/usa/nyc”


    >

    nyc

    </


    a


    >



  5. Or JSTL


  6. <


    a


    href

    =

    “<c:url value=”

    /world.jsp?

    country

    =${country}&amp;

    city

    =${city}”

    />



    >

    nyc

    </


    a


    >


  7. will output


  8. <


    a


    href

    =

    “/world/usa/nyc”


    >

    nyc

    </


    a


    >



  9. Note, If you are using JSTL (ie,

    <


    c:url

    ) this will work also.

4、基本原理

Xml代码

收藏代码


  1. jsp页面地址–

    >

    服务器filter过滤 —

    >

    调用urlrewrite.xml映射规则  —

    >

    服务器响应 —

    >

    转换成伪地址