JSP 란?
JSP (Java Server Page)는 HTML내에서 Java 코드를 삽입하여 웹 서버에서 동적을 웹 페이지를 생성하여 웹 브라우저에 돌려주는 언어입니다.
JSP는 실행시에 자바 서블릿으로 변환된 후 실행되기 때문에 서블릿가 유사하다고 볼 수 있지만, 서블릿과는 다르게 HTML 표준에 따라서 작성되기 때문에 웹디자인하기에 편리합니다.
JSP 동작 과정

JSP Script
JSP에서 사용되는 태그는 다음과 같습니다.
1. 선언문 (Declaration) : 자바 변수나 메소드 정의
<%! ... %>
2. 스크립트릿 (Scriptlet) : 자바 로직 코드 작성
<% ... %>
3. 표현식 (Expression) : 변수, 계산식, 메소드 호출 결과를 문장열 형태로 출력
<%= ... %>
4. 주석 (Comment) : 코드 부가 설명 작성
<%-- ... --%>
선언문과 스크립트릿의 차이점
선언문 | 스크립트릿 |
변수와 메소드 선언 | 변수만을 선언 |
서블릿 프로그램으로 변환될 때 전역 변수와 메소드로 만들어집니다. | 서블릿 프로그램으로 변환될 때 _jspService() 메소드 안에 생성됩니다. |
JSP Directive
Directive (지시자)는 웹 컨테이너안에서 JSP페이지를 서블릿 클래스로 변환할 때 필요한 정보기술을 하기 위해 사용합니다.
Directive 종류
1. page Directive : Directive의 속성을 이용해 JSP 페이지에 필요한 정보를 정의
<%@ page %>
속성 | 기본값 | 설명 |
language | java | 스크립트에서 사용 할 언어 정의 |
info | 현재 JSP 페이지에 대한 설명 | |
contentType | text/html; charset=ISO-8859-1 | 브라우저로 내보내는 내용의 MIME 형식 지정 및 문자 집합 지정 |
pageEncoding | ISO-8859-1 | 현재 JSP 페이지 문자집합 지정 |
import | 현재 JSP 페이지에서 사용할 Java 패키지나 클래스 지정 | |
session | true | 세션의 사용 유무 설정 |
errorPage | 에러가 발생할 때 대신 처리될 JSP 페이지 지정 | |
isErrorPage | false | 현재 JSP 페이지가 에러 핸들링 하는 페이지인지 지정 |
buffer | 8KB | 버퍼의 크기 |
autoflush | true | 버퍼의 내용을 자동으로 브라우저에 보낼 것인지에 대한 설정 |
isThreadsafe | true | 현재 JSP 페이지가 멀티 쓰레드로 동작해도 안전한지 여부를 설정. false인 경우 JSP페이지는 SingleThread로 서비스 됨 |
extends | javax.servlet.jsp.HttpJspPage | 현재 JSP페이즈를 기본적인 클래스가 아닌 다른 클래스로 부터 상속하도록 변경 |
2. include Directive : 현재 페이지에 포함시킬 템플릿 페이지 지정
- 템플릿 페이지 : 페이지가 바뀌어도 고정적으로 유지되는 화면 영역
<%@ include %>
3. taglib Directive : 현재 페이지에 외부 라이브러리를 연결할 때 사용
<%@ taglib %>
JPS 기본 객체
JSP 페이지에서 특별한 선언 없이 바로 사용할 수 있는 객체이며 다음과 같습니다.
기본 객체 | 타입 | 설명 |
request | javax.servlet.ServletRequest | 클라이언트의 요청 정보 저장 |
response | javax.servlet.ServletResponse | 응답 정보 저장 |
pageContext | javax.servlet.jsp.PageContext | JSP 페이지에 대한 정보 저장 |
session | javax.servlet.http.HttpSession | HTTP 세션 정보 저장 |
application | javax.servlet.ServletContext | 웹 어플리케이션에 대한 정보 저장 |
out | javax.servlet.jsp.JspWriter | JSP 페이지가 생성하는 결과를 출력할 때 사용되는 출력 스트림 |
config | javax.servlet.ServletConfig | JSP 페이지에 대한 설정 정보 저장 |
page | java.lang.Object | JSP 페이즈를 구현한 자바 클래스 인스턴스 |
exception | java.lang.Throwable | 예외 객체이며 에러 페이지에서만 사용 |
JSP 기본객체의 영역(scope)
기본객체 | 설명 |
pageContext | 하나의 JSP 페이지를 처리할 때 사용되는 영역 한번의 클라이언트 요청에 대하여 하나의 JSP 페이지가 호출되며, 이때 단 한 개의 page객체만 대응 됨 페이지 영역에 저장한 값은 페이지를 벗어나면 사라짐 |
request | 하나의 HTTP 요청을 처리할 때 사용되는 영역 웹 브라우저가 요청을 할 때마다 새로운 request객체가 생성됨 request영역에 저장한 속성은 그 요청에 대한 응답이 완료되면 사라짐 |
session | 하나의 웹 브라우저와 관련된 영역 같은 웹 브라우저 내에서 요청되는 페이지들은 같은 session들을 공유하게 됨 |
application | 하나의 웹 어플리케이션과 관련된 영역 웹 어플리케이션당 1개의 application 객체가 생성됨 같은 웹 어플리케이션에서 요청되는 페이지들은 같은 application객체를 공유함 |

