您的位置:首页 > 其它

urlRewriteFilter地址重写

2013-12-04 11:49 363 查看
这里只说明一点,先看如下xml代码:

<?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>/noParams.html</from>
<to type="forward">noParams.action</to>
</rule>

<rule>
<from>^/withParams/([a-zA-Z0-9]+)/([a-zA-Z0-9]+)/([a-zA-Z0-9]+)/([a-zA-Z0-9]+)/withParams.html</from>
<to type="forward">withParams.action?username=$1&offset=$2&pageSize=$3&fieldName=$4</to>
</rule>

<rule>
<from>^/withParams2/([a-zA-Z0-9]+).html$</from>
<to type="redirect">%{context-path}/withParams.action?username=$1</to>
</rule>

<rule>
<note>admin by user</note>
<from>/admin/([a-zA-Z0-9]+)/([a-zA-Z0-9]+)/([a-zA-Z0-9]+)/([a-zA-Z0-9]+)/index.html</from>
<to type="forward">/admin/index.jsp?username=$1&offset=$2&pageSize=$3&fieldName=$4</to>
</rule>

</urlrewrite>


发送的请求地址:<from>/noParams.html</from>
被隐藏的地址:<to type="forward">noParams.action</to>


请求地址应该是:

noParams.html
也就是先请求noParams.html,会跳转到noParams.action,这个逻辑感觉有点反。输入之前需要先记住规则。

web.xml

<!-- urlRewriteFilter -->
<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>

<!-- struts filter -->
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>*.action</url-pattern>
<dispatcher>REQUEST</dispatcher>
<dispatcher>FORWARD</dispatcher>
<dispatcher>INCLUDE</dispatcher>
</filter-mapping>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: