HttpSession Null с BlobstoreService - PullRequest
       20

HttpSession Null с BlobstoreService

0 голосов
/ 15 марта 2012

В моем приложении Google App Engine зарегистрированный пользователь может загрузить свою фотографию со своими другими данными. Я использовал HttpSession для управления журналом. Когда зарегистрированный пользователь заполняет форму и выбирает фотографию для загрузки и нажимает кнопку Сохранить, выбрасывается NullPointerException, поскольку Session равно нулю. (Данные хранятся в базе данных. Но NullPointerException генерируется при попытке пересылки на страницу успеха после сохранения данных в базе данных).

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

Я поместил System.out.println(hs.getAttribute("logUserName") + ""); поверх servlet, который запускается после нажатия кнопки Сохранить. вывод null.

как мне этого избежать?

ОБНОВЛЕНО

После того, как зарегистрированный пользователь заполнит форму, перейдет по пути (/users/adddetails), как я упоминал в моем вопросе, и добавит данные в базу данных. это работает правильно. после добавления данных перенаправляет на другой сервлет, используя метод resp.sendRedirect(). на этом сервлете я проверяю, является ли Session пустым, как показано ниже.

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 - это параметр, который я использую от клиента к серверу для передачи имени пользователя.

Ответы [ 2 ]

1 голос
/ 17 марта 2012

Пожалуйста, попробуйте следующий код.

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);
0 голосов
/ 15 марта 2012
...