본문 바로가기

Programming/JSP

DAY 107. JSP - 기본 개념

 

JSP

html 안에 자바 코드가 들어가 있는 형태

확장자가 .jsp 인 파일

 

 

Servlet VS JSP

 

++ MVC 패턴 연결

 

 

 

 

JSP 특징

  • JSP 파일이 변경되지 않으면 '.jsp' 파일에 대한 컴파일은 다시 일어나지 않는다.
  • JSP 파일이 변경될 때마다, 웹 컨테이너는 번역, 컴파일, 로드, 초기화 과정을 수행한다.
  • JSP 파일 배포 위치는 HTML과 동일하게 WEB ROOT 폴더 아래에 있다. (cf. Servlet은 src 폴더 아래에 저장)

 

JSP Elements 표기법

1. Comments tag -> HTML 코드에는 포함되지 않고 브라우저 소스코드에서 볼 수 없으며 개발자 도구에서만 확인할 수 있다.
<%-- 주석 --%>

2. Directive tag
<%@ 지시자 %>

3. Declaration tag -> 필드(멤버 변수)와 메소드를 선언하기 위해서 사용한다.
<%! 선언문 %>

4. Scriptlet tag -> JSP에서 자바 코드를 사용하기 위해서 사용한다.
<% 코드 %>

5. Expresstion tag
<%= 표현식 %>

 

 

01. Directive tag

지시자 태그

 

JSP 페이지 전체에 영향을 미치는 정보를 기술할 때 쓰인다.

JSP 파일을 실행하는 컨테이너한테 해당 페이지를 어떻게 처리 할 것인지 정보를 제공한다.

 

지시자 종류

<%@ page import="java.io.*" %>
<%@ page contectType="text/html" %>
<%@ page isErrorPage="true" %>
<%@ page errorPage="/error/errorForm.jsp" %>

 

 

✔️ page

JSP 페이지에 대한 속성을 정하는 지시어

여러 개의 page 구문을 사용할 수 있지만 import 속성을 제외하고는 한 페이지에 한 번씩만 선언이 가능하다.

JSP 파일 어느 위치에 있어도 상관없지만 가장 첫 부분에 사용하는 것이 좋다.

 

✔️ import

변환된 서블릿 클래스에 필요한 자바 클래스의 import문을 정의한다.

java.lang, javax.servlet, javax.servlet.http, javax.servlet.jsp 는 기본적으로 import 되어 있다.

여러 package import를 할 경우는 ',' 로 구분한다.

 

✔️ contentType

MIME 타입, 문자 인코딩 설정

 

✔️ isErrorPage

현재 페이지가 JSP 오류 처리용 페이지인지를 정의한다.

값은 true | false(default)

true인 경우는 exception 내장 객체가 사용이 가능하다.

 

✔️ errorPage

해당 JSP 페이지가 발생 시키는 모든 runtime exception을 처리할 다른 JSP 페이지를 지정한다.

값은 URL이다.

 

 

 

02. Declaration tag

선언 태그

 

Servlet 클래스의 멤버 변수, 멤버 메소드에 해당하는 코드를 작성할 때 사용

멤버 변수 선언(필드), 멤버 메소드 선언

 

 

03. Scriptlet tag

실제 자바 코드가 작성되는 코드

 

jspServlet 메소드의 로컬 변수와 코드를 작성할 때 사용한다.

함수 안에서 자바 코드를 사용하는 부분이라서 ;(세미콜론) 사용한다.

클라이언트에게 출력하기 위해서 out.write() 직접 사용할 수도 있다.

접근 제한자를 사용할 수 없다.

 

 

04. Expression tag

표현식 태그

 

자바에서 작성한 값을 출력하기 위해서 사용한다.

Servlet 코드에서 out.print() 의 역할을 수행한다.

표현식 태그 안에 작성한 내용은 out.print()의 매개 값으로 넘어간다.

따라서 세미 콜론 ; 을 붙이지 않는다!

 

 

'Programming > JSP' 카테고리의 다른 글

DAY 131. JSP - Redirect와 Forward의 차이점  (0) 2021.12.27
DAY 112. JSP - EL/JSTL  (0) 2021.12.08
DAY 111. JSP - 내장 객체, 영역 스코프  (0) 2021.12.07