# Jsp
- Java Server Page의 약자로, Html내에 자바 코드를 입력하여 동적으로 웹 페이지를 생성하는 언어
- 내부적으로 연산 능력을 가지고있는 Html이다.
- 서블릿의 비즈니스 로직과 화면 기능을 분리하여 간단한 화면 구현과 유지 관리를 목적으로 도입되었다.
- Jsp가 실행되면 서블릿으로 자동으로 변환된 뒤, 요청을 서버에서 처리하여 브라우저로 응답을 반환한다.

[참고] 맵핑 동작 시 Jsp가 서블릿으로 변환되어 웹 컨테이너에서 동적 데이터를 처리한 뒤 Html으로 웹 브라우저에 띄워주는 방식
Jsp 프로그램
- Jsp는 기본적으로 스레드의 방식으로 동작한다는 장점이 있다.
- 각 기능의 동작마다 메모리를 따로 할당받는 기존의 방식 대신 기능은 최초 한번 시에만 메모리에 로드된다.
- 클라이언트에서 동일한 기능을 요구할 시 기존에 사용한 기능을 재사용한다.
- MVC패턴의 V (View) 영역을 담당한다.
동작 과정
(1) 변환 단계 (Translation Step)
- 컨테이너는 JSP를 자바 파일로 변환한다. (Jsp > 서블릿 변환)
(2) 컴파일 단계 (Compile Step)
- 컨테이너는 변환된 자바 파일을 클래스 파일로 컴파일한다.
(3) 실행 단계 (Interpret Step)
- 컨테이너는 클래스 파일을 실행하여 그 결과 (Html, CSS, JavaScript) 를 브라우저로 전송한다.
- 브라우저로 전송되는 결과는 Html, CSS와 Javascript로 변환된 파일이다.
[예시] hello.jsp의 변환 과정
(1) 이클립스에서 hello.jsp를 생성한 뒤 톰캣 실행
(2) 브라우저에서 hello.jsp 요청
(3) 브라우저의 요청을 받은 톰캣 컨테이너에서 해당 Jsp를 읽어 들여와 Java파일로 변환
(4) 브라우저로 변환한 결과 (Html, CSS, JavaScript) 를 전송하여 화면 출력
[참고] 톰캣에서 변환된 JSP는 아래 경로에서 확인 가능하다.
C:\프로젝트명\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\work\Catalina\localhost\intr\org\apache\jsp\...
Jsp 구성 태그
종류 | 설명 |
페이지 디렉티브 태그 | Jsp의 공통적인 정보를 설정할 때 사용 |
인클루드 디렉티브 태그 | 공통으로 사용하는 Jsp를 다른 Jsp에 추가할 때 사용 |
태그라이브 디렉티브 태그 | 개발자나 프레임워크에서 제공하는 태그를 사용할 때 사용 |
(1) 페이지 디렉티브 태그
- Jsp 생성 시 자동으로 생성된다.
- Import 속성을 제외한 나머지 속성은 중복으로 사용할 수 없다.
<%@ page 속성1="값1", 속성2="값2"... %>
속성 | 기본값 | 설명 |
info | 없음 | Jsp를 설명해주는 문자열 지정 (Java변환 시, getServletInfo 메소드로 변경) |
import | 없음 | Jsp에서 다른 패키지의 클래스 임포트 시 지정 |
language | java | Jsp에서 사용할 언어 지정 |
contentType | text/html | Jsp의 출력 형식 지정 (Java 변환 시, setContentType 메소드로 변경) |
session | true | Jsp에서 HttpSession 객체의 사용 여부 지정 |
buffer | 8kb | Jsp에서 사용할 버퍼 크기 지정 |
errorPage | false | Jsp 처리 도중 예외 발생 시, 처리 담당 페이지 지정 |
isErrorPage | false | 현재 Jsp가 예외 처리 담당 페이지인지 지정 |
pageEncoding | ISO-8859-1 | Jsp에서 사용하는 문자열 인코딩 지정 |
isELIgnored | true | EL 사용 유무 |
'Web > Jsp' 카테고리의 다른 글
[Jsp] Forward & Bind (0) | 2025.01.09 |
---|---|
[Jsp] DB Connect Model (0) | 2025.01.09 |
[Jsp] 스크립트릿 (0) | 2025.01.09 |
[Jsp] 내장 객체 (0) | 2025.01.09 |
[Jsp] Dynamic Web Project (0) | 2025.01.09 |