공통 method
pageContext, request, session, application 기본객체는 공통된 속성 관련 메소드를 제공하며 다음과 같습니다.
method | return type | 설명 |
setAttribute(String name, Object value) | void | 이름이 name인 속성의 값을 value로 지정 |
getAttribute(String name) | object | 이름이 name인 속성의 값을 구함 지정한 이름의 속성이 조재하지 않을 결우 null 리턴 |
removeAttribute(String name) | void | 이름이 name인 속성을 삭제 |
getAttributeNames() | Enumeration | 속성의 이름 목록을 구함 |
'Java > JSP' 카테고리의 다른 글
EL (Expression language) (0) | 2023.09.21 |
---|---|
HTTP Cookie (0) | 2023.09.19 |
MVC (0) | 2023.09.19 |
서블릿 (Servlet) (0) | 2023.09.14 |
JSP 란?
JSP (Java Server Page)는 HTML내에서 Java 코드를 삽입하여 웹 서버에서 동적을 웹 페이지를 생성하여 웹 브라우저에 돌려주는 언어입니다.
JSP는 실행시에 자바 서블릿으로 변환된 후 실행되기 때문에 서블릿가 유사하다고 볼 수 있지만, 서블릿과는 다르게 HTML 표준에 따라서 작성되기 때문에 웹디자인하기에 편리합니다.
JSP 동작 과정

