struts2 伪静态
最近想在项目中使用伪静态技术,项目使用的是struts2框架。最近了一下几种方法
第一:url重新的方式。url重写就是将浏览器的一个请求在服务器端重定向到另一个可以处理请求的url上。
例如:http://www.moonteam.net/news/1.htm 重定向到http://www.moonteam.net/news/viewNews.action?id=1
这样的好处是地址统一,且利于搜索引擎。详见:http://www.sunxin.org/forum/thread/20748.html
第二:struts本身就支持风格化的url
步骤:(1)、增加struts的扩展名<constant name="struts.action.extension" value="action,htm" />,struts2拥有了两个扩展名action和htm
(2)、 在web.xml中配置struts2的核心控制器将*.ation,*.htm的请求交给struts2来处理
<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>
</filter-mapping>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>*.htm</url-pattern>
</filter-mapping>
(3)、配置具体的action
<package name="news" extends="struts-default" namespace="/index">
<action name="*" class="com.moonteam.struts2.action.ViewNewsAction" >
<param name="paramName" >{1}</param>
<result name="success">index.jsp</result>
</action>
</package>
这样一个http://www.moonteam.net/news/1.htm 就映射到了http://www.moonteam.net/news/viewNews.action?id=1