我正在使用jsp/servlets进行基本的ajax应用程序。我正在设置一个servlet的会话,但我得到一个空返回。我的代码片段如下:获取JSP servlet会话,返回空值
的Servlet:
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String name=null;
String sessionStrSet = null;
if(request.getParameter("session").toString().equals("setSession")){
name = request.getParameter("user");
HttpSession session = request.getSession(true);
session.setAttribute("sessionPw", name);
sessionStrSet = session.getAttribute("sessionPw").toString();
response.setContentType("text/plain");
response.setCharacterEncoding("UTF-8");
response.getWriter().write(sessionStrSet + " " + "data write");
}
if(request.getParameter("session").toString().equals("getSession")){
//how do i retrieve the session data here?
response.setContentType("text/plain");
response.setCharacterEncoding("UTF-8");
response.getWriter().write(sessionStrSet + "get session");
}
}
阿贾克斯工作正常,这只是这似乎是一个问题的会议上检索。一旦在第一个if()中设置了数据,我就可以取出数据。但是当我做另一个帖子请求时,它会返回为空。我需要另一个HttpSession吗?非常感谢任何帮助,我是一个PHP开发人员而不是JSP,所以对我来说这是非常新的!
在第二'if'块,这是第一个'if'块相互排斥的,您需要调用'request.getSession(假)'来获得,这是该会议由早期的POST填充。将会话视为可跨请求共享的全局区域。 – jalynn2 2013-03-19 16:19:38
Ahaaaa!我认为必须是.getsession方法的唯一组合,我没有尝试!欢呼声将尝试发布你作为答案,如果工作! – ChrisSherwood 2013-03-19 16:28:53
@ jalynn2 request.getSession(true)也使用现有会话(如果存在的话) – 2013-03-19 16:29:43