【发布时间】:2021-04-05 06:55:32
【问题描述】:
我搜索了很多,没有找到合适的答案。
我有 2 个后置控制器方法
@PostMapping("/saveStudentInfo")
public String saveStudentInfo(@RequestBody Students stud, HttpServletRequest request) {
students.setId(stud.getId());
students.setStudentName(stud.getStudentName());
students.setSchoolInfo(stud.getSchoolInfo());
System.out.println("Hello A= "+request.getSession(false).getId());
return "Saved Sucessfully";
}
@PostMapping("/saveSubjectInfo")
public String saveSubjectInfo(@RequestBody Subjects sub, HttpServletRequest request) {
subject.setSubjectName(sub.getSubjectName());
subject.setSubjectTeacher(sub.getSubjectTeacher());
System.out.println("Hello B= "+request.getSession(false).getId());
return "Saved Sucessfully Subject";
}
现在来自邮递员的这些调用可以成功运行,因为生成了相同的 JSessionId
==>问题
2 日通过浏览器从 react 应用调用时
saveSubjectInfo 请求我得到不同的 JSessionId,就像在 New-Session 中一样
我已将 Students 和 Subjects 都注释为 @SessionScoped。
==>要求
需要维护会话,并且 JSessionId 需要相同。
【问题讨论】:
-
可以在此处找到相同的讨论。 stackoverflow.com/questions/2138245/…
-
这是另一个类似案例的链接,但没有接受答案:stackoverflow.com/questions/62802136/…
-
@RoarS。是的,这个链接很有帮助,谢谢,但现在还有另一个问题。现在我的 JSESSIONID,永远不会更新??
-
@John:JSESSIONID 应该在请求之间保持不变以保持会话状态,还是我在这里解释错误?
-
@John:我相信您的架构存在一些问题。您能否以仅由客户维护状态的方式重新设计您的解决方案?除非您正在运行,否则我看不到如何在浏览器中的选项卡之间保持不同的会话。 Chrome 处于匿名模式。 BR
标签: reactjs spring-boot session http-headers jsessionid