当前位置:编程学习 > JS >>

JSP URL重写-urlrewrite

URL重写的目的不言而喻,首先引入urlrewrite-4.0.0.jar【或者其他版本】包,可以从官方下载。
 
1、web.xml【官方配置】
 
[html]  
<?xml version="1.0" encoding="UTF-8"?>  
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"  
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee   
    http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">  
    <display-name></display-name>  
    <welcome-file-list>  
        <welcome-file>index.jsp</welcome-file>  
    </welcome-file-list>  
  
    <!-- URL重写配置 -->  
    <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><!-- 拦截所有URL -->  
    </filter-mapping>  
</web-app>  
 
2、urlrewrite.xml
[html]  
<?xml version="1.0" encoding="utf-8"?>  
<!DOCTYPE urlrewrite PUBLIC "-//tuckey.org//DTD UrlRewrite 3.2//EN"  
        "http://tuckey.org/res/dtds/urlrewrite3.2.dtd">  
  
<!--  
  
    Configuration file for UrlRewriteFilter  
    http://tuckey.org/urlrewrite/  
  
-->  
<urlrewrite>  
     <!--自定义匹配-->  
     <rule>     
        <!--  <from>^/admin/(.*)(.*)</from>   -->  
        <from>admin/([0-9]+)/(.*).shtml/(.*)</from>  
        <to>/admin_login.jsp?id=$1&name=$2&keyword=$3</to>    
    </rule>     
[html] view plaincopy
    <!-- 官方示例-->  
    <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.  
补充:Web开发 , Jsp ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,