UrlRewrite Filter3.0.4 示例代码2007-12-22 17:01urlrewrite-3.0.4,首先把包导入项目中,然后加上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">urlrewrite>
<rule>
<from>/test/(.*).html</from>
<to>/index.jsp?id=$1</to>
</rule>
</urlrewrite>
然后在web.xml加上过滤器, <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>,
这样就可以,当运行,httP://localohost:8080/testUrl/test/a.html那么会执行index.jsp代码,并把id传值.转载;http://wemyss.blogbus.com/logs/7999131.html<urlrewrite>
<rule>
<from>^/([a-z]+)$</from>
<to>/VideoWindow/vip.jsp?userName=$1</to>
</rule>
<rule>
<from>^/(.*)/List/(.*)_(.*).html$</from>
<to>/VideoWindow/vipWebList.jsp?userName=$1&id=$2&type=$3</to>
</rule><outbound-rule>
<from>^/VideoWindow/vip\.jsp\?userName=([a-z]+)$</from>
<to>%{context-path}/$1</to>
</outbound-rule>
<outbound-rule>
<from>^/VideoWindow/vipWebList\.jsp\?userName=(.*)\&id=(.*)\&type=(.*)$</from>
<to>%{context-path}/$1/List/$2_$3.html</to>
</outbound-rule>
</urlrewrite>注意:
1、在outbound-rule处如果不加\对相关的符号进行转义那么将使response.encodeURL绑定不上“美化后”的url。
2、对于中文参数要使用(.*)作为参数转义。不过传过来的中文参数在接收之后是乱码,至今未解决。
3、在制定rule时要加上^........$,否则后果就是将你的web project下面的所有的你转发路径下的目录均认定成为参数了,导致页面图片以及css找不到自己的家了,嘿嘿
<!DOCTYPE urlrewrite PUBLIC "-//tuckey.org//DTD UrlRewrite 3.0//EN"
"http://tuckey.org/res/dtds/urlrewrite3.0.dtd">urlrewrite>
<rule>
<from>/test/(.*).html</from>
<to>/index.jsp?id=$1</to>
</rule>
</urlrewrite>
然后在web.xml加上过滤器, <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>,
这样就可以,当运行,httP://localohost:8080/testUrl/test/a.html那么会执行index.jsp代码,并把id传值.转载;http://wemyss.blogbus.com/logs/7999131.html<urlrewrite>
<rule>
<from>^/([a-z]+)$</from>
<to>/VideoWindow/vip.jsp?userName=$1</to>
</rule>
<rule>
<from>^/(.*)/List/(.*)_(.*).html$</from>
<to>/VideoWindow/vipWebList.jsp?userName=$1&id=$2&type=$3</to>
</rule><outbound-rule>
<from>^/VideoWindow/vip\.jsp\?userName=([a-z]+)$</from>
<to>%{context-path}/$1</to>
</outbound-rule>
<outbound-rule>
<from>^/VideoWindow/vipWebList\.jsp\?userName=(.*)\&id=(.*)\&type=(.*)$</from>
<to>%{context-path}/$1/List/$2_$3.html</to>
</outbound-rule>
</urlrewrite>注意:
1、在outbound-rule处如果不加\对相关的符号进行转义那么将使response.encodeURL绑定不上“美化后”的url。
2、对于中文参数要使用(.*)作为参数转义。不过传过来的中文参数在接收之后是乱码,至今未解决。
3、在制定rule时要加上^........$,否则后果就是将你的web project下面的所有的你转发路径下的目录均认定成为参数了,导致页面图片以及css找不到自己的家了,嘿嘿
<filter-name>struts2 </filter-name>
<url-pattern>*.action </url-pattern>
<dispatcher>REQUEST </dispatcher>
<dispatcher>FORWARD </dispatcher>
</filter-mapping>
不要写成 /*