`
angelbill3
  • 浏览: 257442 次
  • 性别: Icon_minigender_2
  • 来自: 杭州
社区版块
存档分类
最新评论

利用 urlrewrite 对Struts2 url进行重写

 
阅读更多
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&amp;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> 
分享到:
评论

相关推荐

    使用urlrewrite重写struts2的action

    在实际项目中,为了提高URL的可读性、搜索引擎优化(SEO)以及安全控制,我们经常需要对URL进行重写。这就是`URL Rewrite Filter`发挥作用的地方,它是一个基于Apache的开源过滤器,用于实现URL重写规则。在这个场景...

    ssh2中的urlrewrite和Struts2的生成静态页面

    在SSH2(Spring + Struts2 + Hibernate)框架中,URLRewrite是一种强大的工具,可以用于实现URL重写功能,使得网站的URL更加友好、易于理解和记忆。这在SEO优化及用户体验提升方面具有重要意义。 ##### URLRewrite...

    Struts2下使用urlReWrite的最简实例(MyEclipse工程)

    `urlRewrite`是Tuckey开源组织提供的一个URL重写过滤器,它能够帮助我们在Struts2应用中实现这个目标。 在这个最简实例中,我们将探讨如何在MyEclipse环境中集成Struts2和urlRewrite,创建一个基本的应用来演示URL...

    UrlRewrite例子

    UrlRewrite是一个强大的URL重写工具,常用于Java Web应用中,尤其是与Struts2框架结合使用时,能够帮助开发者优化URL结构,提高网站的SEO友好性和用户体验。在这个"UrlRewrite例子"中,我们将深入探讨UrlRewrite的...

    urlrewrite重写jar包

    `urlrewrite`可以很好地与Spring MVC、Struts2等框架集成,用于统一处理URL映射。 总的来说,`urlrewrite`是一个强大的工具,能够帮助开发者灵活地管理和控制应用程序的URL结构,提升用户体验和系统性能。学习和...

    URLrewrite-实例

    《URL重写技术详解——基于Java的URLrewrite实践》 在Web开发中,URL重写(URL Rewrite)是一项重要的技术,它允许我们以更友好、更可读的方式隐藏实际的URL路径,从而提升用户体验和搜索引擎优化(SEO)。本文将...

    struts2中实现URL重写

    下面我们将详细探讨如何在Struts2框架中实现URL重写。 首先,了解URL重写的基本概念。URL重写是通过改变HTTP请求URL的外观,而不会改变其实际的行为。这通常涉及到在URL中添加或修改查询字符串,或者将路径信息改写...

    urlrewrite完整示例2.6/3.2/4.0jar包

    `URLRewrite`是一款强大的URL重写工具,主要用于Apache Tomcat服务器,它可以让你灵活地管理和重写URL,实现诸如URL美化、隐藏参数、路径映射等功能。在Web开发中,URL重写对于SEO(搜索引擎优化)和提升用户体验都...

    java urlrewrite解决默认页问题

    为了实现URL重写功能,我们需要在`web.xml`中配置URL Rewrite Filter,并在`urlrewrite.xml`中定义重写规则。 **1. `web.xml` 配置:** ```xml &lt;filter-name&gt;UrlRewriteFilter &lt;filter-class&gt;org.tuckey.web....

    urlrewrite的简单搭建

    标题 "urlrewrite的简单搭建" 涉及到的知识点主要集中在使用URL重写工具 `UrlRewriteFilter` 上,这是一个基于Java的开源过滤器,用于处理和重写HTTP请求的URL,通常与Web应用程序(如Spring MVC或Struts)一起使用...

    struts1.2与urlrewritefilter 的整合

    URLRewriteFilter是一款开源的URL重写工具,它可以方便地对HTTP请求的URL进行规则匹配和转换。 在Struts1.2框架中,URL通常是带有.action后缀的,这在某些情况下可能不那么直观和友好。URLRewriteFilter的引入就是...

    urlrewrite静态页面的使用例子

    4. **集成Spring、Struts或JSP**:`urlrewrite`框架可以很好地与各种Java Web框架如Spring、Struts进行集成。例如,在Spring MVC中,`urlrewrite`可以帮助隐藏DispatcherServlet的URL,使应用看起来更像单页面应用。...

    struts2改写url后缀demo

    本教程将深入探讨如何在Struts2中实现URL重写,以将`.do`后缀改写为`.html`。 首先,我们需要引入URL重写工具,例如`Tuckey URL Rewrite Filter`。这是一个强大的URL管理过滤器,可以帮助我们轻松地重写和管理URL。...

    伪静态URLRewrite实例解析

    在`WEB-INF`目录下新建一个名为`urlrewrite.xml`的文件,用于定义具体的URL重写规则。示例内容如下: ```xml &lt;!DOCTYPE urlrewrite PUBLIC "-//tuckey.org//DTD UrlRewrite 2.6//EN" ...

    urlrewrite示例

    9. **与Web框架集成**:`URLRewrite`可以很好地与Spring MVC、Struts等Web框架集成,进一步优化URL管理和路由。 10. **性能优化**:合理使用`URLRewrite`可以提高网站性能,例如通过减少不必要的参数传递,使URL更...

    ss3ex中使用UrlRewrite

    7. **性能影响**:虽然`UrlRewrite`提供了很多便利,但过度使用或设计不当的规则可能会对性能造成一定影响,因为每个请求都需要经过Filter处理。因此,在实际应用中应适度优化规则,避免不必要的重写。 8. **调试与...

    伪静态_URLRewrite实例解析

    UrlRewrite Filter是一个开源的URL重写过滤器,它可以对HTTP请求的URL进行修改,从而实现伪静态效果。它是基于Tuckey组织开发的,适用于Java Web应用。 3. **配置Web工程**: - 创建一个新的Web项目,并添加JSTL...

    struts2 路径问题

    综上所述,Struts2的路径问题可能涉及多个层面,包括Action配置、结果类型设置、静态资源访问策略、插件和拦截器的使用,以及URL重写和部署配置等。解决这些问题通常需要对Struts2的工作原理有深入理解,并能熟练...

    Struts1 ULR重写

    这个库提供了一套配置文件(如urlrewrite.xml)来定义URL重写规则,使得管理变得更加方便。 6. **测试与调试**:完成URL重写后,我们需要进行充分的测试,确保所有URL都能正确重写并执行相应的Action,同时不会影响...

Global site tag (gtag.js) - Google Analytics