Web/Jsp

[Jsp] Jsp

hikr90 2025. 1. 9. 21:58

# 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