url重写 伪静态
使用场景:
项目中很多情况下用到struts.请求链接诸如:useradd.do、useradd.action?method=xxx&name=abcd 之类的。
显示的相当不美观。使用伪静态可以改变这点。
前置条件:
urlrewritefilter-4.0.3.jar
使用方法:
1. 在web.xml中 新增一个url重写过滤器
<!-- url重写 伪静态 -->
<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>
2. 如果用到struts框架,将struts的过滤器配置做一定修改。
<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>
</filter-mapping>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>*.jsp</url-pattern>
</filter-mapping>
3.在WEB-INF下面新建一个名为urlrewrite.xml 的配置文件。 /WEB-INF/urlrewrite.xml
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE urlrewrite PUBLIC "-//tuckey.org//DTD UrlRewrite 4.0//EN"
"http://www.tuckey.org/res/dtds/urlrewrite4.0.dtd">
<urlrewrite>
<!-- 中文映射 -->
<rule>
<from>zh/index.html</from>
<to>zh/index.jsp</to>
</rule>
<rule>
<from>zh/news.html</from>
<to>zh/news/news_list.jsp</to>
</rule>
<rule>
<from>zh/events.html</from>
<to>zh/news/events_list.jsp</to>
</rule>
<rule>
<from>zh/solution.html</from>
<to type="forward">ViewSolutionLst_UserSolution.action</to>
</rule>
</urlrewrite>
将from 的链接替换为to的链接