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 匹配数字
  •  匹配单词的开始或结束
  • ^ 匹配字符串的开始
  • $ 匹配字符串的结束
原文地址:https://www.cnblogs.com/zt19994/p/9477569.html