2013년 9월 3일 화요일

Session

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



* Cookie
- 서버에서 보낸 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)
- 클래스 블럭에 복사됨.
- 인스턴스 및 클래스 변수/메서드/스태틱블럭
- 예) <%! 인스턴스변수, 클래스변수, 메서드, 스태틱블럭, 초기화블럭 %>  
- 어차피 클래스 블럭에 복사되기 때문에 작성하는 위치에 상관없다.