JSP( Java Server Pages ) 시작하기 - 기초 :: 소림사의 홍반장!

JSP( Java Server Pages ) 시작하기 - 기초

2012.09.19 01:47 - 정열의 삘쏘굿

< 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 카테고리의 포스트를 톺아봅니다