방랑로그

[j2ee] 내부객체 본문

IT개발/JAVA & J2EE

[j2ee] 내부객체

야키다 2017. 12. 15. 16:15

[j2ee] 내부객체 



JSP 의 내부 객체(Implicit Object)


내부 객체란 별다른 선언과정과 객체 생성없이 바로 사용할 수 있는 객체들을 말하며 이러한 객체는 JSP 컨테이너가 재공한다. JSP의 내부 객체의 종류는 크게 9가지로 나뉜다.


9가지를 다시 사용 범주로 나누면 아래와 같이 4가지 형태로 분류될 수 있다.



  1. JSP페이지 입출력 관련 객체
  2. JSP페이지 외부 환경 정보 재공 객체
  3. JSP페이지 서블릿 관련 객체
  4. JSP페이지 예외관련 객체


◇ 내부 객체

분류

객체

설명

입출력 관련 객체

request

브라우저에서 JSP 페이지로 전달되는 데이터의 묶음으로 HTTP헤더와 HTTP바디로 구성됨

response

요청을 시도한 클라이언트로 전송할(응답) 데이터의 묶음

out

JSP페이지의 결과를 클라이언트에 전송해 주는 출력 스트림.

외부 환경 정보 재공 객체

session

클라이언트 요청에 관한 context정보의 세션과 관련된 정보를 저장하고 관리하는 객체

application

스블릿 또는 애플리케이션 외부 환경 정보를 나타내는 객체

pageContext

현재 JSP페이지의 Context를 나타내며, pageContext 객체를 통하여 다른 내부 객체에 접근할 수 있는 객체

서블릿 관력 객체

page

JSP페이지 그 자체를 나타내는 객체

config

서블릿이 초기화될 때 참조해야 할 다른 여러 정보를 가지고 있는 객체

예외관련 객체

exception

예외처리를 하기 위한 객체



1. request



1) 주요메소드












String getParameter(name)

name에 할당된 값을 반환하며, 지정된 파라미터 값이 없으면 null을 반환한다. 폼태그에서 전달된 모든 값은 getParameter(name)으로 받는다.

String[] getParameterValues(name)

name의 모든 값을 String 배열로 반환한다. 특히 checkbox와 같은 태그들을 처리할 때 사용된다.

void setCharaterENCODING(code_table)

전달할 데이터의 코드 테이블을 지정한다. 만약 한글이 깨지거나 정상적인 처리가 되지 않을 경우 code_table을 "euc-kr" 이나 "8859_1"을 사용한다.


2) 클라이언트 정보 메소드



String getMethod()

요청에 사용된 요청 방식(GET, POST, PUT)을 반환한다.


String getRequestURI()

요청에 사용된 URL로부터 URI을 반환한다.


String getQueryString()

요청에 사용된 Query를 반환한다.


String getRemoteHost()

클라이언트의 호스트 이름을 반환한다.


String getRemoteAddr()

클라이언트의 주소를 반환한다.


String getProtocol()

사용중인 프로토콜을 반환한다.


String getServerName()

서버의 도메인 이름을 반환한다.


int gtServerPort()

서버의 포트번호를 반환한다.


String getHeader(name)

HTTP 요청 헤더에 지정된 name의 값을 반환한다.(예: name -> User-Agent, Accept)


[사용예]







  1. <%@ page contentType="text/html;charset=EUC-KR"%>
  2. <%
  3.     String protocol = request.getProtocol();
  4.     String serverName = request.getServerName();
  5.     int serverPort = request.getServerPort();
  6.     String remoteAddr = request.getRemoteAddr();
  7.     String remoteHost = request.getRemoteHost();
  8.     String method = request.getMethod();
  9.     StringBuffer requestURL = request.getRequestURL();
  10.     String requestURI = request.getRequestURI();
  11.     String useBrowser = request.getHeader("User-Agent");
  12.     String fileType = request.getHeader("Accept");
  13. %>
  14. <html>
  15. <body>
  16. <h1>Request Example2</h1>
  17. 프로토콜 : <%=protocol%><p>
  18. 서버의 이름 : <%=serverName%><p>
  19. 서버의 포트 번호 :<%=serverPort%><p>
  20. 사용자 컴퓨터의 주소 : <%=remoteAddr%><p>
  21. 사용자 컴퓨터의 이름 : <%=remoteHost%><p>
  22. 사용 method : <%=method%><p>
  23. 요청 경로(URL) : <%=requestURL%><p>
  24. 요청 경로(URI) : <%=requestURI%><p>
  25. 현재 사용하는 브라우저 : <%=useBrowser%><p>
  26. 브라우저가 지원하는 file의 type : <%=fileType%><p>
  27. </body>
  28. </html>



2. response




void setHeader(name, value)

응답에 포함될 Header를 설정한다.


void setContentType()


MIME 타입을 지정한다.


void addCookies()


쿠키를 추가한다.


void sendRedirect(url)


브라우저의 현재 페이지를 다른 URL로 이동한다.


vodi setStatus(code)


HTTP 응답상태를 설정한다.


