1.Session 이란?

    세션은 특정 웹 브라우저 사용자와 웹 서버와 HTTP 연결들을 하나로 이어준다.(웹 서버쪽의

   웹 컨테이너에 상태를 유지하기 위한 정보를 저장한다.)


   세션은 javax.servlete.http 패키지의 HttpSession 인터페이스를 통해서 사용할 수 있으며,  

   웹 클라이언트와 웹 서버의 연결이고 서버측에 클라이언트 정보를 저장하는 임시 공간이다.

   대부분의 웹 사이트는 회원가입후 로그인을 하고 난 후 컨테츠를 이용하게 할 수 있으며 쇼핑몰

   에서는 장바구니 기능이 있다. 이와 같은 기능을 세션을 통해서 처리할 수 있다.


   서버는 각각의 클라이언트로부터 발생한 요청에 대해서 특정한 ID를 부여한다. 이후에 이 ID를

   클라이언트에서 발생한 요청들과 비교해서 같은 ID인지를 구별하여, 이 ID라는 식별자에 특별한

   값을 넣을 수도 잇다. 즉, ID를 다루는 것이 세션이라고 할 수 있다.


2. Session 속성


    ▷ javax.servelt.http.HttpSession  클래스 메소드

        리턴형               메소드                                설명
       --------------------------------------------------------------------------------
        Object         getAttribute(String name)        세션에 설정된 name에 해당하는 값을 Object
                                                        타입으로 반환한다. 없으면 null 반환

         void            setAttribute(String name,       세션에 name이란 이름으로 객체를 설정한다.
                                     Object value)

        Enumeration   getAttributes()                    세션에 설정된 객체들의 이름을 반환한다.

          Long           getCreationTime()               세션이 생성된 시각을 반환한다.
                                                         1970.1.1기준으로 현재 세션이 생성된 시간까지

          String          getId()                      세션의 식별자(고유 ID)를 반환한다.

          Long           getLastAccessedTime()      마지막으로 세션을 사용한 시각을 반환한다.

          int               getMaxInactiveInterval()      세션을 유지하는 최대시간(초)을 반환한다.

         void    setMaxInactiveInterval(int interval) 세션을 유지하는 최대시간을 설정한다.

        boolean          isNew()                           세션이 새로운 것인지 여부를 반환.[true/false]

         void          removeAttribute(String name)   name으로 지정한 속성 값을 삭제한다.

         void               invalidate()                       세션을 제거한다.



3. Session 설정 및 사용


   ▷ session에 값 저장

      * session.setAttribute(String name, Objet value);

       -->session.setAttribute("id", "id_value");


   ▷ session 값 얻기

       * Object getAttribute(String name);

       --> String id = (String)session.getAttribute("id");  

           // id라는 세션 변수가 가지고 있는 값 얻는다.


    ▷ session 값 삭제

       * session.removeAttribute("id"); // id라는 세션 변수가 가지고 있는 값 삭제

     ▷ session 완전 삭제

        * session.invalidate();

      

4. 쿠키와 세션의 차이점

    * 쿠키와 세션은 둘다 지속적으로 정보를 저장한다.

     * 저장소가 다르다.

       쿠키 : 클라이언트 브라우저에 저장, 보안에 취약하지만 서버 부담이 적다.

       세션 : JSP 컨테이너에 저장, 세션은 세션 ID만 클라이언트에 보내고 그 외의 모든

               정보를 우베 컨테이너 안에 저장한다. 보안에 강점이 있지만 서버에 부담을 준다.

     * 저장할 수 있는 값에 차이가 있다.

       쿠키 : 문자열만 가능하다.

       세션 : 자바의 모든 객체를 저장할 수 있다.

      

+ Recent posts