我有一个在tomcat服务器上运行的应用程序,它被重定向到另一个网站进行密码验证(并存储一些数据),然后重定向回我的tomcat服务器
EX
1到A
A到B
B到2
其中1和2是我申请的页面
A和B是其他应用程序的页面
我正在使用
在我的第1页上设置会话变量HttpSession session = request.getSession(true);
session.setAttribute("loginUser", "loginUser");
并使用
在第2页上使用它String loginUser= session.getAttribute("loginUser");
但在2
上获得空指针异常答案 0 :(得分:1)
如果您在相同的上下文(应用程序)中进行重定向,请使用RequestDispatcher
执行forward
(传递request
和response
)。这样,您就可以通过会话。
否则,我的建议是不将loginUser
存储在会话上,而是将用户id变量作为一些智能(和混乱)字符串传递给另一个应用程序,编写一个机制来检索用户登录的会话状态和从那里继续。这称为单点登录。
答案 1 :(得分:0)
可能会因为
而发生'会话是暂时的,当其中一个发生时,其生命周期结束:
A user leaves your site and the user's browser does not accept cookies.
A user quits the browser.
The session is timed out due to inactivity.
The session is completed and invalidated by the servlet.
The user logs out and is invalidated by the servlet.'
参考http://docs.oracle.com/cd/E15523_01/web.1111/e13712/sessions.htm