我在我的 Spring MVC 3.2 应用程序中遇到了奇怪的行为,我注意到只有在以替代方式完成重定向时才会发生这种情况;所以我的问题是:
正在执行“redirect:/process”任何不同于 'redirect:process' 用于重定向到内部 Controller ?
添加的斜杠是否有任何区别,例如影响 session 处理?
丢失 session (或丢失 session 属性)的原因是什么?
我通过我的应用程序读取了一个值;即使我在很多情况下进行重定向,当我在 Controller URI 之前添加一个斜杠时,在生产中我有时会丢失这个值。
关于如何对丢失的 session 值进行故障排除的任何线索?
注意:我正在使用方法 httpRequest.getSession().setAttribute
和 httpSession.getAttribute
来访问 session 。
最佳答案
使用“/”声明从根开始的路径,这是您的 servlet 上下文路径。没有'/',通常它会转到相对于当前子路径的路径。例如,如果您位于“/go/url”,则您指向的是“/go/url/next”,而不是“/next”。
我没有检查 spring 源代码,但这通常是它在网络浏览器中的工作方式。
编辑:
对不起,在 Spring MVC 中,您必须始终提供完整路径,而不仅仅是相对路径。所以你应该做“redirect:/full/path”。
关于java - 在 Spring MVC 中,使用 'redirect:process' 或 'redirect:/process' 在导致丢失 session 或 session 值方面是否有所不同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33235876/