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
),然后重定向到第二个servletHomeServlet
,用于显示保存在会话中的数据
我的问题是,第一次在会话中保存数据时,无法在第二次会话中检索数据(这会使我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("/");
}
}