Java中URL重寫(urlrewrite+Maven)

一、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 匹配單詞的開始或結束
  • ^ 匹配字符串的開始
  • $ 匹配字符串的結束
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章