java - 在 Spring MVC 中,使用 'redirect:process' 或 'redirect:/process' 在导致丢失 session 或 session 值方面是否有所不同?

标签 java spring spring-mvc session redirect

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

  1. 正在执行“redirect:/process任何不同于 'redirect:process' 用于重定向到内部 Controller ?

    添加的斜杠是否有任何区别,例如影响 session 处理?

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

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

    关于如何对丢失的 session 值进行故障排除的任何线索?

注意:我正在使用方法 httpRequest.getSession().setAttributehttpSession.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/

相关文章:

java - Mockito:在 void 方法上填充不同的值

java - 如何在本地测试 AWS SNS?

java - 清除 Swing GUI 中的 ImageIcon 和相关操作

java - 如何使用 Spring HATEOAS 添加查询字符串参数?

java - Spring Data Rest 是否支持 Spring Data 的表达式运算符,例如。之间,大于?

spring-mvc - 错误页面在tomcat中正常工作,但在weblogic中工作不正常

java - 通过二进制数组进行数组选择

java - hibernate 系统异常 : could not deserialize

java - 如何使用 Spring MVC 将列表中的项目绑定(bind)到表单 modelAttribute

java - 如何将复杂对象从 Controller 传递到 View (jsp)