• UrlRewriteFilter(1):安装配置


    1)添加jar包到WEB-INF/lib中(下载地址:http://www.tuckey.org/urlrewrite/#download),或者Maven则添加如下依赖即可

    <dependency>
    
        <groupId>org.tuckey</groupId>
    
        <artifactId>urlrewritefilter</artifactId>
    
        <version>4.0.3</version>
    
    </dependency>

    2)在WEB-INF/web.xml中配置UrlRewriterFilter,代码如下

    <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>
    
        <dispatcher>REQUEST</dispatcher>
    
        <dispatcher>FORWARD</dispatcher>
    
    </filter-mapping>

    3)配置urlrewrite.xml(url重写规则)到WEB-INF下,Maven则在src/main/webapp/WEB-INF下

    如下样例模板:

    <?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">
    
     
    
    <!--
    
     
    
        Configuration file for UrlRewriteFilter
    
        http://www.tuckey.org/urlrewrite/
    
     
    
    -->
    
    <urlrewrite>
    
     
    
        <rule>
    
            <note>
    
                The rule means that requests to /test/status/ will be redirected to /rewrite-status
    
                the url will be rewritten.
    
            </note>
    
            <from>/test/status/</from>
    
            <to type="redirect">%{context-path}/rewrite-status</to>
    
        </rule>
    
     
    
     
    
        <outbound-rule>
    
            <note>
    
                The outbound-rule specifies that when response.encodeURL is called (if you are using JSTL c:url)
    
                the url /rewrite-status will be rewritten to /test/status/.
    
     
    
                The above rule and this outbound-rule means that end users should never see the
    
                url /rewrite-status only /test/status/ both in thier location bar and in hyperlinks
    
                in your pages.
    
            </note>
    
            <from>/rewrite-status</from>
    
            <to>/test/status/</to>
    
        </outbound-rule>
    
     
    
     
    
        <!--
    
     
    
        INSTALLATION
    
     
    
            in your web.xml add...
    
     
    
            <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>
    
     
    
         EXAMPLES
    
     
    
         Redirect one url
    
            <rule>
    
                <from>/some/old/page.html</from>
    
                <to type="redirect">/very/new/page.html</to>
    
            </rule>
    
     
    
        Redirect a directory
    
            <rule>
    
                <from>/some/olddir/(.*)</from>
    
                <to type="redirect">/very/newdir/$1</to>
    
            </rule>
    
     
    
        Clean a url
    
            <rule>
    
                <from>/products/([0-9]+)</from>
    
                <to>/products/index.jsp?product_id=$1</to>
    
            </rule>
    
        eg, /products/1234 will be passed on to /products/index.jsp?product_id=1234 without the user noticing.
    
     
    
        Browser detection
    
            <rule>
    
                <condition name="user-agent">Mozilla/[1-4]</condition>
    
                <from>/some/page.html</from>
    
                <to>/some/page-for-old-browsers.html</to>
    
            </rule>
    
        eg, will pass the request for /some/page.html on to /some/page-for-old-browsers.html only for older
    
        browsers whose user agent srtings match Mozilla/1, Mozilla/2, Mozilla/3 or Mozilla/4.
    
     
    
        Centralised browser detection
    
            <rule>
    
                <condition name="user-agent">Mozilla/[1-4]</condition>
    
                <set type="request" name="browser">moz</set>
    
            </rule>
    
        eg, all requests will be checked against the condition and if matched
    
        request.setAttribute("browser", "moz") will be called.
    
     
    
        -->
    
     
    
    </urlrewrite>

    4)重新部署应用生效

    PS:通过在本地访问http://127.0.0.1:8080/rewrite-status查看配置信息。(仅本地访问)

    作者:
    博客园:Yevon
    免责声明:文章、笔记等仅供分享、探讨、参考等学习之用,因此造成的任何后果概不负责。(如有错误、疏忽等问题,欢迎指正、讨论,谢谢)
    PS: 本文版权归作者所有,欢迎转载,但请务必在文章页面明显位置给出原文连接,谢谢配合。
  • 相关阅读:
    jquery基本用法
    js里BOM和DOM操作
    js基础语法
    java将json格式的字符串转化为对象数组
    Java生成Excel并导入数据
    mybatis的xml中使用foreach循环拼接(sql中的 in 语法)
    FreeMarker在List中取任意一条数据的某一个值
    freemarker中的常用语法
    Java将日期转化为大写格式(阿拉伯大写数字)
    项目中出现The import javax.servlet cannot be resolved 的解决方法
  • 原文地址:https://www.cnblogs.com/yevon/p/3030335.html
Copyright © 2020-2023  润新知