`
violasogni
  • 浏览: 22374 次
  • 性别: Icon_minigender_1
  • 来自: 成都
文章分类
社区版块
存档分类

<转载>struts2中实现去掉后缀及url重写</转载>

阅读更多
在struts2中实现去掉后缀及url重写
关键字: struts2
2009-06-21 13:10
首先,这要用到两个软件包,一个是SmartUrls(Struts2的插件,下载地址:http://code.google.com/p/smarturls-s2/downloads/list),还有就是urlrewritefilter(下载地址:http://tuckey.org/urlrewrite/dist/urlrewritefilter-2.6.zip).
   要想去掉struts2的后缀,就要这样配置filter:

<filter>
    <filter-name>struts2</filter-name>
    <filter-class>org.texturemedia.smarturls.SmartURLsFilter</filter-class>           

  </filter>
      用这个代替struts2的核心过滤器,FilterDispatcher。不必担心struts2不起作用了,因为这个过滤器是继承自FilterDispatcher的。同时在struts.properties中加入struts.action.extension= ,不设任何值。

     
      然后就是配置UrlRewriteFilter,如下

<filter>
           <filter-name>UrlRewriteFilter</filter-name>
           <filter-class>org.tuckey.web.filters.urlrewrite.UrlRewriteFilter</filter-class>
</filter>
   在配置filter-mapping的时候,注意urlrewritefilter的应该在前面。然后urlrewritefilter的重写该怎么用大家可以参看文档,这里就不再赘述。

   当使用时发现重写后,filterChain上只有一个urlrewritefilter,而没有经过smartUrls就发到了请求的资源,得到的自然是一个404错误。于是我参看urlrewritefilter的源代码发现,如果重写url成功的话,将会调用RequestDispatcher的forward方法转发到资源,而重写不成功或者是没有重写才会调用filterChain.dofilter。所以struts2的filter-mapping应该这样配置

<filter-mapping>
    <filter-name>struts2</filter-name>
    <url-pattern>/*</url-pattern>
    <dispatcher>FORWARD</dispatcher>
</filter-mapping>
      然后就 OK 了
最后说明一点,这要在支持servlet2.4以上规范的容器中才气作用,因为servlet2.3规范里面,过滤器只支持request过滤,不支持转发之类的过滤
分享到:
评论

相关推荐

    struts2架构的必备包

    &lt;artifactId&gt;struts2-core&lt;/artifactId&gt; &lt;version&gt;2.5.33&lt;/version&gt; &lt;/dependency&gt; &lt;dependency&gt; &lt;groupId&gt;org.apache.struts&lt;/groupId&gt; &lt;artifactId&gt;struts2-convention-plugin&lt;/artifactId&gt; ...

    使用Struts的Action来对数据库进行增、删、改、查四项操作(源码)

    &lt;parameter&gt;&lt;br/&gt; &lt;name&gt;driverClassName&lt;/name&gt;&lt;br/&gt; &lt;value&gt;org.gjt.mm.mysql.Driver&lt;/value&gt;&lt;br/&gt; &lt;/parameter&gt;&lt;br/&gt; &lt;parameter&gt;&lt;br/&gt; &lt;name&gt;url&lt;/name&gt;&lt;br/&gt; &lt;value&gt;jdbc:mysql://localhost/Pagination?...

    struts框架搭建

    ### Struts2框架搭建及配置详解 #### 一、Struts2框架简介 Struts2是Struts的一个改进版本,它结合了WebWork框架和Struts框架的优点,并且增加了许多新特性,使得开发者能够更加方便地开发Java Web应用程序。...

    struts2中实现URL重写

    param1=$1&param2=$2&lt;/to&gt; &lt;/rule&gt; ``` 4. **启动和测试**:重新部署应用,访问URL时,URLRewriteFilter会根据配置文件中的规则对URL进行重写。 除了上述基本操作,URLRewriteFilter还支持许多高级特性,如条件匹配...

    struts2改写url后缀demo

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

    Strust2的if-else <tr></tr>用法

    此外,Struts2还提供了`&lt;s:if&gt;`和`&lt;s:else&gt;`的嵌套使用,可以实现更复杂的条件判断逻辑。同时,可以使用`&lt;s:choose&gt;`, `&lt;s:when&gt;`, 和 `&lt;s:otherwise&gt;`标签来创建类似于switch-case的结构: ```jsp &lt;s:choose&gt; &lt;s:...

    基于struts2和hibernate实现登录和注册功能

    &lt;filter-name&gt;struts2&lt;/filter-name&gt; &lt;filter-class&gt;org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter&lt;/filter-class&gt; &lt;/filter&gt; &lt;filter-mapping&gt; &lt;filter-name&gt;struts2&lt;/filter-name&gt;...

    java8+tomcat8+struts2.5+spring4.3+hibernate5.2框架搭建详细过程

    &lt;filter-name&gt;struts2&lt;/filter-name&gt; &lt;url-pattern&gt;/*&lt;/url-pattern&gt; &lt;/filter-mapping&gt; ``` #### 四、Spring 配置 **1. spring-servlet.xml**: - 配置Spring的Bean、AOP等。 - 示例配置: ```xml &lt;?xml ...

    使用urlrewrite重写struts2的action

    &lt;from&gt;/struts2示例.action&lt;/from&gt; &lt;to type="redirect"&gt;%{contextPath}/example/${name}&lt;/to&gt; &lt;/rule&gt; ``` 在这里,`&lt;from&gt;`标签定义了要匹配的原始URL,`&lt;to&gt;`标签定义了重定向的目标URL。`type="redirect"`...

    使用Maven搭建S2SH工程详解一:使用Maven创建struts2工程

    &lt;filter-name&gt;struts2&lt;/filter-name&gt; &lt;filter-class&gt;org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter&lt;/filter-class&gt; &lt;/filter&gt; &lt;filter-mapping&gt; &lt;filter-name&gt;struts2&lt;/filter-name&gt;...

    struts-2.3.4.1所需的jar文件

    &lt;filter-name&gt;struts2&lt;/filter-name&gt; &lt;filter-class&gt; org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter &lt;/filter-class&gt; &lt;/filter&gt; &lt;filter-mapping&gt; &lt;filter-name&gt;struts2&lt;/filter-...

    struts2配置MSSQL

    struts2配置MSSQL连接 &lt;bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" &gt; &lt;property name="driverClassName"&gt;&lt;value&gt;com.microsoft.sqlserver.jdbc.SQLServerDriver&lt;/value&gt;&lt;/property&gt; ...

    Struts原理、开发及项目实施

    Struts原理、开发及项目实施&lt;br/&gt; Holen 2002-9-12&lt;br/&gt;&lt;br/&gt;1、 摘要&lt;br/&gt;2、 关键词&lt;br/&gt;3、 Framework&lt;br/&gt;4、 Struts的起源&lt;br/&gt;5、 Struts工作原理&lt;br/&gt;6、 Struts安装&lt;br/&gt;7、 一个实例&lt;br/&gt;8、 Struts优缺点...

    struts框架jar包

    struts-1.3.8 包(&lt;br&gt;&lt;br&gt;antlr-2.7.2.jar&lt;br&gt;bsf-2.3.0.jar&lt;br&gt;commons-beanutils-1.7.0.jar&lt;br&gt;commons-chain-1.1.jar&lt;br&gt;commons-digester-1.8.jar&lt;br&gt;commons-fileupload-1.1.1.jar&lt;br&gt;commons-io-1.1.jar&lt;br&gt;...

    struts2.0中文教程

    &lt;br&gt;04 在Struts 2.0中国际化(i18n)您的应用程序&lt;br&gt;05 转换器(...Struts 2中实现IoC&lt;br&gt;09 在Struts 2中实现文件上传&lt;br&gt;10 在Struts 2中实现CRUD&lt;br&gt;11 Struts 2中的OGNL&lt;br&gt;12 trus 2的新表单标志的使用&lt;br...

    搭建struts2框架

    struts2框架的详细搭建 &lt;?xml version="1.0" encoding="UTF-8"?&gt; &lt;!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" ...

    struts2实例 学生信息管理系统

    struts2实现的学生信息管理系统 &lt;?xml version="1.0" encoding="UTF-8"?&gt; &lt;!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" ...

    Struts 2综合应用实例——添加学生信息

    &lt;filter-name&gt;struts2&lt;/filter-name&gt; &lt;filter-class&gt;org.apache.struts2.dispatcher.FilterDispatcher&lt;/filter-class&gt; &lt;/filter&gt; &lt;filter-mapping&gt; &lt;filter-name&gt;struts2&lt;/filter-name&gt; &lt;url-pattern&gt;/*&lt;/url-...

    论坛系统(Struts 2+Hibernate+Spring实现)

    论坛系统(Struts 2+Hibernate+Spring实现)&lt;?xml version="1.0" encoding="UTF-8"?&gt; &lt;!DOCTYPE validators SYSTEM ...

    struts2配置2.5版

    &lt;display-name&gt;Struts 2&lt;/display-name&gt; &lt;welcome-file-list&gt; &lt;welcome-file&gt;index.jsp&lt;/welcome-file&gt; &lt;/welcome-file-list&gt; &lt;!-- 配置核心拦截器 --&gt; &lt;filter&gt; &lt;filter-name&gt;struts2&lt;/filter-name&gt;...

Global site tag (gtag.js) - Google Analytics