问题描述:
1.首先通过login.jsp登陆系统,用户验证通过后,讲用户信息设置到session中,具体代码如下:
[code="java"]
User user = UserManager.getInstance().login(userId, password);
session.setAttribute("user_info", user);
//session.setMaxInactiveInterval(60*60);
response.sendRedirect(request.getContextPath() + "/main.jsp");
[/code]
2.上面定向到main.jsp页面后,user_info数据存在。
3.然后我在此页面中写入如下请求servlet代码后,
[code="js"]
function addFlowCard() {
window.self.location = "<%=basePath%>servlet/FlowCardServlet?command=${showAdd}";
}
[/code]
4.在servlet里面取得的值却为null,,代码如下
[code="java"]
@Override
protected final void service(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
command = request.getParameter("command");
user = (User) request.getSession().getAttribute("user_info");
super.service(request, response);
}
[/code]
5.上面request.getSession().getAttribute("user_info")取得的值为null。
6.请各位看看哪里有问题??
response.sendRedirect(request.getContextPath() + "/main.jsp"); ->
response.sendRedirect(response.encodeRedirectURL(request.getContextPath() + "/main.jsp"));
你的应该是jessionid丢失,所以下次会新建一个session故为null,你可以看下main.jsp是没有cookie名称jessionid的
我建议先从第三步的请求看起吧,一般浏览器都带开发者工具的,检查一下请求是否把sessionId带过去了