- 요청시 헤더정보에 Session ID 값이 없으면, HttpSession 객체를 생성한다.
- 응답 할 때 응답헤더에 Session ID를 포함한다.
- 웹브라우저는 Session ID를 받게되면, 메모리에 보관하고, 매 요청시 서버에 보낸다.

- 서버에서 보낸 data를 웹브라우저에서 보관하는 것.
- 서버에 요청 시 SessionID를 주고 받은 쿠키정보를 매번 보낸다.

* getSession()
- 클라이언트에서 보낸 쿠키 정보 중에 SessionID가 있다면, SessionID에 해당하는
세션 객체를 찾는다.
- 유효 하다면 그 객체를 리턴한다.
- 유효하지 않다면 새로운 객체를 리턴한다.
- SessionID가 없다면, 새로운 세션 객체를 만들고, 그 객체를 리턴한다.
=============================================================================
JSP

C:\javaide\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\work\Catalina\localhost\web004\org\apache\jsp\test

[JSP 구성 요소]
* 템플릿 데이터(Template data)
- 출력문으로 만들기 위해 그냥 작성하는 텍스트
- out.write()와 같은 출력문으로 변환됨.
* 스크립트릿(scriptlet)
- 자바 코드를 작성하는 태그
- 예) <% 자바코드 %>
- 그대로 자바소스파일에 복사된다.
* 표현식(expression element)
- 변수나 어떤 식의 결과 값을 출력할 때
- 예) <%= 자바 변수나 식 %>
- out.print(자바 변수나 식) 으로 변환된다.
* 지시문(directive element)
- 특정 자바 코드로 변환된다.
- 예) <%@ page import="java.util.*,java.net.*"%>
=> 자바소스 파일에서 import 문으로 변환된다.
- 예) <%@ page contentType="text/html;charset=UTF-8"%>
=> response.setContentType("text/html;charset=UTF-8"); 문으로 변환됨.
* 선언문(declaration element)
- 클래스 블럭에 복사됨.
- 인스턴스 및 클래스 변수/메서드/스태틱블럭
- 예) <%! 인스턴스변수, 클래스변수, 메서드, 스태틱블럭, 초기화블럭 %>
- 어차피 클래스 블럭에 복사되기 때문에 작성하는 위치에 상관없다.