1. JSP란?
Java Server Page의 약자로써 HTML 코드에 JAVA 언어를 삽입하여 동적 문서를 만든다.
2. 동작 원리
- 웹서버에게 클라이언트의 jsp 페이지를 요청한다.
- 해당 요청을 웹컨테이너(Servlet 컨테이너)에게 넘긴다.
- 기존에 요청된 JSP 파일인지 체크한다
3.1 처음 요청 시: JSP파일을 Servlet 파일로 파싱 -> 클래스 파일로 컴파일
3.2 이미 작업 시: 파싱 과정을 생략하고 클래스 파일로 즉시 컴파일
- 컴파일된 클래스 파일은 메모리에 적재되어 실행
- 실행결과를 웹서버에 전달
- 전달받은 실행결과를 브라우저가 인식할 수 있는 HTML 파일로 바꾸어 브라우저에서 실행
3. JSP 내부 객체
- 개발자가 객체를 생성하지 않고 바로 사용할 수 있는 객체가 내부 객체이다.
- JSP에서 제공되는 개부 객체는 JSP컨테이너에 의해 Servlet으로 변화될 떄 자동으로 객체가 생성 된다.
내부 객체 종류
입출력 객체 : request, response, out
서블릿 객체 : page, config
세션 객체 : session
예외 객체 : exception
3.1 request 객체
- 웹브라우저를 통해 서버에 어떤 정보를 요청하는 것을 request라고 한다.
Request 객체 관련 메소드
getContextPath(): 웹어플리케이션의 컨텍스트 패스를 얻는다
getMethod(): get방식과 post 방식을 구분할 수 있다
getSession(): 세션 객체를 얻는다
getProtocol(): 해당 프로토콜을 얻는다
getRequestURL(): 요청 URL을 얻는다
getRequestURI(): 요청 URI를 얻는다.
getQueryString(): 쿼리스트링을 얻는다
Parameter 메소드
getParameter(String name): name에 해당하는 파라미터 값을 구함
getParameterNames(): 모든 파라미터 이름을 구함
getParameterValues(String name): name에 해당하는 파라미터값들을 구함
3.2 response 객체
- 웹브라우저의 요청에 응답하는 것을 response라고 한다.
response 객체 관련 메소드
getCharacterEncoding(): 응답할떄 문자의 인코딩 형태를 구함
addCookie(Cookie): 쿠키를 지정한다
sendRedirect(URL): 지정한 URL로 이동
4. 스크립- 스크립트릿, 선언, 표현식
4.1 스크립트릿(scriptlet) : <% java 코드 %>
- jsp 페이지에서 java 언어를 사용하기 위한 요소 중 가장 많이 사용
ex)
4.2 선언(declaration) : <%! java 코드 %>
- jsp 페이지 내에서 사용되는 변수 또는 메소드를 선언할 때 사용
- 여기서 선언된 변수 및 메소드는 전역의 의미로 사용
ex)
4.3 표현식(expression) : <%= java 코드 %>
- jsp페이지 내에서 사용되는 변수의 값 또는 메소드 호출 결과값을 출력하기 위해 사용
- return 값은 String타입이며, ';' 사용 불가
ex)
5. 지시자
- JSP페이지의 전체적인 속성을 지정할 때 사용한다.
5.1 page 지시자: 해당 페이지의 전체적인 속성 지정
ex)
5.2 include 지시자 : 현재 페이지내에 다른 페이지를 삽입할 때 사용. file 속성을 이용
ex)
5.3 taglib 지시자
- 사용자가 만든 tag들을 태그라이브러리라고 한다.
- uri 및 prefix 속성이 있다. uri는 태그라이브러리의 위치 값을 가지며, prefix는 태그를 가리키는 이름 값을 가진다.
6. 액션태그
-JSP페이지 내에서 어떤 동작을 하도록 지시하는 태그
6.1 forward
- 현재의 페이지에서 다른 특정페이지로 전환할 때 사용
6.2 include
- 현재 페이지에 다른 페이지 삽입할 때 사용
6.3 param
- forward 및 include 태그에 데이터 전달을 목적으로 사용. 이름과 값으로 이루어져 있다.