一、UrlRewrite的作用
UrlRewrite即地址重寫,用戶得到的全部都是經過處理後的URL地址。將我們的動態網頁地址轉化爲靜態的地址,如html、shtml,還可以隱藏網頁的真正路徑。此外還可以用來做地址映射。
二、導入包
在Maven項目中的pom.xml文件中添加 UrlRewrite 的 Maven 座標:
<dependency>
<groupId>org.tuckey</groupId>
<artifactId>urlrewritefilter</artifactId>
<version>4.0.4</version>
</dependency>
三、web.xml配置
在web.xml文件中配置 filter,使 UrlRewrite 生效:
<filter>
<filter-name>UrlRewriteFilter</filter-name>
<filter-class>
org.tuckey.web.filters.urlrewrite.UrlRewriteFilter
</filter-class>
</filter>
<filter-mapping>
<filter-name>UrlRewriteFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
四、urlrewrite.xml 地址重寫規則
在項目 WEB-INF 下創建 urlrewrite.xml 文件,在其中添加地址重寫規則。
<?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>
<note>
主頁
</note>
<from>^/login(.html);([=_a-zA-Z0-9@\.]+)?$</from>
<to type="forward">/customer/login</to>
</rule>
<rule>
<rule>
<note>
訂單詳細
</note>
<from>^/customer/(detail)-([0-9]+)(.html)?$</from>
<to type="forward">/order$1.htm?orderId=$2</to>
</rule>
</urlrewrite>
注:$1 表示第一個括號中的內容,$2 表示第二個括號中的內容,括號中的內容可以使用正則表達式來匹配。
簡單的正則表達式:
- . 匹配除換行符以外的任意字符
- \w 匹配字母或數字或下劃線或漢字
- \s 匹配任意的空白符
- \d 匹配數字
- \b 匹配單詞的開始或結束
- ^ 匹配字符串的開始
- $ 匹配字符串的結束