urlrewrite使用案例

urlrewrite字面意思为重写路径,可以改变浏览器中我们看得到的 URL路径,而且有得于搜索引擎抓取,form表单、ajax都不利于搜索引擎抓取。

首先我们需要导入jar包,jar包可以去maven仓库下载。

1、我用的是目前最新的版本4.0.4

<dependency>
     <groupId>org.tuckey</groupId>
     <artifactId>urlrewritefilter</artifactId>
     <version>4.0.4</version>
</dependency>
2、在web.xml中配置一个过滤器,用来过滤请求

 <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>
</filter-mapping>  

3、在 WEH-INF中新建xml文件urlrewrite.xml,注意:文件名字就取这个名字

<?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>/([0-9])/([0-9]).html$</from>
 		<to type="forward">?a=$1&b=$2</to>
 	</rule>
 </urlrewrite>
解释:

<urlrewrite>:不解释了

<rule>:标签内是规则,与参数的赋值 ,可以增加rule标签来适应更新多的匹配规则

<from>:检查当前请求的url链接是否与标签内的正则表达式匹配

<to>:如果<from>标签内检查通过,则执行这一步,<from>中第一个正则匹配得到的数据代号为$1,第二个正则匹配到的数据为为$2........依此类推

其实to标签中的内容就是http://localhost:8080/projectName/servlet?a=1&b=2中的?a=1&b=2,a和b是参数名,由程序员根据后台自己定义,1和2就是from标签中匹配到参数值。

<to>里面的type值可以为forward、redirect,其实和servlet中的一样,一个是直接跳转到对应路径中去,一个根据对应的链接重新再请求一次。


4、到这里,后台已经好了,现在只需在页面根据个人的需要生成相应链接

比如上面这个例子,对应的页面链接就是<a href="http://localhost:8080/projectName/servlet/1/2.html">你需要链接的地方</a>,此链接中被/[0-9]/[0-9].html$匹配/1/2.html,1是匹配到的第一个参数$1,2是匹配到的第二个参数$2,然后再到to里面给参数赋值?a=$1&b=$2  其实也就是这意思?a=1&b=2,

.......ok了!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值