我正在使用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