728x90
Session
클라이언트가 웹 브라우저를 통해 서버에 접속한 후, 용무를 처리하고 웹 브라우저를 닫아 서버와의 접속을 종료하는 하나의 단위
세션은 클라이언트가 서버에 접속해 있는 동안 상태를 유지하기 위함
유지 시간 설정
xml
/WEB-INF/web.xml
<web-app>
...
<session-config>
<session-timeout>20</session-timeout>
</session-config>
</web-app>
유지 시간을 분 단위로 설정한다.
JSP 파일 내부
session 내장 객체가 제공하는 setMaxInactiveInterval()
<%
session.setMaxInactiveInterval(1000);
%>
초 단위로 설정한다.
JSESSIONID
톰캣 컨테이너에서 새로운 웹 브라우저가 접속하면 세션을 유지하기 위해 자동으로 생성한다.
요청을 보낸 웹 브라우저가 현재 연결되어 있는지(세션이 살아 있는지) 확인하는 데 이용된다.
서버는 JSESSIONID를 통해 세션 영역에 상태를 유지해야 하는 값을 저장한다.
- 웹 브라우저가 처음 접속하면 톰캣 서버는 세션을 새로 생성한다. 그리고 응답할 때, 세션 아이디를 값으로 갖는 JSESSIONID 쿠키를 응답 헤더에 담아 웹 브라우저에 응답을 보낸다.
- 웹 브라우저는 재요청 시마다 JSESSIONID를 요청 헤더에 추가하여 보낸다.
- 서버는 요청 헤더에 포함된 JSESSIONID로 해당 요청이 기존 세션에서 이어진 것임을 알 수 있다.
sendRedirect() VS forward()
sendRedirect(url)
- 서버가 요청에 대한 응답을 한 후, 클라이언트는 url로 이동
- 클라이언트에서 실행
- 클라이언트와 서버가 통신을 종료한다.
- 이동경로가 url로 변화한다.
- 데이터 전달 X
RequestDispatcher(url).forward(request, response)
- 요청을 다른 자원(url)로 전달한다.
- 페이지 이동 + 제어 흐름
- 이동경로가 url로 변화 X
- 서버가 실행
- 데이터 전달 O
- request, response 객체를 다른 자원(url)에 전달한다.
- 다른 자원의 수행 결과를 클라이언트의 요청에 대한 응답으로 사용
728x90
'TIL' 카테고리의 다른 글
[AWS] AWS 가입, EC2 인스턴스 생성 (0) | 2023.11.23 |
---|---|
[TIL] EL, JSTL Core, Format 태그 (0) | 2023.11.16 |
[TIL] 추상 클래스와 인터페이스 차이 (0) | 2023.11.13 |
[TIL] [DB] 일대다 관계, 제약조건 (0) | 2023.10.31 |
[TIL] IntelliJ - JSP 프로젝트 설정하기 / Mac 에러 해결 (1) | 2023.10.30 |