`
cuishen
  • 浏览: 297253 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

struts1 redirect issue

    博客分类:
  • j2ee
阅读更多
近日突然发现struts1 的redirect有很大的限制,它只能redirect到APP domain下的某个URL,超出了domain的resource是无法访问的(如web server上的html)!

例如:
可以redirect 到以下URL:
http://cuishen.iteye.com/APP/test.jsp

但是无法redirect 到超出APP的URL:
http://cuishen.iteye.com/test.html


具体见下面代码:
@see org.apache.struts.action.RequestProcessor

/* 447*/        if(forward.getRedirect())
                {
                    //斜杠开头的URL会自动加上APP名的
/* 449*/            if(uri.startsWith("/"))
/* 450*/                uri = request.getContextPath() + uri;

/* 452*/            response.sendRedirect(response.encodeRedirectURL(uri));
                } else
                {
/* 455*/            doForward(uri, request, response);
                }


而且注意,如果不指定具体的action type,redirect是不起作用的!
例如下面的action例子,redirect不工作,因为没有指定具体的type:
<action path="/user/ErrorPage" forward="/WEB-INF/jsp/ServerError.jsp" redirect="true"/>


要让redirect工作,应该像下面这样配置:
        <action path="/user/ErrorPage" type="xxx.xxx.XxxAction">
        	<forward name="success" path="/ServerError.jsp" redirect="true"/>
        </action>


具体参见RequestProcessor的代码。
0
0
分享到:
评论

相关推荐

    struts1和struts2的区别

    ### Struts1与Struts2的主要区别 #### 概述 Apache Struts 是一个用于构建企业级Java Web应用的开源框架。它分为两个版本:Struts1 和 Struts2。虽然两者都基于模型-视图-控制器(MVC)设计模式,但它们之间存在...

    struts2.0整合Struts 1

    Struts 2整合Struts 1,允许开发者利用Struts 1已有的投资,同时享受Struts 2带来的优势,如增强的类型安全和更强大的拦截器机制。 在《Struts 2权威指南--基于WebWork核心的MVC开发》这本书中,作者李纲深入浅出地...

    Struts2与Struts1区别

    Struts2 和 Struts1 是两个著名的 Java Web 开发框架,它们都出自 Apache Software Foundation,但有着显著的区别。Struts1 是早期的 MVC 框架,而 Struts2 则是在 WebWork 框架的基础上发展起来的,它吸收了 Struts...

    Struts1和Struts2区别

    Struts1和Struts2是两个非常著名的Java Web框架,它们都由Apache软件基金会开发,用于构建MVC(Model-View-Controller)架构的应用程序。虽然它们在目标上相似,但在设计模式、功能特性和使用体验上存在显著差异。...

    struts1完整demo

    Struts1是一个经典的Java Web开发框架,由Apache软件基金会维护,它主要负责处理MVC(Model-View-Controller)架构中的Controller部分。Struts1在2000年代初期非常流行,为开发者提供了构建企业级应用程序的强大工具...

    Struts1.x常用的开发包,需要学习struts1.x朋友可以下载

    10. **预定义的结果类型**:Struts1.x定义了一些预设的Action结果类型,如转发(forward)、重定向(redirect)、流(stream)等,方便开发者快速处理Action的返回结果。 11. **生命周期管理**:Struts1.x对...

    精通struts1.x技术,struts1完整详细教程

    Struts1.x 是一款经典的Java Web开发框架,由Apache软件基金会发起的Jakarta Struts项目创建,旨在实现MVC(Model-View-Controller)设计模式,以提高开发效率和代码的可维护性。该框架最初由Craig McClanahan在2000...

    struts1&struts2

    Struts1和Struts2是两个著名的MVC框架,它们都是Apache软件基金会的Apache Struts项目的一部分,用于构建基于Java的Web应用程序。然而,两者在设计和实现上有显著的差异。 1. **架构模式的区别** - **Struts1.x** ...

    Struts1实验项目

    Struts1是一个经典的Java Web开发框架,由Apache软件基金会维护,它主要负责处理MVC(Model-View-Controller)架构中的控制器部分。本实验项目旨在帮助开发者深入理解Struts1的核心概念和工作流程,以便更好地在实际...

    struts1 练习代码

    9. **预定义结果类型(Forward和Redirect)**:Struts1提供了两种结果类型——Forward和Redirect。Forward是服务器端跳转,而Redirect是客户端跳转,两者在处理POST请求和防止重复提交时有不同的应用场景。 10. **...

    struts1和struts2的jar包

    Struts1和Struts2是两个不同的版本,它们各自拥有独特的特性和功能,但在Java Web开发领域都扮演了重要角色。 **Struts1** Struts1是最早的版本,它在2001年发布,是基于ApacheJakarta项目的一个框架。Struts1的...

    Struts1和Struts2的区别和对比

    Struts1和Struts2是两个非常著名的Java Web框架,它们在设计模式、可测试性、输入处理和表现层等方面存在显著的区别。 首先,Action类的设计有所不同。在Struts1中,Action类需要继承一个抽象基类,这限制了Action...

    struts1 和 struts2所需jar包

    struts1 和 struts2所需jar包。主要包含以下内容: struts-1.3.10-all.zip struts-1.3.10-apps.zip struts-1.3.10-lib.zip struts-1.3.10-src.zip struts-2.3.4.1-all.zip struts.rar

    struts1和struts2的区别(详细)

    ### Struts1与Struts2的主要区别 #### 一、Action执行机制的不同 - **Struts1**: 在Struts1框架中,Action是基于单例模式的,这意味着所有的请求都会共享同一个Action实例。这就导致了如果在Action中保存实例变量...

    struts1.x和struts2.0电子书

    这个压缩包包含了两个关键版本的Struts框架的电子书,即Struts1.x和Struts2.0的相关资料。 **Struts1.x** Struts1.x是最初的Struts版本,它极大地简化了Java Servlet和JSP的应用开发。Struts1的核心概念包括Action...

    struts1漏洞总结及整改方案

    因为最近攻防演练,对公司的资产进行梳理,发现部分应用还使用的struts1框架,所以赶快收集整理了相关的漏洞以及相关的整改方案。提供给大家。

    struts2和struts1 API及使用指南 chm

    Struts2是Struts1的升级版,它在Struts1的基础上引入了许多改进和新特性,提高了开发效率和应用性能。 Struts1是一个经典的MVC框架,它的核心组件包括Action、Form Bean、Action Mapping和Tiles等。Action是业务...

    Struts1_Struts2

    - **Result类型**:不同于Struts1的单一Forward结果,Struts2支持多种Result类型,如Redirect、Stream等,使结果处理更加灵活。 - **富客户端支持**:Struts2可以很好地处理AJAX请求,提供了JSON结果类型,方便与...

    struts1教程.doc

    Struts 1.x 是一款基于模型-视图-控制器(MVC)设计模式的Java Web框架,它在早期的Web应用程序开发中占据了重要的地位。本教程主要针对初学者,旨在引导学习者掌握Struts 1.x的基础知识和使用方法。 在开始学习...

Global site tag (gtag.js) - Google Analytics