UrlRewrite
A Java Web Filter for any compliant web application servers (such as Tomcat , JBoss , Jetty or Resin ), which allows you to rewrite URLs before they get to your code. It is a very powerful tool just like Apache's mod_rewrite .
使用UrlRewrite有三大好处:
一:提高安全性,可以有效的避免一些参数名、ID等完全暴露在用户面前,如果用户随便乱输的话,不符合规则的
话直接会返回个404或错误页面,这比直接返回500或一大堆服务器错误信息要好的多
二:美化URL,去除了那些比如*.do之类的后缀名、长长的参数串等,可以自己组织精简更能反映访问模块内容的URL 三:更有利于搜索引擎的收入,通过对URL的一些优化,可以使搜索引擎更好的识别与收录网站的信息
UrlRewrite的用法:
1. 首先下载jar包。从官网http://tuckey.org/urlrewrite/ 上下载下来urlrewrite-3.2.0.jar(本人使用的版
本,但不是最新版本,建议使用最新版本)。然后把jar包放到你的web项目的WEB-INF/lib下面。
2. 配置web.xml。 它的配置如下:
[html] view plain copy
< filter >
< filter-name > UrlRewriteFilter </ filter-name >
< filter-class > org.tuckey.web.filters.urlrewriter.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 >
3. 在WEB-INF下面新建urlrewrite.xml(注意都是小写)。其配置如下:
[html] view plain copy
<? xml version = "1.0" encoding = "UTF-8" ?>
<!DOCTYPE urlrewrite PUBLIC "-//tuckey.org//DTD UrlRewrite 2.6//EN"
"http://tuckey.org/res/dtds/urlrewrite2.6.dtd">
< urlrewrite >
< rule >
< from > ^/(.*)$ </ from >
< to type = "redirect" > /$1.jsp </ to >
</ rule >
< outbound-rule >
< from > </ from >
< to > </ to >
</ outbound-rule >
</ urlrewrite >
rule结点中form的规则默认使用的是正则表达式来匹配的,当用户访问服务器时的URL会与该配置相比较,如果符合规则就会按照下面to结点中的配置对其进行跳转,其默认是forward跳转,具体配置可见官网文档。
例如下面的配置:
[html] view plain copy
<? xml version = "1.0" encoding = "utf-8" ?>
<!DOCTYPE urlrewrite PUBLIC "-//tuckey.org//DTD UrlRewrite 4.0//EN"
"http://www.tuckey.org/res/dtds/urlrewrite4.0.dtd">
< urlrewrite >
< rule >
< from > ^/page/(.*)$ </ from >
< to type = "redirect" > /page/$1.action </ to >
</ rule >
</ urlrewrite >
这样在浏览器中输入此url:http://localhost:8080/page/test
就相当于访问:http://localhost:8080/page/test.jsp