자료 저장소

# JSP 디폴트 객체

□ JSP 디폴트 객체


 

□ 디폴트 객체가 사용되는 스코프(Scope)


 

    ■ page
      - 한 JSP 페이지에서만 사용 가능.
      - 스코프가 page인 디폴트 객체 : response, out, config, page, execption
    ■ request
      - 다른 페이지로 전달(이동, Forward)되는 경우에 이동된 페이지에서도 사용 가능.
      - 스코프가 request인 디폴트 객체 : request
    ■ session
      - 세션이 사용되는 한, 여러 페이지에서 사용 가능.
      - 예> 로그인 정보를 session 객체에 저장하고, 각 JSP 페이지에서 session에 저장된 로그인 정보를 보고 서비스를 제공하는 것.
      - 스코프가 session인 디폴트 객체 : session
    ■ application
      - 웹 응용프로그램에 소속된 모든 페이지들이 사용 가능.
      - 웹 응용프로그램 전체에서 사용해야 하는 정보를 저장하고 사용하기 위해 이용.
      - 스코프가 application인 디폴트 객체 : application

  □ 디폴트 객체 분류
    - JSP 페이지에 관련된 객체 : page, config
    - 페이지 입출력에 관련된 객체 : request, response, out
    - 컨텍스트에 관련된 객체 : session, application, pageContext
    - 에러에 관련된 객체 : exception

  □ 디폴트 객체
    ■ page 객체
      ○ 특징
        - HttpJspPage 인터페이스를 구현.
        - Object로부터 상속받는 클래스의 인스턴스.
        - 톰캣은 JSP 페이지를 HttpJspPage 인터페이스를 구현하는 서블릿 클래스로 변환.
        - JSP 페이지 자신을 표현하기 위한것. (현재 JSP 페이지에 선언된 모든 메소드들과 속성 값에 접근할 수 있는 방법 제공.)
      ○ 메소드
        ● void jspInit()
          - JSP 페이지가 초기화 될 때 한 번 호출됨.
        ● void jspDestroy()
          - JSP 페이지가 삭제될 때 호출 됨.
    ■ config 객체
      ○ 특징
        - ServletConfig 타입.
        - 서블릿의 구성 정보에 접근할 수 있는 방법 제공.
        - JSP 페이지에서는 jspInit() 메소드에서 필요한 초기화 파라미터 값들을 읽을 수 있음.
    ■ request 객체
      ○ 특징
        - HttpServletRequest 타입.
        - 클라이언트(웹 브라우저)의 요청을 표현하기 위한 객체.
        - JSP 페이지에서는 request 객체를 이용해서 웹 브라우저의 요청과 관련된 데이터에 접근.
        - <jsp:forward>와 <jsp:include>를 사용해 request 객체를 다른 JSP페이지에 전달 가능. (추가적인 정보 저장 가능.)
    ■ response 객체
      ○ 특징
        - HttpServletResponse 타입.
        - 웹 브라우저에 응답 데이터를 전송하기 위해서 사용되는 객체.
    ■ out 객체
      ○ 특징
        - JspWriter 타입의 객체.
        - JSP 페이지의 출력 스트림의 위해서 사용되는 클래스.
      ○ JspWriter 클래스
        - BufferedWriter와 PrintWriter의 기능을 동시에 수행할 수 있도록 작성.
      ○ PrintWriter와의 차이점
        - JspWriter는 print() 메소드를 호출할 때 IOException이 발생 가능.
        - page지시어에서 autoflush속성이 'true'인 경우에는 버퍼가 채워지면 자동적으로 출력되지만 'false'이고, 버퍼가 오버플로우가 되는 경우에 IOException 발생.
      ○ 메소드
        ● void clear()
          - 버퍼를 클리어.
          - 만약 버퍼가 플러쉬된 경우에는 IOException이 발생.
        ● void close()
          - 버퍼 내용을 플러쉬하고 닫음.
        ● void flush()
          - 버퍼 내용을 플러쉬.
        ● int getBufferSize()
          - 버퍼 크기를 알아봄. (단위 : 바이트)
          - 리턴값이 0이면 버퍼를 사용하지 않는 경우.
        ● int getRemaining()
          - 버퍼에서 사용되지 않는 버퍼의 바이트 수를 리턴.
        ● boolean isAutoFlush()
          - 자동적으로 플러쉬되는지 여부를 알아봄.
        ● void new Line()
          - 줄바꾸기(Line Separator)를 출력.
        ● void print(<type> value)
          - value를 문자열 타입으로 변환해서 출력.
        ● void println()
          - 현재 줄에 줄바꾸기 문자를 추가.
        ● void println(<type> value>
          - value를 문자열 타입으로 변환해서 출력하고, 줄 바꾸기를 함.
    ■ session 객체
      ○ 특징
        - HttpSession 타입.
        - 현재 사용자의 세션을 표현하기 위해서 사용되는 클래스.
        - 세션을 사용하기 위해서는 page 지시어에서 session 속성의 값을 'false'로 설정해서는 안됨.
    ■ application 객체
      ○ 특징
        - JSP 페이지가 속해 있는 웹 응용프로그램을 표현하기 위해서 사용되는 객체.
        - ServletContext 인터페이스 타입.
    ■ pageContext 객체
      ○ 특징
        - PageContext 타입.
        - 다른 디폴트 객체들을 프로그램적으로 접근할 수 있는 방법과 클라이언트의 요청을 다른 페이지로 전달할 수 있는 메소드들을 제공.
      ○ 멤버 필드
        ● static int PAGE_SCOPE
          - 페이지 스코프.
        ● static int REQUEST_SCOPE
          - 리퀘스트 스코프.
        ● static int SESSION_SCOPE
          - 세션 스코프.
        ● staitc int APPLICATION_SCOPE
          - 응용 프로그램 스코프.
      ○ 메소드
        ● Object findAttribute(String name)
          - 주어진 이름의 객체를 page, requet, session, application 스코프에서 찾아 리턴.
        ● void forward(String relativeUrlPath)
          - 다른 페이지로 클라이언트의 요청을 전달(Forward)하기 위해서 사용.
        ● Object getAttribute(String name)
          - 주어진 이름의 객체를 page 스코프에서 찾아 리턴.
        ● Object getAttribute(String name, int scope)
          - 주어진 스코프에서 주어진 이름의 객체를 찾아 리턴.
        ● Enumeration getAttributeNamesInScope(int scope)
          - 주어진 스코프의 모든 객체를 리턴.
        ● int getAttributesScope(String name)
          - 주어진 이름에 해당되는 객체의 스코프를 리턴. 
        ● Exception getException()
          - 에러 페이지로 전달된 예외를 리턴.
        ● JspWriter getOut()
          - 출력을 위한 JspWriter를 리턴.
        ● Object getPage()
          - 현재 PageContext와 연관된 페이지 객체를 리턴.
        ● ServletRequest getRequest()
          - 클라이언트 요청을 표현하는 ServletRequest 객체를 리턴.
        ● ServletResponse getResponse()
          - ServletResponse 객체를 리턴.
        ● ServletConfig getServletConfig()
          - ServletConfig 객체를 리턴.
        ● ServletContext getServletContext()
          - ServletContext 객체를 리턴.
        ● HttpSession getSession()
          - 세션을 리턴.
        ● void handlePageException(Exception e)
          - 페이지에서 처리되지 않는 예외를 다른 페이지로 리다이렉트(Redirect)하기 위해서 사용.
        ● void include(String relativeUrlPath)
          - 주어진 패스에 있는 자원도 현재의 ServletRequest와 ServletResponse를 이용해서 철.
        ● void removeAttribute(String name)
          - 주어진 이름의 객체를 삭제.
        ● void removeAttribute(Stirng name, int scope)
          - 주어진 스코프에 있는 주어진 이름의 객체를 삭제.
        ● void setAttribute(String name, Object attribute)
          - 주어진 이름으로 객체를 페이지 스코프로 등록.
        ● void setAttribute(String name, Object o, int scope)
          - 주어진 이름으로 객체를 주어진 스코프에 등록.
    ■ exception 객체
      ○ 특징
        - 에러 페이지에서만 사용.
        - JSP 페이지에서 catch로 처리되지 않아서 제어가 에러 페이지로 넘겨진 Throwable의 인스턴스.




'프로그래밍 > JSP' 카테고리의 다른 글

JSP :: 폼 데이터 처리  (0) 2010.11.22
JSP :: JSP 페이지 요소  (0) 2010.11.22
JSP :: JSP 페이지 구성  (0) 2010.11.22
JSP :: 간단한 JSP 프로그래밍  (0) 2010.11.22
JSP :: Hello Servlet!  (0) 2010.11.22
댓글 로드 중…

최근에 게시된 글