Java URLRewriter使用小节
最近总结了下URLRewriter.
http://fykyx521.iteye.com/blog/494263很好地总结了页面URL重写的问题.
http://zhxing.iteye.com/blog/456713? 有较详细的翻译
1首先web.xml中要注意
<!-- URLRewriter --><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>
?<dispatcher>REQUEST</dispatcher>
?<dispatcher>FORWARD</dispatcher>
http://hintcnuie.iteye.com/blog/226251给出了关于它的详细说明
2再有页面ULR重写要注意:
<!-- rule用于页面重定向 --><rule><from>^/([\w\W]+).htm$</from><to type="redirect">$1.action</to></rule><rule><from>^/(\w+)/(\w+)/(\w+).html$</from><to type="forward">%{context-path}/$1.action?valueInt=$2&valueString=$3</to><!-- %{context-path}指当前项目路径(多层次下使用).--><!-- type="redirect",type="forward"(默认方式) 是另一种页面重定向方式 --></rule><!-- outbound-rule用于页面链接显示重定向 --><outbound-rule><from>^([\w\W]+).action$</from><to>$1.htm</to></outbound-rule>?这里type="redirect",type="forward"(默认方式) ,如使用redirect 是页面跳转,即浏览器地址栏会显示.forward则是重定向. %{context-path}指当前项目路径.
3页面URL 若不重写意义也不大,重写方式通过outbound-rule定制,它会重写 response.encodeURL(result)然手达到重写页面URL的目的
<a href="<%=request.getContextPath() + response.encodeURL("/home.action")%>">URLRewriter 修正页面URL</a><a href="<c:url value="/home.action" />">URLRewriter 修正页面URL</a><s:a value="/home.action">urlRewriter</s:a>?4最后正则就不多说了.