[사용예]









  1. <h1>Response Example1</h1>
  2. <%
  3.    response.sendRedirect("ResponseExample1_1.jsp");
  4. %>



  1. <%@ page contentType="text/html;charset=EUC-KR"%>
  2. <%
  3.        response.setHeader("Pragma","no-cache");
  4.     if(request.getProtocol().equals("HTTP/1.1")){
  5.        response.setHeader("Cache-Control","no-cache");
  6.     }
  7. %>
  8. <html>
  9.    <body>
  10.    <h1>Response Example1</h1>
  11.     http://localhost:8080/myapp/ch06/ResponseExample1.jsp가<p>
  12.     http://localhost:8080/myapp/ch06/ResponseExample1_1.jsp로 변경이 되었습니다.
  13.    </body>
  14. </html>


[유사한 명령어]


  •  JavaScript  : windows.Location.href="url"
  • META : <meta http-equiv="refresh"  content="초;  url=http://이동할페이지">;  
  • <jsp:forward page="url"/> 

    3. out




    boolean isAutoFlush()


    출력 버퍼가 다 채워져 자동으로 flush했을 경우는 true를 반환하고, 그렇지 않은 경우는 false를 반환한다.

    int getBufferSize()

    출력 버퍼의전체 크기를 바이트 단위로 반환한다.

    int getRemaining()

    출력 버퍼의 남은 양을 바이트 단위로 반환한다.

    void clearBuffer()

    출력 버퍼에 저장된 내용을 삭제한다.

    String print(string), println(string)

    string을 브라우저에 출력한다.

    void flush()

    출력 버퍼의 내용을 클라이언트에게 전송한다.

    void close()

    출력 버퍼의 내용을 flush하고 스트림을 닫는다.


    [사용예]






    1. <%@ page contentType="text/html;charset=EUC-KR" 
    2.          buffer="5kb"
    3. %>
    4. <%
    5.     int totalBuffer = out.getBufferSize();
    6.     int remainBuffer = out.getRemaining();
    7.     int useBuffer = totalBuffer - remainBuffer;
    8. %>
    9. <h1>Out Example1</h1>
    10. <b>현재 페이지의 Buffer 상태</b><p>
    11. 출력 Buffer의 전체 크기 : <%=totalBuffer%>byte<p>
    12. 남은 Buffer의 크기 : <%=remainBuffer%>byte<p>
    13. 현재 Buffer의 사용량 : <%=useBuffer%>byte<p>


    4. session


    session객체는 page지시자의 session속성이  true(기본값)로 설정되어 있어야 사용가능하다. 

    1) 주요메소드


    String getId()

    해당 세션의 세션 ID를 가져온다.

    long getCreationTime()

    세션이 생성된 시간을 가져온다.

    logn getLastAccessedTime()

    클라이언트에 의해 마지막으로 처리된 세션의 시간을 반환한다.

    void setMaxInactiveInterval(time)

    세션을 유지할 시간을 초단위로 설정한다.

    int getMaxInactiveInterval()

    세션의 유지 시간을 가져온다. 기본값(1800초)

    boolean isNew()

    클라이언트 세션ID를 할당하지 않은 경우 true값을 반환한다.

    void invalidate()

    해당 세션을 종료시킨다.

    void setAttribute("세션변수명",값)

    세션변수를 생성한다.

    Object getAttribute("세션변수명")

    저정된 세션변수명의 값을 가져온다. 가져올때는 반드시 해당 값의 성격에 따라 케스팅해야 한다.



    5. exception 


    exception객체는 jsp에서 발생한 예외를 처리하는 페이지를 지정한 경우 에러 페이지에 전달되는 예외 객체이다. page지시자의 isErrorPage 속성을 true로 지정한 jsp페이지에서만 사용 가능한 내부객체이다.

    1) 주요 메소드

    String getMessage()

    에러 메시지를 가져온다.

    String toString()

    에러 클래스명과 에러 메시지를 반환한다.


    먼저 errorPage.jsp를 작성하되 page지시자의 errorPage의 속성값을 "resultPage.jsp"로 정해 오류가 발생하면 오류의 내용을 보여 주도록 하자.






    1. <%@page contentType = "text/html;charset=euc-kr"
    2.                 errorPage="resultPage.jsp"
    3. %>
    4. <%
    5.      int su1 = 10;
    6.      int su2 = 0;

    7.      int r = su1 / su2; //오류가 발생하여 resultPage.jsp로 이동된다.
    8. %>

    다음으로 위 소스에서 지정한 resultPage.jsp를 작성하여 오류의 종류를 나타내 보자.






    1. <%@page contentType="text/html;charset=euc-kr"
    2.      isErrorPage="true"
    3. %>
    4. <%
    5.      String message = exception.getMessage();
    6.      String objectMessage = exception.toString():
    7. %>
    8. 에러메시지 : <%=message%><p>
    9. 에러 클래스명과 에러 메시지: <%=objectMessage%>



  • 'IT개발 > JAVA & J2EE' 카테고리의 다른 글

    [j2ee] tomcat datasource  (0) 2017.12.15
    [j2ee] Spring Example Setting  (0) 2017.12.15
    [java] xml (ex)  (0) 2017.12.15
    [java] XPath (ex)  (0) 2017.12.15
    [java] XPath  (0) 2017.12.15
    Comments