Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/324.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Google应用程序引擎-会话在我重新加载之前不会持续到下一个servlet_Java_Google App Engine_Jsp_Session_Servlets - Fatal编程技术网

Java Google应用程序引擎-会话在我重新加载之前不会持续到下一个servlet

Java Google应用程序引擎-会话在我重新加载之前不会持续到下一个servlet,java,google-app-engine,jsp,session,servlets,Java,Google App Engine,Jsp,Session,Servlets,我有两个servlet:第一个loginServlet使用userService对象通过Gmail对用户进行身份验证,并在会话中保留凭据(username和password),然后重定向到第二个servletHomeServlet,用于显示保存在会话中的数据 我的问题是,第一次在会话中保存数据时,无法在第二次会话中检索数据(这会使我null)。直到我转到firstServlet 第一个Servlet是: 第二个Servlet是: 公共类GuestbookServlet扩展了HttpServl

我有两个
servlet
:第一个
loginServlet
使用
userService
对象通过
Gmail
对用户进行身份验证,并在会话中保留凭据(
username
password
),然后重定向到第二个servlet
HomeServlet
,用于显示保存在
会话中的数据

我的问题是,第一次在
会话中保存数据时,无法在第二次会话中检索数据(这会使我
null
)。直到我转到
firstServlet

第一个Servlet是:

第二个Servlet是:

公共类GuestbookServlet扩展了HttpServlet{
静止的{
ObjectifyService.register(Message.class);
}
公共无效数据集(HttpServletRequest请求、HttpServletResponse响应){
试一试{
List messages=ofy().load().type(Message.class).List();
请求setAttribute(“消息”,消息);
this.getServletContext().getRequestDispatcher(“/WEB-INF/index.jsp”).forward(req,resp);
}捕获(ServletException e){
e、 printStackTrace();
}
}
受保护的void doPost(HttpServletRequest-req,HttpServletResponse-resp)引发ServletException,IOException{
消息消息=新消息(req.getParameter(“名称”)、req.getParameter(“消息”));
ofy().save().entity(message).now();
分别以“/”号填列;
}
}
'/'
是第二个servlet的路径
GuestbookServlet

问题(noob)是
LoginServlet
中的
if语句在第一次登录时从未被访问,因此没有向
会话写入任何内容


如果第二个servlet不存在,我必须将
会话
保存在第二个servlet中。

如果没有看到一些代码,就无法帮助您。
public class LoginServlet extends HttpServlet {

  public void doGet(HttpServletRequest req, HttpServletResponse resp) {
    // initialize user authentification service
    UserService userService = UserServiceFactory.getUserService();

    Boolean isConnected = (userService.getCurrentUser() != null);
    if (isConnected) {
      // save credentials in a session
      HttpSession session = req.getSession();
      session.setAttribute("username", userService.getCurrentUser().getNickname());
      session.setAttribute("email", userService.getCurrentUser().getEmail());
      session.setAttribute("isConnected", isConnected);

      // forward to login view
      resp.sendRedirect("/");
    }
    else
      // redirect to 'gmail' login page
      resp.sendRedirect(userService.createLoginURL("/"));

  }
}
public class GuestbookServlet extends HttpServlet {
  static {
    ObjectifyService.register(Message.class);
  }

  public void doGet(HttpServletRequest req, HttpServletResponse resp) {
    try {
      List<Message> messages = ofy().load().type(Message.class).list();
      req.setAttribute("messages", messages);

      this.getServletContext().getRequestDispatcher("/WEB-INF/index.jsp").forward(req, resp);
    } catch (ServletException e) {
      e.printStackTrace();
    }
  }

  protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws  ServletException, IOException {
    Message message = new Message(req.getParameter("name"), req.getParameter("message"));
    ofy().save().entity(message).now();
    resp.sendRedirect("/");
  }
}