struts2与urlrewrite的整合

UrlRewrite就是我们通常说的地址重写,用户得到的全部都是经过处理后的URL地址。
关于为什么要把.jsp或者.do?param1=value1&param2=value2.......这样的链接地址修改成普通的html地址。
优点

一:提高安全性,可以有效的避免一些参数名、ID等完全暴露在用户面前,如果用户随便乱输的话,不符合规则的话直接会返回个404或错误页面,这比直接返回500或一大堆服务器错误信息要好的多。
二:美化URL,去除了那些比如*.do之类的后缀名、长长的参数串等,可以自己组织精简更能反映访问模块内容的URL。
三:更有利于搜索引擎的收入,通过对URL的一些优化,可以使搜索引擎更好的识别与收录网站的信息。

下面具体说实现。环境struts2+spring+hibernate

第一步:

下载JAR包,我这用的是urlrewrite-2.6.0.jar

第二步:

修改项目的web.xml,在web.xml加入

[xhtml]  view plain copy
  1. <filter>  
  2.         <filter-name>UrlRewriteFilter</filter-name>  
  3.         <filter-class>org.tuckey.web.filters.urlrewrite.UrlRewriteFilter</filter-class>  
  4.     </filter>  
  5.     <filter-mapping>  
  6.         <filter-name>UrlRewriteFilter</filter-name>  
  7.         <url-pattern>/*</url-pattern>  
  8.     </filter-mapping>  

注意与其他filter间的顺序,加在OpenSessionInViewFilter之后,org.apache.struts2.dispatcher.FilterDispatcher之前,不然会出现could not initialize proxy - the owning Session was closed异常

将struts2过滤器进行修改,修改后如下

[xhtml]  view plain copy
  1. <filter-mapping>  
  2.         <filter-name>struts2</filter-name>  
  3.         <url-pattern>/*</url-pattern>  
  4.         <dispatcher>REQUEST</dispatcher>   
  5.         <dispatcher>FORWARD</dispatcher>   
  6.     </filter-mapping>  

一定要加
        <dispatcher>REQUEST</dispatcher> 
        <dispatcher>FORWARD</dispatcher>

不然会导致404错误

第三步:

将官方下载urlrewrite.xml放进WEB-INF目录下注释掉不相关类容,加入自己的规则

第四步:

具体的规则说明

假设你的站点为:http://127.0.0.1:8080/app

规则1:不带参数的情况

<rule>
        <note/>
        <from>^/testUrl.html</from>
        <to>/ajax/testUrl.do</to>
      </rule>

当你请求http://127.0.0.1:8080/app/testUrl.html实际是访问的http://127.0.0.1:8080/app/ajax/testUrl.do

规则2:带一个数字参数的情况

<rule>
        <note>comment-productId.html</note>
        <from>^/comment/-([0-9]+).html$</from>
        <to>/user/queryComment.do?productId=$1</to>
      </rule>

当你请求http://127.0.0.1:8080/app/comment-100.html实际是访问的http://127.0.0.1:8080/app/user/queryComment.do?productId=100

规则3:带多个数字参数,既有数字又有字母的情况

<rule>

        <note>comment-productId-pgMethod-cPage.html</note>
        <from>^/comment/-(/d+)/-(/w+)/-(/d+)/.html$</from>
        <to>/user/queryComment.do?productId=$1&pgMethod=$2&cPage=$3</to>
      </rule>

当你请求http://127.0.0.1:8080/app/comment-100-n-1.html

实际是访问的http://127.0.0.1:8080/app/user/queryComment.do?productId=100&pgMethod=n&cPage=1

Python网络爬虫与推荐算法新闻推荐平台:网络爬虫:通过Python实现新浪新闻的爬取,可爬取新闻页面上的标题、文本、图片、视频链接(保留排版) 推荐算法:权重衰减+标签推荐+区域推荐+热点推荐.zip项目工程资源经过严格测试可直接运行成功且功能正常的情况才上传,可轻松复刻,拿到资料包后可轻松复现出一样的项目,本人系统开发经验充足(全领域),有任何使用问题欢迎随时与我联系,我会及时为您解惑,提供帮助。 【资源内容】:包含完整源码+工程文件+说明(如有)等。答辩评审平均分达到96分,放心下载使用!可轻松复现,设计报告也可借鉴此项目,该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的。 【提供帮助】:有任何使用问题欢迎随时与我联系,我会及时解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 【项目价值】:可用在相关项目设计中,皆可应用在项目、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 下载后请首先打开README文件(如有),项目工程可直接复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,勿用于商业用途。质量优质,放心下载使用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值