作为一个网站,在开发的时候,使用它-UrlReWriteFilter是必须的。
UrlRewriteFilter是一个用于改写URL的Web过滤器,类似于Apache的mod_rewrite。适用于任何Web应用服务器(如Resin,Orion,Tomcat等)。其典型应用就把动态URL静态化,便于搜索引擎爬虫抓取你的动态网页。
在这写出使用它的步骤:
<!-- 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>
在struts2的过滤器中添加<dispatcher>REQUEST</dispatcher>和<dispatcher>FORWARD</dispatcher>
在我使用的过程中我没有用到上面的配置,但好多人说一定要配置。
<filter> <filter-name>struts2</filter-name> <filter-class> org.apache.struts2.dispatcher.FilterDispatcher </filter-class> </filter> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>*.action</url-pattern> <dispatcher>REQUEST</dispatcher> <dispatcher>FORWARD</dispatcher> </filter-mapping>
接下来编写urlrewrite.xml文件。将文件放在WEB-INF文件夹下。(注意文件名一定要是urlrewrite.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]+).html$</from> <to type="forward">withParams.action?name=$1</to> </rule> <rule> <from>^/withParams2/([a-zA-Z0-9]+).html$</from> <to type="redirect">%{context-path}/withParams.action?name=$1</to> </rule> </urlrewrite>
<from>标签中的路径的格式就是我们要改写的的样式。<to>标签中的实际是我们真实的请求。这里我们可以简单的认为,就是通过这个配置文件,将我们请求的美化后的伪静态html页面,映射成为真实的action请求
<to>有两种type,分别为:forward和redirect。