【发布时间】:2015-01-09 21:32:29
【问题描述】:
我正在尝试配置 Spring MVC,以便每个浏览器会话或选项卡都有自己的会话。这个可以吗?
来自我的控制器的 sn-p:
@Controller
@Scope("session")
public class TestController {
@Autowired
private AuthenticationService as;
private User user = new User();
@RequestMapping(value="/testIntegration")
public String getIntegration(Model model) {
logger.debug("user: " + user.toString());
if(!as.authenticateUser(user, sessionTimeout)) {
.
.
.
User 类是 POJO。
第一次访问“testIntegration”时,所有值都为空。这是意料之中的。 'as.authenticateUser(user, sessionTimeout))' 设置正确的值。在下一个访问值上设置用户。这是意料中的事。
如果打开另一个浏览器窗口并尝试访问“testIntegration”,则会从会话中检索相同的填充用户对象。这不是预期的,也不是所希望的。一个新的浏览器应该获得一个新的会话并且需要一个新的用户对象被创建和填充。
我看到一个较旧的线程表明可以通过在应用程序的每个表单上放置对话 ID 来实现对话指示器。我希望通过 Spring 注释或配置提供更好/不同的方法。
【问题讨论】:
标签: java spring session spring-mvc