Jsp-내장객체
내장객체
- 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"); } %>
- 지정된 url로 요청을 재전송한다.
- void setHeader(name, value)
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 → 에러 메세지 + 에러 실체의 클래스명까지 반환
댓글남기기