来源:
struts2与urlrewrite的整合
关于为什么要把.jsp或者.do?param1=value1¶m2=value2.......这样的链接地址修改成普通的html地址,
作用1:
便于搜索引擎搜索。
作用2:
隐藏技术实现,提高网站的移植性,对于移植性这点会带来很大的方便,当底层定义的相关.do方法变化或者修改后不必到每个页面去修改相关的链接,而是直接修改urlrewrite.xml
其他的相关介绍网上一把一把的,下面具体说实现。环境struts2+spring+hibernate
第一步:
下载JAR包,我这用的是urlrewrite-2.6.0.jar
第二步:
修改项目的web.xml,在web.xml加入
- <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>
- </filter-mapping>
注意与其他filter间的顺序,加在OpenSessionInViewFilter之 后,org.apache.struts2.dispatcher.FilterDispatcher之前,不然会出现could not initialize proxy - the owning Session was closed异常
将struts2过滤器进行修改,修改后如下
- <filter-mapping>
- <filter-name>struts2</filter-name>
- <url-pattern>/*</url-pattern>
- <dispatcher>REQUEST</dispatcher>
- <dispatcher>FORWARD</dispatcher>
- </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
相关推荐
本框架为struts2+spring3+hibernate4+urlrewrite(伪静态地址) Struts采用通配,web-inf下的urlrewrite.xml为伪静态配置文件,跳转到struts.xml进行对应
NULL 博文链接:https://stride.iteye.com/blog/723324
ssh2中的urlrewrite和Struts2的生成静态页面
看到网上只有struts2的例子,正好项目中遇到这个问题,于是就写了这么个例子。不足之处请多多指教!
什么是UrlRewrite UrlRewrite 是 将动态页面转换为静态页面的一种技术 例如 您网站页面是 http: www yourdomain com news docread aspx id 123 为什么使用UrlRewrite: 1 处理这样的情形:你要更改你的web应用...
在网上找了很多都不合心意,就知道改了下源码,只改了org.tuckey.web.filters.urlrewrite.UrlRewriteFilter.class 文件,如果担心安全的朋友,可以下载 4.0.3的jar 替换UrlRewriteFilter.class即可。 confPath 默认 ...
urlrewrite重写地址,Urlrewrite 2.5.2 现在有2.6版本的,自己去网上找吧
IIS Urlrewrite2,IIS服务器URl重写工具,,IIS服务器URl重写工具,,IIS服务器URl重写工具,
urlrewrite 只支持单个配置文件,默认的配置文件为:/WEB-INF/urlrewrite.xml 现在对urlrewrite-3.2的源码进行了修改,使它能够支持多文件和通配符的形式加载自定义配置文件,即可以进行如下的配置: <param-name>...
打造UrlRewrite源码 UrlRewrite一般都是在web.config里配置访问规则在路由到实际页面,所以先实现自定义节点信息读取,这里我定义了俩个类 webconfig定义了组,不需要的话可以把UrlRewriteConfigGroup类去掉并修改...
URL Rewrite是微软针对IIS推出的一种对URL进行重写的扩展模块,目前支持用于IIS7及以上版本。该模块使IIS管理员能够创建强大的自定义规则,语法支持正则规则以及通配符规则过滤。它能够根据HTTP头和IIS服务器变量...
UrlRewrite.rarUrlRewrite.rar
UrlReWrite(Url重写或伪静态)UrlReWrite(Url重写或伪静态)
urlrewrite Jar包 urlrewrite-3.1.0.jar
NULL 博文链接:https://namas.iteye.com/blog/1130854
URLRewrite URL重写组件 里边有相关配置说明 包括了web.Config 外附一个Css
java urlrewrite demo
IIS URL Rewrite模块(URL 重写)
PHPWAMP内置IIS站点管理的相关伪静态安装,采用PHPWAMP的IIS站点管理可以在IIS服务器上同时运行多个不同的PHP版本
URLRewrite使用时候一些属性的配置说明