刚开始学习urlrewrite filter,碰到一些问题,我希望在工程中不在浏览器中显示出action?XX=XX这样的url,一律都改成xxx/xxx这样的形式,在顺的时候算成功了,把/工程名/XXX映射成了login.action?aaa=XXX这样的形式,可是不能用forward的形式只能用redirect,改成forward以后明明/工程名/login.action有的,结果会报404找不到,如果改成/工程名/XXX.jsp却可以被访问到,因为我使用了struts2,心里在想是不是直接forward过去了而login.action没有被拦截到所以会说找不到,可是看网上很多例子里面也有XXX.do的这样形式,是不是在web.xml中过滤器的顺序有什么讲究呢?一直没有弄清在from和to里的默认路径,在from里如果直接用/就是在工程下,不用再加工程名了,可是在to里,如果用redirect就是要加上/工程名,而用forward却不用,否则会显示出两个工程名来,现在把配置文件贴一下:
<rule>
<from>^/(\w+)$</from>
<to >/Login.action?username=$1</to>
</rule>
这样是会报找不到的,如果将to改写成这样
<to type="redirect">/工程名/Login.action?username=$1</to>
这样就是可以访问的,红色的是改动的地方,如果我要使用forward有办法吗?
解决办法:
在web.xml中配置struts2和urlrewrite时,加上
<dispatcher>REQUEST</dispatcher>
<dispatcher>FORWARD</dispatcher>
最后代码片段为:
<filter-mapping>
<filter-name>UrlRewriteFilter</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>
分享到:
相关推荐
本框架为struts2+spring3+hibernate4+urlrewrite(伪静态地址) Struts采用通配,web-inf下的urlrewrite.xml为伪静态配置文件,跳转到struts.xml进行对应
`urlRewrite`是Tuckey开源组织提供的一个URL重写过滤器,它能够帮助我们在Struts2应用中实现这个目标。 在这个最简实例中,我们将探讨如何在MyEclipse环境中集成Struts2和urlRewrite,创建一个基本的应用来演示URL...
包括: +----doc +-----jeecms基础概念.txt ...• 采用伪静态结合页面缓存技术,可自定义路径结构,无需urlrewrite • 轻松建设大规模网站,可通过次级域名建立子站群,各子站后台管理权限分离,全站实现单点登录
JEECMS是JavaEE版网站管理系统(Java Enterprise ...· 采用伪静态结合页面缓存技术,可自定义路径结构,无需urlrewrite · 轻松建设大规模网站,可通过次级域名建立子站群,各子站后台管理权限分离,全站实现单点登录
3. **创建urlrewrite.xml**:在你的项目的`WEB-INF`目录下创建`urlrewrite.xml`文件。这个文件将包含所有的URL重写规则。例如,如果你想将`/struts2示例.action?name=张三`重写为`/example/张三`,可以编写如下规则...
### SSH2中的URLRewrite与Struts2生成静态页面 #### URLRewrite的理解与应用 在SSH2(Spring + Struts2 + Hibernate)框架中,URLRewrite是一种强大的工具,可以用于实现URL重写功能,使得网站的URL更加友好、易于...
UrlRewrite是一个强大的URL重写工具,常用于Java Web应用中,尤其是与Struts2框架结合使用时,能够帮助开发者优化URL结构,提高网站的SEO友好性和用户体验。在这个"UrlRewrite例子"中,我们将深入探讨UrlRewrite的...
为了实现URL重写功能,我们需要在`web.xml`中配置URL Rewrite Filter,并在`urlrewrite.xml`中定义重写规则。 **1. `web.xml` 配置:** ```xml <filter-name>UrlRewriteFilter <filter-class>org.tuckey.web....
`URLrewrite`是一个基于Java的开源过滤器,它实现了Apache的mod_rewrite功能,广泛应用于Spring、Struts、JSF等Java Web框架中。它提供了强大的规则配置,使得开发者能够灵活地对URL进行重写和重定向。 在使用`URL...
总结,通过引入`Tuckey URL Rewrite Filter`,并在`urlrewrite.xml`中定义适当的规则,我们可以轻松地将Struts2的`.do`后缀重写为`.html`或其他形式。这不仅使URL更易于理解和记忆,也有助于提升用户体验和SEO效果。...
在实际开发中,`URLRewrite`常用于Spring MVC、Struts等框架的项目,与这些框架配合使用,可以更好地管理应用程序的URL结构。 7. **注意事项**: - 配置文件的放置位置:通常放在WEB-INF目录下,确保不在公开访问...
标题 "urlrewrite的简单搭建" 涉及到的知识点主要集中在使用URL重写工具 `UrlRewriteFilter` 上,这是一个基于Java的开源过滤器,用于处理和重写HTTP请求的URL,通常与Web应用程序(如Spring MVC或Struts)一起使用...
2. **规则定义**:接下来,我们需要创建一个名为`urlrewrite.xml`的配置文件,定义URL重写规则。在这个例子中,可能有如下规则: ```xml ^/old-page\.jsp$ <to>/new-page.html</to> ``` 这个规则会将所有访问`/...
3. **编写urlrewrite.xml**:这个文件是URLRewriteFilter的核心,定义了一系列的规则。例如,可以创建一条规则,将所有以`.action`结尾的请求重写为去掉.action后缀的形式。规则的基本结构包括`<rule>`元素,其中...
- **依赖导入**:接着导入`urlrewrite-2.6.0.jar`至项目的Build Path路径下,并引入Struts框架。 **2. web.xml配置** 接下来,需要在`web.xml`中配置UrlRewriteFilter过滤器,示例如下: ```xml <!-- ...
`urlrewrite`可以很好地与Spring MVC、Struts2等框架集成,用于统一处理URL映射。 总的来说,`urlrewrite`是一个强大的工具,能够帮助开发者灵活地管理和控制应用程序的URL结构,提升用户体验和系统性能。学习和...
3. **配置URLRewrite.xml**:创建一个名为`urlrewrite.xml`的配置文件,放在WEB-INF目录下。在这个文件中,定义重写规则。例如,如果我们希望将`/action?param1=value1¶m2=value2`重写为`/newAction/value1/...
2. **UrlRewrite Filter**: UrlRewrite Filter是一个开源的URL重写过滤器,它可以对HTTP请求的URL进行修改,从而实现伪静态效果。它是基于Tuckey组织开发的,适用于Java Web应用。 3. **配置Web工程**: - 创建...
JEECMS是JavaEE版网站管理系统(Java Enterprise Edition Content...采用伪静态页面技术,可自定义路径结构,无需urlrewrite 轻松建设大规模网站,可通过次级域名建立子站群,各子站后台管理权限分离,全站实现单点登录