【问题标题】:Why use 'redirect=true' in struts 1.* forward?为什么在 struts 1.* forward 中使用'redirect=true'?
【发布时间】:2009-03-05 12:10:38
【问题描述】:

在执行未显示的操作期间创建的ActionMessages 存在一些问题,我发现我的问题是由于我的前锋在 struts-config.xml 中有redirect=true

由于默认行为是redirect=false,我一直在思考使用redirect=true 可以获得哪些好处,但我找不到任何答案。有谁知道redirect=true 应该在什么时候以及为什么在行动前锋中使用?

【问题讨论】:

    标签: struts


    【解决方案1】:

    它可以防止“双重提交问题”

    从不显示响应 POST 的页面

    始终使用 GET 加载页面

    使用 REDIRECT 从 POST 导航到 GET

    更多关于 herehere

    【讨论】:

    • 似乎链接 URL 已更新:herehere
    【解决方案2】:

    重定向向浏览器发送响应,强制浏览器发出新请求。从服务器的角度来看,浏览器只是发出一个新请求(尽管是自动的)。重定向的一些特征:

    • 现有参数和 属性被释放,一个新的 请求由参数组成 您在 URL 中指定。
    • 新网址 在浏览器中可见,用户 可以收藏它。
    • 需要前往 浏览器和返回,所以它可以 慢一点。

    转发发生在服务器上。浏览器不参与其中。前锋的一些特点:

    • 添加新参数或覆盖现有参数。因此无法从请求中删除现有参数。
    • 可以在请求上下文中添加东西,它仍然可用。您可以通过这种方式传递信息。
    • 浏览器中的 URL 没有改变,对于浏览器来说,原始地址保持不变。
    • 您只能转发到同一应用程序中的另一个 URL。

    所以这取决于你想要完成什么。前锋通常说得更快。但是,如果用户应该能够为新位置添加书签,则不是一种选择。

    【讨论】:

      【解决方案3】:

      如果您指定 redirect="true",Struts 使用客户端重定向 [response.sendRedirect()]。 JSP 将被新的浏览器请求调用,并且存储在旧请求中的所有数据都将丢失。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-01-10
        • 2017-11-05
        • 2014-05-17
        • 1970-01-01
        • 1970-01-01
        • 2011-10-31
        • 1970-01-01
        • 2013-01-05
        相关资源
        最近更新 更多