HttpSession не работает - PullRequest
       23

HttpSession не работает

0 голосов
/ 26 декабря 2011

В моем сервлете есть следующий сегмент кода. Здесь по какой-то причине я не могу удерживать сеанс для одного и того же пользователя после создания одного сеанса.

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub

response.setContentType("text/html");
PrintWriter writer =  response.getWriter();
String userName = request.getParameter("userName");
HttpSession session = request.getSession();

if (userName != "" && userName != null) {
    session.setAttribute("savedUserName", userName);
}

writer.println("Request parameter has user name as : " + userName + "<br />");
writer.println("Request session has user name as : " + (String) session.getAttribute("savedUserName") + "<br />");
    }

1 Ответ

1 голос
/ 26 декабря 2011

На каком основании вы подразумеваете, что сеанс не работает?Единственный сценарий, который может не сработать, - это когда вы не указали userName, в этом случае это будет null, и сеанс никогда не будет создан, так как ваш код ниже проверяет условие в неправильном порядке и проверка на равенствоследует использовать equals (), а не! =

if (userName != "" && userName != null) {
    session.setAttribute("savedUserName", userName);
}

Его следует изменить на

if (userName != null && !userName.equals("")) {
    session.setAttribute("savedUserName", userName);
}
...