JSP란?

·2024년 1월 5일
0
post-thumbnail

1. JSP란?

Java Server Page의 약자로써 HTML 코드에 JAVA 언어를 삽입하여 동적 문서를 만든다.

2. 동작 원리

  1. 웹서버에게 클라이언트의 jsp 페이지를 요청한다.
  2. 해당 요청을 웹컨테이너(Servlet 컨테이너)에게 넘긴다.
  3. 기존에 요청된 JSP 파일인지 체크한다
    3.1 처음 요청 시: JSP파일을 Servlet 파일로 파싱 -> 클래스 파일로 컴파일
    3.2 이미 작업 시: 파싱 과정을 생략하고 클래스 파일로 즉시 컴파일
  4. 컴파일된 클래스 파일은 메모리에 적재되어 실행
  5. 실행결과를 웹서버에 전달
  6. 전달받은 실행결과를 브라우저가 인식할 수 있는 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 태그에 데이터 전달을 목적으로 사용. 이름과 값으로 이루어져 있다.

0개의 댓글