在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过滤,不支持转发之类的过滤
分享到:
相关推荐
<artifactId>struts2-core</artifactId> <version>2.5.33</version> </dependency> <dependency> <groupId>org.apache.struts</groupId> <artifactId>struts2-convention-plugin</artifactId> ...
<parameter><br/> <name>driverClassName</name><br/> <value>org.gjt.mm.mysql.Driver</value><br/> </parameter><br/> <parameter><br/> <name>url</name><br/> <value>jdbc:mysql://localhost/Pagination?...
### Struts2框架搭建及配置详解 #### 一、Struts2框架简介 Struts2是Struts的一个改进版本,它结合了WebWork框架和Struts框架的优点,并且增加了许多新特性,使得开发者能够更加方便地开发Java Web应用程序。...
param1=$1¶m2=$2</to> </rule> ``` 4. **启动和测试**:重新部署应用,访问URL时,URLRewriteFilter会根据配置文件中的规则对URL进行重写。 除了上述基本操作,URLRewriteFilter还支持许多高级特性,如条件匹配...
本教程将深入探讨如何在Struts2中实现URL重写,以将`.do`后缀改写为`.html`。 首先,我们需要引入URL重写工具,例如`Tuckey URL Rewrite Filter`。这是一个强大的URL管理过滤器,可以帮助我们轻松地重写和管理URL。...
此外,Struts2还提供了`<s:if>`和`<s:else>`的嵌套使用,可以实现更复杂的条件判断逻辑。同时,可以使用`<s:choose>`, `<s:when>`, 和 `<s:otherwise>`标签来创建类似于switch-case的结构: ```jsp <s:choose> <s:...
<filter-name>struts2</filter-name> <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class> </filter> <filter-mapping> <filter-name>struts2</filter-name>...
<filter-name>struts2</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> ``` #### 四、Spring 配置 **1. spring-servlet.xml**: - 配置Spring的Bean、AOP等。 - 示例配置: ```xml <?xml ...
<from>/struts2示例.action</from> <to type="redirect">%{contextPath}/example/${name}</to> </rule> ``` 在这里,`<from>`标签定义了要匹配的原始URL,`<to>`标签定义了重定向的目标URL。`type="redirect"`...
<filter-name>struts2</filter-name> <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class> </filter> <filter-mapping> <filter-name>struts2</filter-name>...
<filter-name>struts2</filter-name> <filter-class> org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter </filter-class> </filter> <filter-mapping> <filter-name>struts2</filter-...
struts2配置MSSQL连接 <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" > <property name="driverClassName"><value>com.microsoft.sqlserver.jdbc.SQLServerDriver</value></property> ...
Struts原理、开发及项目实施<br/> Holen 2002-9-12<br/><br/>1、 摘要<br/>2、 关键词<br/>3、 Framework<br/>4、 Struts的起源<br/>5、 Struts工作原理<br/>6、 Struts安装<br/>7、 一个实例<br/>8、 Struts优缺点...
struts-1.3.8 包(<br><br>antlr-2.7.2.jar<br>bsf-2.3.0.jar<br>commons-beanutils-1.7.0.jar<br>commons-chain-1.1.jar<br>commons-digester-1.8.jar<br>commons-fileupload-1.1.1.jar<br>commons-io-1.1.jar<br>...
<br>04 在Struts 2.0中国际化(i18n)您的应用程序<br>05 转换器(...Struts 2中实现IoC<br>09 在Struts 2中实现文件上传<br>10 在Struts 2中实现CRUD<br>11 Struts 2中的OGNL<br>12 trus 2的新表单标志的使用<br...
struts2框架的详细搭建 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" ...
struts2实现的学生信息管理系统 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" ...
<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-...
论坛系统(Struts 2+Hibernate+Spring实现)<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE validators SYSTEM ...
<display-name>Struts 2</display-name> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> <!-- 配置核心拦截器 --> <filter> <filter-name>struts2</filter-name>...