版权声明:本文为博主原创文章,未经博主允许不得转载。
UrlRewrite地址重写后,用户得到的全部都是经过处理后的URL地址。
一、它的主要优点
1.1、提高安全性,可以有效的避免一些参数名、ID等完全暴露在用户面前,如果用户随便乱输的话,不符合规则的话直接会返回个404或错误页面,这比直接返回500或一大堆服务器错误信息要好的多。
1.2、美化URL,去除了那些比如*.do、*action之类的后缀名、长长的参数串等,可以自己组织精简更能反映访问模块内容的URL。
1.3、更有利于搜索引擎的收入,通过对URL的一些优化,可以使搜索引擎更好的识别与收录网站的信息。
二、UrlRewrite使用范围
地址重写一般是用于将动态地址伪静态,如果已经是静态页面路径那就没有必要用此技术了。
三、 使用方法
3.1、下载并引用urlrewrite.jar,如果是maven管理jar的话可直接 拷贝如下代码:
<dependency>
<groupId>org.tuckey</groupId>
<artifactId>urlrewritefilter</artifactId>
<version>4.0.3</version>
</dependency>
3.2、配置web.xml文件,即在web.xml文件中添加如下代码:
<filter>
<filter-name>UrlRewriteFilter</filter-name>
<filter-class>org.tuckey.web.filters.urlrewrite.UrlRewriteFilter</filter-class>
<init-param>
<param-name>confReloadCheckInterval</param-name>
<param-value>60</param-value>
</init-param>
<!--自定义配置文件的路径,是相对context的路径,(默认位置 /WEB-INF/urlrewrite.xml) -->
<init-param>
<param-name>confPath</param-name>
<param-value>/WEB-INF/urlrewrite.xml</param-value>
</init-param>
<!--设置日志级别(将被记录到日志中) 可以为: TRACE, DEBUG, INFO (default), WARN, ERROR, FATAL, log4j, commons, slf4j,比如 sysout:DEBUG(设置到控制台调试输出级别) (默认级别 WARN) -->
<init-param>
<param-name>logLevel</param-name>
<param-value>DEBUG</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.3 、配置urlrewrite.xml文件 ,具体的配置方法如下所示
<urlrewrite>
<rule>
<from>/login.html</from>
<to>/loginController.do?login</to>
</rule>
</urlrewrite>
其中from是Urlrewrite地址重写后的路径,to是实际访问路径。如果想以参数为伪静态页面的名称的话,则可以通过以下配置
<rule>
<from>^/login/(.*).html</from>
<to>/loginController.do?login&parameter=$1</to>
</rule>
如果parameter的值为user001的话,那么重写后的路径则为/login/user001.html。