JSP Script
JSP에서 사용되는 태그는 다음과 같습니다.
1. 선언문 (Declaration) : 자바 변수나 메소드 정의
<%! ... %>
2. 스크립트릿 (Scriptlet) : 자바 로직 코드 작성
<% ... %>
3. 표현식 (Expression) : 변수, 계산식, 메소드 호출 결과를 문장열 형태로 출력
<%= ... %>
4. 주석 (Comment) : 코드 부가 설명 작성
<%-- ... --%>
선언문과 스크립트릿의 차이점
선언문 | 스크립트릿 |
변수와 메소드 선언 | 변수만을 선언 |
서블릿 프로그램으로 변환될 때 전역 변수와 메소드로 만들어집니다. | 서블릿 프로그램으로 변환될 때 _jspService() 메소드 안에 생성됩니다. |
JSP Directive
Directive (지시자)는 웹 컨테이너안에서 JSP페이지를 서블릿 클래스로 변환할 때 필요한 정보기술을 하기 위해 사용합니다.
Directive 종류
1. page Directive : Directive의 속성을 이용해 JSP 페이지에 필요한 정보를 정의
<%@ page %>
속성 | 기본값 | 설명 |
language | java | 스크립트에서 사용 할 언어 정의 |
info | 현재 JSP 페이지에 대한 설명 | |
contentType | text/html; charset=ISO-8859-1 | 브라우저로 내보내는 내용의 MIME 형식 지정 및 문자 집합 지정 |
pageEncoding | ISO-8859-1 | 현재 JSP 페이지 문자집합 지정 |
import | 현재 JSP 페이지에서 사용할 Java 패키지나 클래스 지정 | |
session | true | 세션의 사용 유무 설정 |
errorPage | 에러가 발생할 때 대신 처리될 JSP 페이지 지정 | |
isErrorPage | false | 현재 JSP 페이지가 에러 핸들링 하는 페이지인지 지정 |
buffer | 8KB | 버퍼의 크기 |
autoflush | true | 버퍼의 내용을 자동으로 브라우저에 보낼 것인지에 대한 설정 |
isThreadsafe | true | 현재 JSP 페이지가 멀티 쓰레드로 동작해도 안전한지 여부를 설정. false인 경우 JSP페이지는 SingleThread로 서비스 됨 |
extends | javax.servlet.jsp.HttpJspPage | 현재 JSP페이즈를 기본적인 클래스가 아닌 다른 클래스로 부터 상속하도록 변경 |
2. include Directive : 현재 페이지에 포함시킬 템플릿 페이지 지정
- 템플릿 페이지 : 페이지가 바뀌어도 고정적으로 유지되는 화면 영역
<%@ include %>
3. taglib Directive : 현재 페이지에 외부 라이브러리를 연결할 때 사용
<%@ taglib %>
JPS 기본 객체
JSP 페이지에서 특별한 선언 없이 바로 사용할 수 있는 객체이며 다음과 같습니다.
기본 객체 | 타입 | 설명 |
request | javax.servlet.ServletRequest | 클라이언트의 요청 정보 저장 |
response | javax.servlet.ServletResponse | 응답 정보 저장 |
pageContext | javax.servlet.jsp.PageContext | JSP 페이지에 대한 정보 저장 |
session | javax.servlet.http.HttpSession | HTTP 세션 정보 저장 |
application | javax.servlet.ServletContext | 웹 어플리케이션에 대한 정보 저장 |
out | javax.servlet.jsp.JspWriter | JSP 페이지가 생성하는 결과를 출력할 때 사용되는 출력 스트림 |
config | javax.servlet.ServletConfig | JSP 페이지에 대한 설정 정보 저장 |
page | java.lang.Object | JSP 페이즈를 구현한 자바 클래스 인스턴스 |
exception | java.lang.Throwable | 예외 객체이며 에러 페이지에서만 사용 |
JSP 기본객체의 영역(scope)
기본객체 | 설명 |
pageContext | 하나의 JSP 페이지를 처리할 때 사용되는 영역 한번의 클라이언트 요청에 대하여 하나의 JSP 페이지가 호출되며, 이때 단 한 개의 page객체만 대응 됨 페이지 영역에 저장한 값은 페이지를 벗어나면 사라짐 |
request | 하나의 HTTP 요청을 처리할 때 사용되는 영역 웹 브라우저가 요청을 할 때마다 새로운 request객체가 생성됨 request영역에 저장한 속성은 그 요청에 대한 응답이 완료되면 사라짐 |
session | 하나의 웹 브라우저와 관련된 영역 같은 웹 브라우저 내에서 요청되는 페이지들은 같은 session들을 공유하게 됨 |
application | 하나의 웹 어플리케이션과 관련된 영역 웹 어플리케이션당 1개의 application 객체가 생성됨 같은 웹 어플리케이션에서 요청되는 페이지들은 같은 application객체를 공유함 |

공통 method
pageContext, request, session, application 기본객체는 공통된 속성 관련 메소드를 제공하며 다음과 같습니다.
method | return type | 설명 |
setAttribute(String name, Object value) | void | 이름이 name인 속성의 값을 value로 지정 |
getAttribute(String name) | object | 이름이 name인 속성의 값을 구함 지정한 이름의 속성이 조재하지 않을 결우 null 리턴 |
removeAttribute(String name) | void | 이름이 name인 속성을 삭제 |
getAttributeNames() | Enumeration | 속성의 이름 목록을 구함 |
'Java > JSP' 카테고리의 다른 글
EL (Expression language) (0) | 2023.09.21 |
---|---|
HTTP Cookie (0) | 2023.09.19 |
MVC (0) | 2023.09.19 |
서블릿 (Servlet) (0) | 2023.09.14 |