Jsp-내장객체

2 분 소요

내장객체

  • JSP컨테이너가 생성하고 제공하는 객체 - 사용자가 따로 생성하고 선언안해도 걍 쓸 수 있음.
  • 9개의 내장객체가 있으며 분류는 4개로 나뉘어짐.
    • jsp페이지 입출력 관련 - request, response, out
    • jsp페이지 외부 환경 정보 제공 - session, application, pageContext
    • jsp페이지 서블릿 관련 - page, config
    • jsp페이지 예외 관련 - exception

request 객체

  • 브라우저에서 jsp페이지로 전달되는 데이터의 묶음
  • 메소드
    • html문서에서 form태그 안에 있는 애들을 주로 대상으로 한다.
    • String getParameter(name) → name의 value를 반환 → 이게 제일 많이 쓰임
    • String[] getParameterValues(name) → name의 value를 반환
    • getParameterNames(name) → Enum타입으로 반환
    • void setCharacterEncoding(“euc-kr”)

response 객체

  • 요청을 시도한 클라이언트로 전송할 응답을 나타내는 데이터의 묶음
  • 메소드
    • void setHeader(name, value)
      • HTTP응답 Header 설정을 위한 것임.
      • 브라우저가 캐시에 저장하지 않고 매번 새로운 요청을 통해 서버로부터 전송받도록 설정할 수 있게함.
    • void sendRedirect(url)
      • 지정된 url로 요청을 재전송한다.
          <% 
        response.sendRedirect("response02.jsp"); 
          %>
          <% 
        response.setHeader("Pragma", "no-cache");
        if(request.getProtocol().equals("HTTP/1.1")) {
          response.setHeader("Cache-Control", "no-store");                  
        }
          %>
        

out 객체

  • jsp페이지의 결과를 클라이언트에 전송해 주는 출력 스트림을 나타낸다.
  • 출력 버퍼에 대해서도 함께 제공한다.
  • 메소드
    • boolean isAutoFlush() → 출력버퍼가 다 채워져 자동으로 flush했을 경우 true반환
    • int getBufferSize()
    • int getRemaining()
    • void clearBuffer() → 현재 출력 버퍼에 저장된 내용을 취소한다.
    • String println()
    • void flush() → 현재 출력 버퍼의 내용을 flush하여 클라이언트로 전송한다.
    • void close() → 출력 버퍼의 내용을 flush하고 스트림을 닫는다.
    <% 
      int totoalBuffer = out.getBufferSize();
      int remainBuffer = out.getRemaining();
      int useBuffer = totoalBuffer - remainBuffer;
    %>
    <h1>Out Example</h1>
    <b>현재 페이지의 Buffer상태</b> <br>
    출력 Buffer의 전체 크기 : <%= totoalBuffer %>byte<br>
    출력 Buffer의 사용한 크기 : <%= useBuffer %>byte<br>
    출력 Buffer의 남아있는 크기 : <%= remainBuffer %>byte<br>

session 객체

  • 클라이언트 요청에 대한 context 정보의 세션과 관련된 데이터를 저장하고 관리한다.
  • 여기서 세션관리란?
    • 웹브라우저에서 서버가 클라이언트의 정보를 저장하고, 요청을 시도한 특정 클라이언트를 다른 클라이언트와 구별하여 각각의 클라이언트에 대한 정보를 관리하는 것을 말함. ex) sw마에스트로에서 참가지원서 내 클라이언트로 저장할 수 있었던 것.
  • page지시자에 session속성이 true로 지정이 되어있어야만 사용가능
  • 메소드
    • String getId() → session 이름 반환
    • void setMaxInactiveInterval() → session을 유지할 시간(초단위) 설정
    • int getMaxInactiveInterval() → session을 유지할 시간 반환
    • void setAttribute(“idKey”, id) → 입력받은 id를 idKey로 session객체에 연결설정
    • Object getAttribute(“idKey”) → 위의 id값을 Object형ㅌ로 반환
    • void invalidate() → session 객체를 종료시킴
        session01.jsp
        <% 
            request.setCharacterEncoding("euc-kr");
                  
            String id = request.getParameter("id");
            String password = request.getParameter("password");
                          
            session.setAttribute("idKey", id);
            session.setMaxInactiveInterval(10);        
        %>
        session02.jsp
        <% 
            request.setCharacterEncoding("euc-kr");
          
            String season = request.getParameter("season");
            String fruit = request.getParameter("fruit");
                  
            String id = (String)session.getAttribute("idKey"); -> Object를 String으로 변환
            String sessionId = session.getId();
            int time = session.getMaxInactiveInterval();
        %>
      

application 객체

  • 어플리케이션이 실행되는 서버의 정보와 자원에 대한 정보를 얻어내고 이벤트로그와 관련된 기능을 제공한다.
  • 메소드
    • String getServerInfo() → 서블릿컨테이너의 이름과 버전 반환
    • String getMimeType(fileName)
    • String getRealPath(url) → url을 로컬파일 시스템으로 변경하여 반환
    • void log(message) → 로그파일에 message를 기록
            <% 
                    String server = application.getServerInfo();
                    String mime = application.getMimeType("session01.html");
                    String path = application.getRealPath("/");
                    application.log("application 내부객체 로그 테스트");
                  
            %>
            <h1>Application Example</h1>
                    서블릿 컨테이너의 이름과 버전 : <%= server %> </p>
                    session01.html의 mime타입 : <%= mime %></p>
                    로컬파일 시스템 경호 : <%= path %></p>
      

pageContext 객체

  • 이 객체를 통해서 다른 내부 객체에 접근할 수 있다.
  • 내장객체는 총 9개니까 이 객체의 메소드는 8개겠지.

page 객체

  • 변환된 서블릿객체 자체를 나타낸다.
  • jsp페이지 그 자체를 나타내는 객체이기 때문에 키워드는 this로 자기 자신을 참조한다.
      <%@page info="Copyright 2019 by GreatLaboratory.co.kr" language="java"
              contentType="text/html; charset=EUC-KR" pageEncoding="EUC-KR"
              import="java.util.*" session="true" autoFlush="true"
              isThreadSafe="true" buffer="16kb" trimDirectiveWhitespaces="true"%>
      <body>
              <div>페이지 정보는 ?</div>
              <%=this.getServletInfo()%><br>   
      </body>   
    

config 객체

  • 서블릿 초기 정보 설정을 위한 객체이다.

exception 객체

  • jsp페이지에서 발생한 예외를 처리하는 페이지를 지정한 경우 에러 페이지에 전달되는 객체이다.
  • 메소드
    • String getMessage() → 에러 메세지 반환
    • String toString → 에러 메세지 + 에러 실체의 클래스명까지 반환

카테고리:

업데이트:

댓글남기기