ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [ Servlet / JSP ] 4. 쿠키와 세션
    스타터스 백엔드 3기 2023. 1. 5. 16:07

    하루입니다.

     


     

    9장. 쿠키와 세션


    http 프로토콜 요청(login?id=spring)시 연결 먼저 한다

    http 프로토콜 응답시 연결 해제한다.

    - 헐 서버에 더이상 클라이언트의 정보가 남아있지 않아요 그럼 마이페이지 갈 때 또 로그인 해야 하나요 왜냐면 지금은 상태정보가 저장되지 않았거즌요 -
    - 그러면 상태정보를 저장하면 되겠네요 쿠키나 세션 구현을 추가해 보아용 -
    - 헉 근데 왜 서버에 클라이언트 정보 저장을 안 하나요 -
    - 왜냐면 서버는 하나고 클라이언트는 짱 많거든요 그래서 기본으로 정보는 삭제하지만 쿠키나 세션을 사용하면 저장해 줍니다 -

    http 프로토콜 요청(mypage?id=spring)시 연결 먼저 한다
    http 프로토콜 응답시 연결 해제한다.

     

     

    쿠키 세션
    상태정보가 유지된다. 상태정보 유지된다.
    클라이언트측에 저장된다. 서버측에 저장된다.
    브라우저, OS 종속적이다. 서버 종료시 없어진다.
    텍스트 파일 형태 / 서버 종료시 / 브라우저 종료시 / 종료 후 서버 종료시 없어진다.
    텍스트만 저장된다. 자바 객체 저장 불가하다. 자바 객체에 저장 가능하다.
    확인 가능하다. 그래서 암호화 해야 함. HttpSession 사용한다.
    COOKIE 클래스 사용한다.  

     

     

    HttpSession

     

     

    • 톰캣 자체의 세션 타임아웃 시간 : 30분

     

     

    서블릿 내부값 지속

     

    쿠키!

    • forward시 2개 서블릿 값 공유
    • 다른 서블릿과 값 공유하지 않는다. 
    • request.setAttribute() / getAttribute()

     

     

    세션!

    • 동일 브라우저(동일 클라이언트) 실행시 값 공유
    • 다른 서블릿과 값 공유한다.
    • request.setAttribute() / getAttribute()

     

    HttpSession session =  request.getSession();
    session.setAttribute("sessionid", id); 

    - 세션 get하고 sessionid라는 이름으로 id 저장하기!
    - 여기서 id는 파라미터로 받은 값으로, session이 만료되기 전까지 모든 서블릿에서 공유된다!

    HttpSession session =  request.getSession();
    세션 얻기!

    session.removeAttribute("변수 이름"); 
    세션 속성 삭제!

    session.setMaxInactiveInterval(60*5);
    세션 최대 유효시간 변경!

     

     


    servlettest의 session 패키지 참고!

    BankServlet BoardWritingServlet LoginSessionServlet LogoutServlet

     

Designed by Tistory.