在Spring MVC中,使用'redirect:process'或'redirect:/ process'会导致会话或会话值丢失吗?

abd*_*nno 6 java session redirect spring spring-mvc

我在Spring MVC 3.2应用程序中遇到了奇怪的行为,我注意到只有当重定向以另一种方式完成时才会发生这种情况.所以我的问题是:

  1. 正在做' 重定向:/进程 ' 与' redirect:process '有什么不同,用于重定向到内部控制器?

    添加的斜杠是否会产生任何影响,例如影响会话处理?

  2. 会话丢失(或会话属性丢失)的原因是什么?

    我通过我的应用程序阅读了一个值; 即使你在很多情况下重定向,当我在Controller URI之前添加一个斜杠时,在生产时我有时会失去这个值.

    有关如何解决丢失的会话值的任何线索?

注意:我正在使用方法httpRequest.getSession().setAttributehttpSession.getAttribute访问会话.

Ser*_*sta 0

请注意:/是斜杠,反斜杠是\

除了由于其他错误而导致的外部原因外,只要涉及会话,就不应更改任何内容redirect:processredirect:/process

但是这两个重定向应该做同样的事情,除非您位于根应用程序页面。假设您的应用程序在 server.domain 上的 HTTP 端口 80 上运行,servlet 上下文为 myapp,并且您正在处理对 的请求http://server.domain/myapp/local/partredirect:process将要求浏览器请求http://server.domain/myapp/local/part/process,何时redirect:/process将要求浏览器请求http://server.domain/myapp/process

接下来发生的情况取决于您的控制器映射。