HttpSession Null with BlobstoreService



在我的Google App Engine应用程序中,登录的用户可以上传他们的图片和其他详细信息。我已经使用HttpSession来管理日志记录。当登录用户填写表单并选择要上传的照片并单击"保存"按钮时,由于Session为空,将抛出NullPointerException。(数据存储在数据库中。但在数据库中存储数据后,尝试转发到成功页面时会引发NullPointerException)。

Form action = `blobstoreService.createUploadUrl("/users/adddetails")`

我已经把System.out.println(hs.getAttribute("logUserName") + "");放在servlet的顶部,这是点击保存按钮后的触发器。输出为CCD_ 7。

我该如何避免这种情况?

更新

登录的用户填写完表单后,转到我在问题中提到的(/users/adddetails)路径,并将数据添加到数据库中。它工作正常。添加数据后,使用resp.sendRedirect()方法重定向到另一个servlet。在这个servlet上,我检查Session是否为null,如下所示。

try 
{ 
  HttpSession hs = req.getSession();     
  if(!hs.getAttribute("logUserName").equals(null)) {
      RequestDispatcher d = req .getRequestDispatcher("/WEB-INF/userhome/add_data.jsp");
      d.forward(req, resp); }
  else { 
      RequestDispatcher d = req .getRequestDispatcher("user_login.jsp");
      d.forward(req, resp);
  }
} catch (NullPointerException ex) {
    // NullPointerException thrown from here
    RequestDispatcher d = req.getRequestDispatcher("user_login.jsp");
    d.forward(req, resp);
}catch (Exception ex) {
    RequestDispatcher d = req.getRequestDispatcher("/msg/exception.jsp");
    d.forward(req, resp);
}

NullPointerException是从上述代码中的catch块抛出的。logUserName是我从客户端到服务器用来传递用户名的参数。

请尝试以下代码。

HttpSession hs = req.getSession(false);
if(hs == null)System.out.println("session is null");
else {
  String name = hs.getAttribute("logUserName");
  if(name == null)System.out.println("name is null");
  else System.out.println(name);

您启用会话了吗
http://code.google.com/appengine/docs/java/config/appconfig.html#Enabling%5FSessions

相关内容

  • 没有找到相关文章

最新更新