Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java EE (J2EE) и Spring > HttpSession


Автор: Sherst 21.6.2006, 01:21
Привет всем!
Собственно вопрос по сессиям.
Как я понял строка HttpSession session = request.getSession(false) возвращает текущий сеанс
если он был ранее создан иначе null. Допустим я создал сессию, установил время жизни, закрываю, открываю браузер - эта же строка все равно возвращает null.

Вот код:

Код

import java.io.*;
import java.util.*;
import javax.servlet.*;
import javax.servlet.http.*;

public class EnterSite extends HttpServlet {
    public void init() throws ServletException {
    }
    public void destroy() {
    }    
    public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException{                
        String getSes;

        response.setContentType("text/html");
        PrintWriter out = response.getWriter();        
        //
        HttpSession session = request.getSession(false);
        if (session == null) {
            session = request.getSession(true);
            session.setAttribute("ses1",":-D");
            session.setMaxInactiveInterval(1000);
            out.println("all done!");
        }    
        else {//Сеанс уже существует -  это условие никогда не выполняется ??? 
            getSes = (String)session.getAttribute("ses1");
            out.println("doGet :" + getSes);
        }    
    }
    public String getServletInfo() {
        return "Ля-ля-ля";
    }
}
 

Автор: FatherFrost 21.6.2006, 08:12
Sherst, попробуй строку №17 заменить на HttpSession session = request.getSession();. 

Автор: Sherst 21.6.2006, 11:26
Как мне тогда проверить жива ли сессия заново не создавая ее. Ведь строка HttpSession session = request.getSession() вернет текущий сеанс, если же он мертв то создаст новый. 

Автор: Tirael 21.6.2006, 11:52
А у тебя в броузере куки включены ? Если нет, то сессия может и не запоминаться.

У меня как-то была диаметрально противоположная проблема  smile . Сессия создавалась даже тогда, когда не был вызван  метод request.getSession(true); 
И вот почему это происходило: http://forum.vingrad.ru/index.php?showtopic=93392&view=findpost&p=712510 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)