`
卡拉阿风
  • 浏览: 102056 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

url rewrite和struts2整合

    博客分类:
  • SEO
阅读更多

在qieqie这里http://www.iteye.com/topic/53834

发现了一个好东西,但按照他这里在项目里配置发现不成功

今天在把之前在网上收集的资料找了下,找到答案

在struts的filter-mapping中加入以下就可以了

<filter-mapping> 
        <filter-name>struts2 </filter-name> 
        <url-pattern>*.do </url-pattern> 
        <dispatcher>REQUEST </dispatcher>  
        <dispatcher>FORWARD </dispatcher>  
       <dispatcher>INCLUDE </dispatcher>  
</filter-mapping>

 

如下:

<!-- Character Encoding filter -->
	<filter>
		<filter-name>encodingFilter</filter-name>
		<filter-class>
			org.springframework.web.filter.CharacterEncodingFilter
		</filter-class>
		<init-param>
			<param-name>encoding</param-name>
			<param-value>UTF-8</param-value>
		</init-param>
	</filter>
	<!-- Hibernate Open Session In View filter-->
	<filter>
		<filter-name>osivFilter</filter-name>
		<filter-class>
			org.springframework.orm.hibernate3.support.OpenSessionInViewFilter
		</filter-class>
	</filter>
	<!-- UrlRewriteFilter filter -->
	<filter>
		<filter-name>UrlRewriteFilter</filter-name>
		<filter-class>
			org.tuckey.web.filters.urlrewrite.UrlRewriteFilter
		</filter-class>
		<init-param>
			<param-name>logLevel</param-name>
			<param-value>WARN</param-value>
		</init-param>
	</filter>
		<!-- Struts2 filter -->
	<filter>
		<filter-name>struts2-cleanup</filter-name>
		<filter-class>
			org.apache.struts2.dispatcher.ActionContextCleanUp
		</filter-class>
	</filter>
		<filter>
		<filter-name>struts2</filter-name>
		<filter-class>
			org.apache.struts2.dispatcher.FilterDispatcher
		</filter-class>
	</filter>
	<filter-mapping>
		<filter-name>encodingFilter</filter-name>
		<url-pattern>/*</url-pattern>
	</filter-mapping>

	
	<filter-mapping>
		<filter-name>osivFilter</filter-name>
		<url-pattern>/*</url-pattern>
	</filter-mapping>

	<filter-mapping>
		<filter-name>UrlRewriteFilter</filter-name>
		<url-pattern>/*</url-pattern>
		<dispatcher>REQUEST</dispatcher>
		<dispatcher>FORWARD</dispatcher>
	</filter-mapping>


	<filter-mapping>
		<filter-name>struts2-cleanup</filter-name>
		<url-pattern>/*</url-pattern>
		<dispatcher>REQUEST</dispatcher>  
        <dispatcher>FORWARD</dispatcher> 
	</filter-mapping>

	<filter-mapping>
		<filter-name>struts2 </filter-name> 
        <url-pattern>/*</url-pattern> 
        <dispatcher>REQUEST</dispatcher>  
        <dispatcher>FORWARD</dispatcher> 
	</filter-mapping>

引用部分

http://www.iteye.com/topic/70219 

1、在web.xml中EncodingFilter的位置应该在Struts2的FilterDispatcher之前,道理很简单,要先调整字符集,再进入Action。

2、如果使用Urlrewrite,要指定filter-mapping的dispatcher方式,如下
<filter-mapping>
    <filter-name>Struts2</filter-name>
    <url-pattern>/*</url-pattern>
    <dispatcher>REQUEST</dispatcher>
    <dispatcher>FORWARD</dispatcher>
</filter-mapping>

3、在做上传文件的时候,要在web.xml中增加ActionContextCleanUp这个filter,如果不增加,会发生第一次上传取不到文件的情况
<filter>
  <filter-name>struts-cleanup</filter-name>
  <filter-class>org.apache.struts2.dispatcher.ActionContextCleanUp</filter-class>
  </filter>
  <filter-mapping>
    <filter-name>struts-cleanup</filter-name>
    <url-pattern>/*</url-pattern>
  </filter-mapping>
按照Struts2的API,filter的顺序是
struts-cleanup filter
SiteMesh filter
FilterDispatcher

6
1
分享到:
评论
4 楼 niuqiang2008 2011-04-21  
学习了.....
3 楼 wenjinglian 2010-03-31  
确实是这样的,不错
2 楼 ws715 2009-03-02  
very good
1 楼 卡拉阿风 2008-12-18  
第一个常用个规则就是站内的简单重写。
<rule>
  <from></from>
  <to type="forward></to>
</rule>
  <from></from>写上你自己定义的访问地址,<to type="forward></to>就是实际的访问地址。比如我们实际的访问地址是:http://yousite.com/entity.htm ?category=user&page=2.而我们想把它重写为http://yousite.com/entity/uesr/page_2.html。这样看起来比我们实际的要好看的多。我们就应该这样的写: 
<rule>
  <from>^/(\w+)/(\w+)/page_(\d+)\.html$</from>
  <to type="forward">/$1.htm?category=$2&amp;page=$3</to>
</rule>
   简单的介绍一下常用的正规表示式:
代码 说明
. 匹配除换行符以外的任意字符
\w 匹配字母或数字或下划线或汉字
\s 匹配任意的空白符
\d 匹配数字
\b 匹配单词的开始或结束
^ 匹配字符串的开始
$ 匹配字符串的结束

常用的&要用  &amp;来表示。$1,$2代表与你配置正规表达式>/(\w+)/(\w+)/相对应的参数。<to type="forward">默认的是 type="forward".
  另一个常用的规则就是连接外部的网站。就要用到。<to type="redirect">
<rule>
     <from>^/rss/yahoo\.html$</from>
       <to type="redirect">    http://add.my.yahoo.com/rss? url=http://feed.feedsky.com/MySiteFeed
      </to>
</rule>

相关推荐

    struts2+spring3+hibernate4+urlrewrite

    本框架为struts2+spring3+hibernate4+urlrewrite(伪静态地址) Struts采用通配,web-inf下的urlrewrite.xml为伪静态配置文件,跳转到struts.xml进行对应

    struts1.2与urlrewritefilter 的整合

    整合Struts1.2和URLRewriteFilter的过程主要包括以下几个步骤: 1. **添加依赖**:首先,在项目中引入URLRewriteFilter的jar包,比如在Maven的pom.xml文件中添加相应的依赖项,或者将jar包复制到项目的lib目录下。 ...

    struts 2整合urlwrite 4 demo

    Struts 2是一个非常流行的Java Web应用程序框架,用于构建企业级的应用。它提供了一种组织MVC(模型-视图-控制器)架构的方式...仔细研究这些文件,你将能更好地掌握如何在实际项目中实现Struts 2和URLWrite 4的集成。

    精通Struts--Java流行服务器、框架及工具整合应用

    ### 精通Struts——Java流行服务器、框架及工具整合应用 #### 3.1 标签库的组成 Struts 框架的核心优势之一在于它的标签库,这是一套专门设计用于简化Web开发过程的工具集合。通过使用这些标签,开发者能够有效地...

    JavaWeb框架Wint.zip

    wint 是一个基于mvc易用的 java web框架,抛开了struts2 繁琐的配置,结合django,RoR,webx,play等框架的特点,使用约定优于配置的原则,使开发者能快速的搭建web和进行快速开发。 wint提供的主要功能有: 模板与...

Global site tag (gtag.js) - Google Analytics