< JSP의 개요 >
1. 소개
: Java Server Pages 약어이며 Java의 웹서버프로그램 스펙(Servlet)으로 변환되어 서비스 된다.
2. 장점
(1) 서블릿보다 쉽고, 빠르다.
(2) 디자인(HTML/JS)부분과 로직(JSP)을 분리시킬 수 있다.
즉, 디자이너와 프로그래머의 일을 분업할 수 있음
(3) 프로그래머가 직접코딩한 Servlet보다 최적화된 Servlet을 생성시켜 효율적인 코드를 생성한다.
(4) Java Beans 사용이 쉽다.
<1> Beans의 정의
- 넓은 의미 : 자바 컴포넌트
- 좁은 의미 : 자바 컴포넌트 중에서 Beans규약에 맞는 컴포넌트
<2> Beans규약
[1] 디폴트 생성자가 존재
[2] 속성을 지정(private)
- 속성이름은 html의 DataInput태그의 이름과 같아야 한다.
[3] 속성을 세팅하고 접근할 수 있는 set/get 메소드(public)
- 첫번째 문자는 대문자로 ex) setName, getName
<3> 종류
[1] 비주얼 컴포넌트 빈즈(JSP와는 상관이 없음)
ex) textfield, button, …
[2] 데이터 빈즈
ex) 데이터를 담아 두는 객체를 만드는 컴포넌트
[3] 서비스 빈즈 (연산이나 서비스 기능 Beans, Worker빈즈)
ex) ConnectionPoolBean
(5) 웹 어플리케이션 상에서 변수의 유효범위(scope) 설정이 간편하다.
3. JSP를 이루는 구성인자
(1) 지시어
<1> 형태 : <%@ 지시어 %>
<2> 종류
Directive | Description |
---|---|
<%@ page ... %> | page - contentType - "text/html; charset=euc-kr" - import - "java.io.*" - errorPage - "/error/error.jsp" - isErrorPage - false(기본값) | true |
<%@ include ... %> | include - file - "/copyright.jsp" : 변환시에 포함 (실행할 파일을 신경쓴다.) |
<%@ taglib ... %> | taglib - uri - "WEB-INF/tlds/my.tld" - prefix- "mytag" cf) <mytag:date /> |
(2) 스크립팅원소
<1> 기능 : JSP페이지에 자바코드를 직접 기술할 수 있게 하는 기능 제공
<2> 종류와 그 형태
[1] 선언(declaration) <%! 자바코드 %>
[2] 스크립트릿(scriptlet) <% 자바코드 %>
[3] 식(expression) <%= 자바코드 %>
(3) JSP액션(JSP 태그)
<1> 정의 : JSP에서 표준으로 정의된 태그
<2> 형태 : <jsp: 태그>
<3> 종류 : useBean, setProperty, getProperty...
ex) useBean - id - "pool"
- class - "ConnectionPool"
- scope - "page < request < session < application"
setProperty - name - "pool"
- property - "name" (Beans의 속성)
- param - "n" (html의 DataInput 태그의 이름)
- value - "홍길동"
getProperty - name - "pool"
- property - "name"
c.f.) 일반적인 경우 : <% pool.getName() %>
include - page - "urlSpec.jsp" : 실행시에 포함 (실행할 페이지를 신경쓴다.)
foward - page - "moveResult.jsp"
plugin - type - "bean|applet"
- code - "objectCode"
- codebase - "objectCodeBase"
(참고) 변수의 범위 설정
[1] page - 하나의 jsp페이지에서만 유효
[2] request - 하나의 요청에 대한 응답 jsp페이지(들)에 유효
[3] session - 사용자에 대해 유효
<1> 브라우져가 닫힐 때
<2> 다른 서버의 URL로 접속해서 요청했을 때
<3> 사용자가 브라우져상에서 30분까지 요청이 없을때
[4] application - 하나의 웹 어플리케이션 전체 유효
4. JSP 디폴트 객체 (9개)
(1) 정의 : 객체를 따로 생성하지 않고 스크립트릿 즉, <%%>사이에서 사용 가능한 객체를 의미
(2) 종류
Objects | Description |
---|---|
page |
JSP페이지 자신을 의미하는 객체 (this) Object |
config |
서블릿/JSP의 구성정보를 가진 객체 ServletConfig |
request |
클라이언트의 요청정보를 가진 객체 HttpServletRequest |
response |
클라이언트에게 줄 답변정보를 가진 객체 HttpServletResponse |
out |
클라이언트의 브라우져에 연결된 출력 객체 JspWriter |
session |
현재 사용자의 세션정보를 가진 객체 HttpSession |
application |
WebApplication전체의 정보를 가진 객체 ServletContext |
pageContext |
다른 디폴트 객체들을 프로그램상에서 접근할 수 있는 방법을 가진 객체 PageContext |
Exception |
에러 처리 관련 객체 JspException |
5. JSP의 라이프 사이클
(다중 쓰레드에 의해서 관리)
'Dev. 웹 > HTML.JSP' 카테고리의 다른 글
자바 JSP Model 1 이용한 방명록 만들기 (0) | 2012.09.19 |
---|---|
EL (Expression Language) 시작하기 - 기초 (0) | 2012.09.19 |
[HTML 예제] a 태그 (anchor tag) - 책갈피 기능 (0) | 2012.09.12 |
[HTML 예제] 폼태그 (form tag) (2) | 2012.09.12 |
HTML 참고자료 (태그 리스트, 속성표, 이벤트, 색상표, 문자셋, 특수기호, ASCII, URL Encode 등) (0) | 2012.09.09 |