urlrewrite笔记

来源:互联网 发布:网络信息安全龙头股票 编辑:程序博客网 时间:2024/05/24 07:19

step 1:

将jar包导入到工程中;

step 2:

在web.xml声明文件中有下面的类似声明:(注:urlrewriteFilter的过滤器最好在struts2之前
    <filter>
        <filter-name>rewriteFilter</filter-name>
        <filter-class>org.tuckey.web.filters.urlrewrite.UrlRewriteFilter</filter-class>
        <init-param>
            <param-name>logLevel</param-name>
            <param-value>commons</param-value>
        </init-param>
    </filter>

    <filter-mapping>
        <filter-name>rewriteFilter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>


step 3:

新建/WEB-INF/urlrewrite.xml
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE urlrewrite PUBLIC "-//tuckey.org//DTD UrlRewrite 3.0//EN"
    "http://tuckey.org/res/dtds/urlrewrite3.0.dtd">

<!-- https://urlrewrite.dev.java.net/manual/3.0 -->
<urlrewrite>
    <rule> 
        <from>/aaa/bbb/([0-9]+)_([a-z]+).html</from> 
        <to>/../aaa/bbb.jsp?id=$1&name=$2</to> 
    </rule> 
</urlrewrite>

效果:

访问:http://localhost/aaa/bbb/99_abc.html 实际访问的是:http://localhost/aaa/bbb.jsp?id=99&name=abc 

此外<to>有两种type,分别为:forward和redirect。这和我们通常所说的forward和redirect跳转是一回事。


如果使用forward,则限定<to>中的请求必须和urlRewriteFilter在同一上下文环境中。而redirect则没有限制,可以跳转到任何其他的工程中。

另外,<from>标签中使用的是正则表达式,即^和$之间的内容。关于正则表达式,这里不再进行详细说明。

最后,from可以包含多个正则表达式,其对应的参数,在<to>中,可以用$1,$2等按照顺序进行接收。


原创粉丝点击