-
[ 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
'스타터스 백엔드 3기' 카테고리의 다른 글
유데미 스타터스 취업 부트캠프 3기 - 백엔드 7주차 (0) 2023.01.06 [ Servlet / JSP ] 5. 필터 (0) 2023.01.05 [ Servlet / JSP ] 4. 커넥션풀, forward (0) 2023.01.05 [ Servlet / JSP ] 2. 기초 (0) 2023.01.04 [ Servlet / JSP ] 1. 기초 (0) 2023.01.03