STRUTS2中有各种ACTION,DO等结尾的URL,看起来很不美观,URL重写很有必要。
我用的是urlrewrite-3.0.4.jar 网上搜了下,应该有更高版本。
web.xml配置:
<!-- 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>
</filter-mapping>
<filter>
<!-- Url重写结束 -->
<!--默认页-->
<welcome-file-list>
<welcome-file>index.html</welcome-file>
</welcome-file-list>
<!--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>/struts/*</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>*.jsp</url-pattern>
<dispatcher>REQUEST </dispatcher>
<dispatcher>FORWARD </dispatcher>
<dispatcher>INCLUDE </dispatcher>
</filter-mapping>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>*.action</url-pattern>
<dispatcher>REQUEST </dispatcher>
<dispatcher>FORWARD </dispatcher>
<dispatcher>INCLUDE </dispatcher>
</filter-mapping>
然后在WEB-INF下建xml文件 取名:urlrewrite.xml
<urlrewrite>
<!--{1}-->
<rule>
<from>^/index.html</from>
<to type="forward">/index.action</to>
</rule>
<!--{2}-->
<rule>
<from>^/book-([0-9]+).html$</from>
<to type="forward">
/indexbook.action?bookid=$1
</to>
</rule>
<!--{3}-->
<rule>
<from>^/depart-([0-9]+)-([0-9]+).html$</from>
<to type="forward">
/indexdepartbook.action?departmentId=$1&majorId=$2
</to>
</rule>
<!--{4}-->
<rule>
<from>^/(.*)(.html)$</from>
<to>/$1.action</to>
</rule>
</urlrewrite>
只要在webroot下建一个空白文件叫index.html 就能直接通过index.html来访问首页的action了。
{1}意思是你访问index.html的时候,实际访问的其实是index.action。
{2}访问book-1.html 等于 indexbook.action?bookid=1
{3}多个参数,访问depart-1-0.html 等于 indexdepartbook.action?departmentId=1&majorId=0
{4}拦截所有的后缀为action的URL,URL重写为action名+html后缀。
补充:
若带参数的地址是字符 则用:(\S{1,10}) ---- S表示String,1,10表示10最长长度为10.
如:
<rule>
<from>^/(\S{1,10}).html$</from>
<to type="forward">/indexindex.action?forshort=$1</to>
</rule>
分享到:
相关推荐
NULL 博文链接:https://namas.iteye.com/blog/1130854
ssh2中的urlrewrite和Struts2的生成静态页面
URLRewrite URL重写组件 里边有相关配置说明 包括了web.Config 外附一个Css
IIS URL Rewrite模块(URL 重写)
UrlReWrite(Url重写或伪静态)完美示例源码,已利用ActionlessForm解决原始地址form回传的问题 例如:/products.aspx?category=books 转换为/products/Books.aspx或/products/Books.html(需要在IIS中建立映射)...
UrlRewrite域名重写,全套代码,是vs2005.net .net2.0
urlrewrite url地址重写 郁闷,还要我写够20个字。。我倒!
UrlReWrite(Url重写或伪静态)UrlReWrite(Url重写或伪静态)
URL Rewrite是微软针对IIS推出的一种对URL进行重写的扩展模块,目前支持用于IIS7及以上版本。该模块使IIS管理员能够创建强大的自定义规则,语法支持正则规则以及通配符规则过滤。它能够根据HTTP头和IIS服务器变量...
Asp.Net的URLReWrite的源代码含详细具体的配置方法,在info.doc里。
本框架为struts2+spring3+hibernate4+urlrewrite(伪静态地址) Struts采用通配,web-inf下的urlrewrite.xml为伪静态配置文件,跳转到struts.xml进行对应
IIS Urlrewrite2,IIS服务器URl重写工具,,IIS服务器URl重写工具,,IIS服务器URl重写工具,
urlrewrite重写demo,伪静态技术实现
网上找了很多,但都是经过编译的urlrewriter.dll,只有8K左右,项目引用后光报错误。最后找了个工具MSDNURLRewriting生成了下,打包传上面了。希望能对大家有所帮助。
urlrewrite地址重写实例配置说明,经过个人实践,很好用
URL 重写是截取传入 Web 请求并自动将请求重定向到其他 URL 的... l 易于被搜索引擎收录 Url ReWrite(URL重写的例子) web.config的配置和参数的传递,利用正则表达式批评URL地址,继承page类防重写
3 最重要的 在象Google Yahoo 和 Live 这样的搜索引擎中提高你网站上网页的搜索相关性 具体来说 URL重写经常能使你在你网站上">什么是UrlRewrite UrlRewrite 是 将动态页面转换为静态页面的一种技术 例如 您网站...
asp net UrlReWrite Url重写或伪静态 完美示例源码
利用UrlRewrite,asp.net动态生成htm页面