본문 바로가기
JSP Servlet

JSP 내장 객체

by noddu 2023. 9. 22.
728x90
반응형

 

 

내장 객체란?
  • JSP 페이지가 서블릿으로 변환될 때 JSP 컨테이너가 자동으로 생성해서 제공해주는 객체
  • 표현식(expression)과 스크립트릿(scriptlet)에서 프로그램을 편리하게 할 수 있습니다.

 

 

내장 객체의 영역

내장 객체의 영역은 다음과 같습니다.

 

 

내장 객체 종류

        - 페이지 입 · 출력에 관련된 객체

        - JSP 페이지가 처리되는 동안의 외부 환경 정보를 제공하는 객체

        - JSP 페이지에 관련된 객체

        - 에러에 관련된 객체

 

객체 변수 구분 영역 내용
request interface request 클라이언트의 HTTP 요청정보를 저장한 객체
response interface page HTTP 요청에 대한 응답정보를 저장한 객체
pageContext class page 응답 페이지 실행에 필요한 컨텍스트 정보를 저장한 객체
session interface session 클라이언트의 세션 정보를 저장한 객체
application interface application 동일한 어플리케이션의 컨텍스트 정보를 저장한 객체
config interface page 해당 JSP 페이지가 변환된 서블릿의 설정 정보를 저장한 객체
out class page 응답 페이지 전송을 위한 출력 스트림 객체
page class page 해당 JSP 페이지가 변환된 서블릿 객체 (this와 같은 역할)
exception interface page JSP 페이지의 서블릿 실행 시 처리하지 못한 예외 객체

 

 

속성 조작에 관련된 메소드
  • request - 요청 정보나 query 문자열을 추출하는 용도
  • response - 응답 헤더 설정이나 Cookie 설정 용도로 사용할 수 있음
이름 내용
setAttribute(key,value) 주어진 key에 속성값을 설정
getAttribute(key) 주어진 key에 설정된 값 가져오기
getAttributeNames() 현재 객체에 관련된 모든 속성의 이름 가져오기
removeAttribute(key) 주어진 key에 설정된 속성값을 제거

 

 

request와 response 내장 객체
<%@ page language="java" contentType="text/html;charset=EUC-KR" pageEncoding="EUC-KR"%>
<%
response.setHeader("Pragma", "no-cache");
if (request.getProtocol().equals("HTTP/1.1")) {
	response.setHeader("Cache-Control", "no-cache");  // 응답 헤더
}
%>
<%= request.getMethod() %>	// 요청 메소드(GET or POST)
<%= request.getRequestURI() %>	// 요청 URI
...

여러 요청 정보를 추출할 수 있고,

응답된 결과에 대한 캐시 처리를 하지 않도록 응답 헤더를 설정했습니다

 

 

out 객체
  • 대부분의 경우 출력 버퍼에 대해서 신경 쓰지 않고 JSP 페이지를 작성
  • 버퍼 사이즈, flush가 되었는지에 따라 수행결과가 달라짐
<%
out.print("이 부분은 아래 clearBuffer()로 인해 출력되지 않습니다");
out.clearBuffer();
out.print("출력 버퍼의 크기 :" + out.getBufferSize());
out.println("Hello World!");
out.print("사용되지 않은 버퍼의 크기 :" +out.getRemaining());

out.flush();
out.print("flush후 사용되지 않은 버퍼의 크기 :"+out.getRemaining());
%>

출력과, 출력에 관한 정보를 추출할 수 있습니다

 

 

session 객체
  • HttpSession 인터페이스의 객체를 구현한 인스턴스
  • page 지시자를 사용해 session="false"를 지정한 경우라면 HttpSession 객체를 직접 생성 후 사용, 아니라면 바로 사용

 

session.html

<form action=session.jsp method=post>
ID : <input type="text" name="user_name"> <p>
<input type="submit" value="인증">

form 요청을 보냅니다

 

session.jsp

<%
String name = request.getParameter("user_name");  // form의 user_name
session.setAttribute("member_id", name);

session.getAttribute("member_id");	// 입력한 user_name
%>

setAttribute()로 받아온 정보를 저장하고,

getAttibute()로 다시 가져온 정보로 사용자 인증을 처리할 수 있습니다.

 

 

application 객체
  • 해당 JSP 페이지가 포함된 웹 어플리케이션 자체
  • ServletContext 객체는 서버 기동 시 웹 어플리케이션 당 하나만 생성
서버 명 : <%= application.getServerInfo() %><BR>
지원되는 Servlet API 버전 : <%= application.getMajorVersion() %>

 

 

pageContext
  • 다른 내장 객체를 액세스할 수 있게 하는 객체
  • 어떤 내부 객체의 속성을 얻어 낼 수 있는 메소드를 가짐
  • JSP 페이지마다 생성된 구현 서블릿 객체 단위로 존재
  • pageContext 객체의 범위는 자신의 서블릿 객체 내부로 제한

 

반응형

'JSP Servlet' 카테고리의 다른 글

회원인증  (0) 2021.02.16
MyBatis API 활용  (0) 2021.02.08
비동기식페이지2(JSON , Ajax)  (0) 2021.02.08
비동기식페이지(JQuery,Ajax,JSON)  (0) 2021.02.08
회원관리 MVC2+HandlerMapping+JSTL  (0) 2021.02.08