공부해요/JSP

[ 모델2로 구현하는 자바 웹 프로그래밍 JSP2.2 & Servlet3.0 따라하기 ] 5

예쁜꽃이피었으면 2014. 7. 29. 00:08

첨부파일 (1)

http://cafe.naver.com/javacreator/490

http://ikeyword.tistory.com/39

 

 

Chapter05 내장 객체와 액션 태그

5.1 내장 객체

 1) 내장 객체의 개요

          

Lmplicit object for scriptlets

type

Scop

Request

Subclass of   javax.servlet.servletRequest

Request

Response

Subclass of   Javax.servlet.servletResponse

Page

pageContext

Javax.servlet.jsp.pagecontext

Page

Session

Javax.servlet.http.httpsession

Session

Applicaton

Javax.servlet.servletcontext

Application

Out

Javax.servlet.jsp.jspwriter

Page

Config

Javax.servlet.servletconfig

Page

Page

Java.lang.object

Page

exception

Javs.lang.throwable

Page

*사용자는 이들 내장 객체가 사용하는 이름과 같은 이름을 가진 변수를 jsp페이지 내의 스크립틀릿 안에서 정의해 사용해서는 안된다. 왜냐하면 이들 내장 객체는 jsp페이지가 서블릿 클래스로 변환될 때 _jspService()메소드 안에서 가장 먼저 선언되기 때문에 사용자가 jsp페이지의 스크립틀릿 안에서 내장 객체의 이름을 가진 변수를 정의하면 스크립틀릿 내의 코드가 _jspService()메소드 안에 구현될 때 중복된 이름으로 정의되어 컴파일 에러가 발생한다.

 

l  Request 객체

jsp/서블릿 컨테이너는 전송 받은 http메시지를 통해 httpservletrequest객체를 생성하고 이를 서블릿 인스턴스에 넘겨줌으로써 서블릿이 사용자의 요청에 관련된 데이터들을 얻게 된다. jsp페이지에서는 이 httpservletrequest객체를 request란 이름의 객체로 사용한다.

 

l  Response 객체

클라이언트의 요청에 대한 http응답을 나타내는 객체로 웹 컨테이너에서는 javax.servlet.http.HttpServletResponse 객체를 사용해 response객체를 생성한다.

 

l  pageContext 객체

javax.serVlet.jsp.PageContext 클래스를 상속하여 웹 컨테이너가 구현한 객체로 jsp페이지와 관련돤 프로그램에서 다른 내장 객체를 얻어내거나 현재 페이지의 요청과 응답이 제어권을 다른 페이지로 넘겨주는데 사용한다.

또 다른 기능으로는 request, session, application과 같은 내장 객체의 속성을 제어하는 기능이 있다.

pageContext, request, session, application 4가지 내장 객체는 각각의 영역(Scope)과 관련된 자신의 속성을 가질 수 있고 이를 통해 각각의 영역 내에서 지정된 속성들을 서로 다른 페이지라 할지라도 동일한 어플리케이션 내에서 공유할 수 있다.

 

l  Session 객체

클라이언트의 정보가 유지되어야 할 필요가 있는 경우를 위해 가살연결(Virtual Connection)이라는 개념의 세션이 등장했고 jsp는 이러한 세션을 session내장 객체를 이용해 구현한다.

 

l  Application 객체

Javax.servlet.ServletContext 클래스를 상속받아 웹 컨테이너가 구현하여 재공하는 객체로 해답 웹 애플리케이션의 실행 환경을 제공하는 서버의 정보와 서버 측 자원에 대한 정보를 얻어내거나 해당 어플리케이션의 이벤트 로그를 다루는 메소드들을 제공한다.

Application은 각 웹 어플리케이션 당 오직 하나만의 객체만이 생성되므로 해당 웹 애플리케이션 전체 영역에서 자원을 공유해야 할 때 주로 사용.

 

l  Out 객체

서블릿/jsp 컨테이너가 응답 페이지를 만들기 위해 사용하는 출력 스트림 객체로 java.io.Writer클래스를 상속한 javax.servlet.jsp.JspWriter클래스 타입으로 선언된다.

 

