`
tianhandigeng
  • 浏览: 374349 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

Struts2中UrlRewriterFilter(url重写)的初步使用

阅读更多

之前做的网站基本成型,不过,听说要对搜索引擎友好点,还得要将网站弄成静态化,至少要做点“伪静态”的工作。而我对url rewrite早有所闻,于是乎就上其官网 下了个来玩。入门很简单,下载地址是http://tuckey.org/urlrewrite/dist/urlrewritefilter-2.6.zip ,下载来解压。将解压出来的urlrewrite-2.6.0.jar复制到项目中的WEB-INF\lib下,还有urlrewrite.xml复制到WEB-INF下。

接下来就是配置了,配置也是超级简单的。

web.xml里的配置如下,在urlrewrite.xml里面也有注释说明怎么添加的。

    <!– UrlRewriteFilter –>
    <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>

注意将这一段配置放在struts2的配置上面。还要在struts2的配置里加上两行,具体如下:

<!– 配置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>/*</url-pattern>
        <dispatcher>REQUEST</dispatcher>
        <dispatcher>FORWARD</dispatcher>
    </filter-mapping>

 

接下来是修改配置urlrewrite.xml里的内容,它的规则如下:

<urlrewrite>

    <rule>
        <note>
            The rule means that requests to /test/status/ will be redirected to /rewrite-status
            the url will be rewritten.
        </note>
        <from>/test/status/</from>
        <to type="redirect">%{context-path}/rewrite-status</to>
    </rule>

 

<outbound-rule>
     <note>
         The outbound-rule specifies that when response.encodeURL is called (if you are using JSTL c:url)
         the url /rewrite-status will be rewritten to /test/status/.

         The above rule and this outbound-rule means that end users should never see the
         url /rewrite-status only /test/status/ both in thier location bar and in hyperlinks
         in your pages.
     </note>
     <from>/rewrite-status</from>
     <to>/test/status/</to>
</outbound-rule>

 

</urlrewrite>

只要你自己把需要重写的URL规则写上去就好了,我的一个例子就是:

<rule>
        <note>shop</note>
        <from>/shops.html</from>
        <to>/shops/findShops.action</to>
    </rule>

这样访问shops.html就是访问/shops/findShops.action。

分享到:
评论
2 楼 akunamotata 2011-02-04  
需要更深入点...
1 楼 weilingfeng98 2011-01-15  
可以试试,谢谢了

相关推荐

    struts2中实现URL重写

    在Struts2中,我们可以使用Tuckey的URLRewriteFilter来实现URL重写。这是一个开源的过滤器,它可以灵活地配置以满足不同的重写需求。以下是一些基本步骤: 1. **添加依赖**:在项目的pom.xml文件中,引入...

    使用urlrewrite重写struts2的action

    在这个场景中,我们将深入探讨如何使用`URL Rewrite Filter`来重写Struts2的Action。 首先,让我们理解`URL Rewrite Filter`的基本概念。这个工具提供了一种方式,通过配置XML文件(如`urlrewrite.xml`)来定义一...

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

    例如,将上面的URL从`/struts2urlrewrite/welcome.action`重写为`/welcome`: ```xml &lt;from&gt;/welcome &lt;to type="forward"&gt;/struts2urlrewrite/welcome.action ``` 这条规则会将所有匹配`/welcome`的请求...

    struts2改写url后缀demo

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

    struts2中的url

    ### Struts2中的URL配置与处理机制 #### 引言 在Web开发中,URL的配置及处理一直是开发者关注的重点之一。特别是在Struts2框架中,如何高效且准确地配置URL,以确保程序能正确地识别用户请求并作出响应,是一项...

    Struts2初步使用总结

    ### Struts2初步使用总结 #### 一、Struts2原理概述 **1.1 为什么要用Struts2** 在探讨为何使用Struts2之前,我们先简要回顾一下Struts2的一些基本特点: - **模块化设计**:Struts2采用模块化的架构设计,使得...

    Java WEB实现URL重写

    3. **使用框架支持**:许多现代的Java Web框架如Spring MVC、Struts2等都提供了内置的URL重写机制。比如Spring MVC可以通过`@RequestMapping`注解和`HandlerMapping`接口来实现友好的URL设计。 ```java @Controller...

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

    根据提供的信息,项目中使用的是版本为2.6.0的`urlrewrite`库,其路径为`WebRoot/WEB-INF/lib/urlrewrite-2.6.0.jar`。 - **配置文件`urlrewrite.xml`**:这是URLRewrite的核心配置文件,其中定义了URL重写的规则。...

    Struts1 ULR重写

    在Struts1中实现URL重写,我们通常会使用过滤器来处理HTTP请求。这里提到的"URLFilter.java"文件很可能就是一个实现了URL重写的过滤器类。 首先,我们需要理解URL重写的原理。在HTTP协议中,URL是请求资源的统一...

    struts2 路径问题

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

    Struts2使用详情

    同时,Struts2框架提供了丰富的拦截器(Interceptors)、结果类型(Result Types)和插件(Plugins),这些工具可以帮助开发者更好地管理和控制路径的使用,例如通过Interceptor实现URL重写,或者使用FreeMarker等...

    重写struts2文件上传处理类

    在Struts2框架中,文件上传是一个常见的功能,它允许用户通过表单提交包含文件的请求。`PerfMultiPartRequest`是Struts2中处理文件上传的核心类之一,主要负责解析请求中的多部分数据(multipart/form-data)。在这...

    去掉.action去掉.do字样 隐藏struts2 URL地址action, strus1的扩展名do也是同理.zip

    Struts2和Struts1是两个非常著名的Java Web框架,它们在处理请求时通常会在URL中显式地显示.action或.do后缀。然而,为了提供更友好的用户体验和增强安全性,有时我们需要隐藏这些扩展名。本篇文章将详细介绍如何在...

    struts2 最新漏洞 S2-016、S2-017修补方案 .docx

    这个方案是通过重写 Struts2 的 DefaultActionMapper 的 handleSpecialParameters 方法,增加 action、redirect、redirectAction 等参数的过滤,以防止攻击者 inject 恶意代码。操作步骤如下: 1. 新建 ...

    Struts2+Jquery+Ajax

    在Struts2中,Jquery可以与Ajax结合使用,实现页面的无刷新更新。 Ajax(Asynchronous JavaScript and XML)技术允许前端与后台进行异步通信,无需整个页面刷新,提高了用户体验。在Struts2框架下,我们可以使用...

    struts拦截器和url放行

    5. **放行配置**: 在Struts2的配置文件(如struts.xml)中,可以设定哪些URL不通过`LoginInterceptor`。这样,即使用户未登录,也能访问这些特定的URL。 6. **组合使用**: 一个应用可能有多个拦截器,它们可以形成...

    留言板留言板struts2留言板struts2

    下面将详细介绍Struts2框架以及在该项目中可能涉及的关键知识点。 1. **Struts2框架概述**:Struts2是Apache软件基金会下的开源项目,它继承了Struts1的优点,并融合了WebWork框架的许多特性。Struts2的主要目标是...

    struts2jar包

    在项目中使用Struts2时,我们需要配置struts2的主配置文件(struts.xml),定义Action、结果类型、拦截器栈等。Action是业务逻辑的入口点,Result表示一个操作完成后转向的页面或结果。拦截器是Struts2的一大特色,...

    struts2帮助文档

    struts2中的国际化 struts2转化器 struts2实现表单数据校验 struts2的基石-拦截器 struts2中实现IOC struts2中实现文件上传 struts2中实现CRUD struts2中的OGNL struts2的新表单标志的使用 struts2与AJAX一 struts2...

Global site tag (gtag.js) - Google Analytics