Java 获取JSP servlet会话时,返回空值
我将jsp/servlet用于一个基本的ajax应用程序。我正在使用servlet设置会话,但返回了null。我的代码片段如下所示: Servlet:Java 获取JSP servlet会话时,返回空值,java,jsp,session,servlets,Java,Jsp,Session,Servlets,我将jsp/servlet用于一个基本的ajax应用程序。我正在使用servlet设置会话,但返回了null。我的代码片段如下所示: Servlet: protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String name=null; String sessionStrSe
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");
}
}
ajax工作得很好,只是会话检索似乎是一个问题。在第一个if()中设置数据后,我就可以提取数据。但当我做另一个post请求时,它返回为null。我需要另一个HttpSession吗?非常感谢任何帮助,我是一个PHP开发人员,不是JSP,所以对我来说非常新 您真的需要单独的ifs吗
getSession(true)
返回当前会话,如果没有当前会话,则创建新会话
请参见第二个
if
块中的文档,它与第一个if
块是互斥的,您需要调用request.getSession(false)
,以获取由先前帖子填充的会话。将会话视为一个可以跨请求共享的全局区域。哈哈!我想这一定是我没有尝试过的.getsession方法的唯一组合!如果有效,干杯将尝试将您发布为答案@getSession(true)还使用现有会话,如果exists@Lukasz-同意。会话的检索可以在if块之前移动。可能是正确的。我没有意识到getSession()是这样工作的!