struts2 url重写

刚做完一个项目,因为是一个网站,所以会考虑到seo的东西。因为是用ssh做的,因此这里面就会出现*.action、*.jsp等不利于seo的一些值,所以就用urlrewtire这个插件做了处理,处理的相关内容如下: 
1、下载urlrewrite-3.2.0.jar,当然也可以是其他版本,在这里我用的是这个版本。然后放到项目的lib目录下。 
2、配置过滤器,在web.xml中添加以下代码: 
Java代码   收藏代码
  1. <!-- url 重写 -->  
  2.    <filter>  
  3. <filter-name>UrlRewriteFilter</filter-name>  
  4. <!-- 过滤器类所在的路径: -->  
  5. <filter-class>org.tuckey.web.filters.urlrewrite.UrlRewriteFilter</filter-class>  
  6. </filter>  
  7.   
  8. <filter-mapping>  
  9.     <filter-name>UrlRewriteFilter</filter-name>  
  10.     <!-- 拦截所有url -->  
  11.     <url-pattern>/*</url-pattern>  
  12. </filter-mapping>  
  13.    <filter>  
  14.        <filter-name>struts2</filter-name>  
  15.        <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>  
  16.    </filter>  
  17.    <filter-mapping>  
  18.        <filter-name>struts2</filter-name>  
  19.        <url-pattern>/*</url-pattern>  
  20.        <dispatcher>REQUEST</dispatcher>  
  21.     <dispatcher>FORWARD</dispatcher>  
  22.     <dispatcher>INCLUDE</dispatcher>  
  23.    </filter-mapping>  
,这里面尤其要记得修改struts2的过滤器的mapping中的几种dispatcher。因为在没有添加之前url重写无效。 
3、添加urlrewrite.xml文件。改文件放在web.xml同一级目录下面。主要内容如下: 
Java代码   收藏代码
  1. <!-- 将首页映射为/-->  
  2.     <rule>  
  3.         <from>/index.html</from>  
  4.         <to type="forward">queryFontModules.action</to>  
  5.     </rule>  
  6.     <!-- 将新闻内容映射为/news-contentId-moduleId.html -->  
  7.     <rule>  
  8.         <from>^/news-([0-9]+)-([0-9]+).html$</from>  
  9.         <to type="forward">  
  10.         /queryModuleContent.action?contentId=$1&amp;moduleId=$2  
  11.         </to>  
  12.     </rule>  
。第一个事没有产数的action映射为html。第二个是有两个参数的action映射为html。这里需要有几个注意的地方:一、多个参数在url中我们用“&”符号链接,但在这里面如要转义为:“&amp;”;二、原来url中的参数在这里用$1、$2......表示即可,但是顺序要一致。 
4、配置完成时候就可以使用了,例如在浏览器中输入.../index.html这个地址之后,程序会去执行queryFontModules.action这个action,但是地址栏中还是显示.../index.html,这样子就起到了url重写的目的
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值