1、Urlrewritefilter 使用说明一、 Urlrewritefilter 说明及优势Urlrewritefilter 说明:Urlrewritefilter 是通过 java 的 Filter 过滤器对 URL 进行重写,用户得到的全部都是经过处理后的 URL 地址,本质上通过伪地址进行页面跳转,隐藏真实地址,达到掩人耳目的目的。其典型应用就把动态 URL 静态化,便于搜索引擎爬虫抓取你的动态网页。适用于任何 Web 应用服务器(如 Resin,Orion,Tomcat 等) 。有以下优势:1:提高安全性,可以有效的避免一些参数名、 ID 等完全暴露在用户面前。 如果用户随便乱输的话,
2、不符合规则的话直接会返回个 404 或错误页面,这比直接返回 500或一大堆服务器错误信息要好的多。 2:美化 URL,去除了那些比如 *.do ,*.action 之类的后缀名。 可以自己组织精简更能反映访问模块内容的 URL 。3:更有利于搜索引擎的收入。通过对 URL 的一些优化,可以使搜索引擎更好的识别与收录网站的信息。二、 使用步骤1、在其主页(http:/tuckey.org/urlrewrite/)下载该包文件,把其 jar 包放在 WEB-INF/lib 目录下2、在 web.xml 中加入以下代码 Java 代码 1. 2. UrlRewriteFilter 3. org.t
3、uckey.web.filters.urlrewrite.UrlRewriteFilter 4. 5. 6. UrlRewriteFilter 7. /* 8. REQUEST 9. FORWARD 10. 3、在 WEB-INF 目录下放置 urlrewrite.xml 配置文件,并在 urlrewrite.xml 配置文件中使用正则表达式进行地址映射,重启应用即可完成安装Xml 代码 /world/(.*)0(.*)$/world.jsp?tid=$1;tip=$2 rule 是 url 重写规则,from 是显示出来的地址,to 是映射的实际地址 ,$1、$2 是重写参数,可以为多个,(
4、)里是匹配的正则表达式.4、测试在项目中新建 world.jsp,启动 tomcat,输入http:/localhost:8080/mysite/world/10aamysite 是你的项目名实际上访问的是 http:/localhost:8080/mysite/world.jsp?tid=1city=(a-z+)$ /world/$1/$2 Java 代码 使用 jsp “nyc 将输出 nyc 或者使用 jstl 标签 “nyc 将输出 nyc 元素Xml 代码 lt;rule World Rule /world/(a-z+)/(a-z+)$ /world.jsp?country=$1ci
5、ty=$2 元素Xml 代码 World Rule Cleanly redirect world requests to JSP, a country and city must be specified. /world/(a-z+)/(a-z+)$ /world.jsp 元素可以用来为 rule 元素选择条件,所有条件将在规则执行时执行(除非显式的把“next” 设为 “or”)参数 取值 描述type header(默认) 、method、port、time 等设置一些条件的类型name 可为任何值 如果 type 取值为 header,这个名称将是 http header 的值next and(默认) 、or and:下一个 rule 元素和这个 rule 必须匹配。or:下一个 rule 元素或者这个condition 将被匹配operator equal(默认) 、notequal、greater、less 等ie 请求的值和 condition 值比较四、小知识点(1)xml 的一些字符必须要进行转义,如(2)正则表达式里 在 from 元素中,是以 开始 $结束的。(3)如果你用了 元素,记得在页面输出的时候进行重写。即 jstl 表达式或者 Java 脚本输出(4)如果你发现正则表达式比较难表达,可以用 wildcards 表达式来写。