l  Config 객체

Jsp 페이지가 서블릿 클래스로 변환되어 서블릿 인스턴스가 생성될 때 참조해야 할 초기 설정 정보들을 저장해 놓은 객체이다.

 

l  Page 객체

Jsp 페이지에 의해 생성되는 서블릿 인스턴스 자체를 나타내는 객체이다.

This는 자바코드에서 자기자신을 참조하는 레퍼런스이므로 page객체는 서블릿 인스턴스 자체를 참조하는 객체임을 알 수 있다.

 

l  Exception 객체

jsp페이지에서 예외가 발생했을 경우 그 예외를 처리할 에러 페이지를 사용자가 지정한 경우에 해당 에러 페이지에 전달되는 예외 객체이다.

 

*포워딩 방식 : 요청과 응답에 대한 제어권을 다른 페이지로 넘기더라도 브라우저에 표시되는 주소가 유지되는 방식

 

 

5.2 영역 객체와 속성

 1) 영역(Scope)과 속성(Attribute)

- jsp에서 제공하는 내장 객체들 중 session , request , application 객체들은 해당 객체에 정의된 유효범위 안에서 필요한 객체(데이터)들을 저장하고 읽어 들임으로써 서로 공유할 수 있는 특저안 영역을 가지고 있다.

속성(Attribute) : 공유되는 데이터

영역(Scope) : 속성을 공유할 수 있는 유효범위

-      속성의 유효범위

Page : 해당 페이지가 클라이언트에 서비스를 제공하는 동안 유효

Request : 클라이언트의 요청이 처리되는 동안 유효

Session : 세션이 유지되는 동안 유효

Application : 웹 애플리케이션이 실행되고 있는동안 유효

           *page영역은 오직 하나의 페이지 내에서만 유효성을 갖는 영역.

            page내장 객체가 아닌 pageContext 내장 객체를 통해 접근할 수 있는 영역이다.

 

5.3 액션태그

 1) 액션태그의 개요

  - jsp페이지에서 자바 코드 등의 스크리브 언어를 사용하지 않고도 (html 태그 형태로)

다른 페이지의 서블릿이나 자바빈의 객체에 접근할 수 있도록 태그를 이용해 구현된 기능

-      페이지 흐름 제어 액션(forward / include 액션)

-      자바빈 사용 액션(useBean 액션)

-      애플릿 사용 액션(plugin 액션)

2) forward 액션

           - <jsp:forward page = ”이동할 페이지” />

             <jsp:forward page = “이동할 페이지”></jsp/forward>

-      현재 페이지의 요청과 응답에 관한 처리권을 page 속성에 지정된 이동할 페이지로 영구적으로 넘기는 일을 한다.

- 제어권을 포워딩 되는 페이지로 완전히 넘기고 그 페이지의 처리가 끝나면 모든 응답을 종료시키는 방식

3) include 액션 태그

           - <jsp:include page = ”포함될 페이지” flush = “false” />

             <jsp: include page = “포함될 페이지” flush = “false”></jsp/ include >

 

           - 임시로 제어권을 include되는 페이지로 넘겼다가 그 페이지의 처리가 끝나면 처리 결과를

원래 페이지로 리턴하고 다시 원래의 페이지로 제어권을 반환하는 방식

-      Include 소스코드 복사(include 지시어)가 아닌 제어권 자체가 include 액션으로 지정된 페이지로 넘어갔다가 다시 원래 페이지로 돌아온다.

*include 지시어는 일반적으로 정적인 페이지(저작권 표시 등..)를 포함시킬 때 주로 사용하고

 Include 액션은 jsp 페이지 처럼 동적인 페이지를 포함 시키고자 할 때 주로 사용

4) plugin 액션

           - <jsp:plugin type = “플러그인 타입

             Codebase=”클래스 파일의 위치” code=”불러올 클래스 파일

             Width=”가로” height=”세로”>

                      <jsp:params>

                                  <jsp:param name=”파라미터 이름” value=”파라미터 값”/>

                      </jsp:params>

           </jsp:plugin>

 


반응형