JSP 내장객체와 주요 매서드

2025. 3. 8. 21:53·개발/JSP

JSP 내장 객체(Implicit Objects)는 JSP 컨테이너가 JSP 페이지를 서블릿으로 변환할 때 자동으로 생성하여 제공하는 객체. 

JSP 내장 객체는 스크립틀릿(<% ... %>), 표현식(<%= ... %>), 선언문(<%! ... %>) 내에서 사용할 수 있다.

내장 객체타입설명
request HttpServletRequest 클라이언트의 HTTP 요청 정보를 담고 있는 객체.
요청 파라미터, 헤더, 쿠키, 클라이언트 IP 주소, 요청 메서드(GET, POST 등), 세션 등에 접근할 수 있다.
response HttpServletResponse 클라이언트에 대한 HTTP 응답을 제어하는 객체.
응답 헤더 설정, 상태 코드 설정, 리다이렉트, 쿠키 추가 등에 사용.
out JspWriter JSP 페이지의 출력 스트림.
out.print(), out.println() 등을 사용하여 클라이언트에 데이터를 출력. 표현식(<%= ... %>)은 내부적으로 out.print()를 호출.
session HttpSession 클라이언트별 세션 정보를 관리하는 객체.
세션 속성(attribute)을 저장, 조회, 제거할 수 있다. 세션은 웹 브라우저가 열려 있는 동안 유지.
application ServletContext 웹 애플리케이션 전체의 컨텍스트 정보를 담고 있는 객체.
애플리케이션 전체에서 공유되는 속성(attribute)을 저장, 조회, 제거할 수 있다. 웹 애플리케이션 시작 시 생성되고 종료 시 소멸됨.
pageContext PageContext 현재 JSP 페이지의 실행 컨텍스트 정보를 제공하는 객체.
다른 내장 객체에 접근하거나, 페이지, 요청, 세션, 애플리케이션 스코프의 속성(attribute)을 관리하고, 페이지 이동(forward, include) 등을 수행할 수 있다.
config ServletConfig JSP 페이지(서블릿)의 초기화 파라미터(web.xml에 설정)를 가져올 수 있는 객체.
page java.lang.Object 현재 JSP 페이지를 처리하는 서블릿 인스턴스 자신을 가리킴. (Java의 this와 유사). 일반적으로 직접 사용되는 경우는 드물다.
exception java.lang.Throwable 예외 처리 페이지(<%@ page isErrorPage="true" %>)에서만 사용 가능한 객체. 발생한 예외 객체를 참조.
 

주요 내장 객체의 메서드:

  • request:
    • getParameter(String name): 요청 파라미터 값을 가져온다.
    • getParameterValues(String name): 동일한 이름의 여러 파라미터 값을 배열로 가져온다.
    • setAttribute(String name, Object value): 요청 속성(attribute)을 설정.
    • getAttribute(String name): 요청 속성 값을 가져온다.
    • getSession(): 현재 세션 객체를 가져온다.
    • getRemoteAddr(): 클라이언트의 IP 주소를 가져온다.
    • getMethod(): HTTP 요청 메서드(GET, POST 등)를 가져온다.
    • getHeader(String name): HTTP 요청 헤더 값을 가져온다.
    • getCookies(): 클라이언트가 보낸 쿠키 배열을 가져온다.
  • response:
    • setContentType(String type): 응답의 MIME 타입과 문자 인코딩을 설정.
    • setHeader(String name, String value): 응답 헤더를 설정.
    • sendRedirect(String location): 지정된 URL로 리다이렉트.
    • addCookie(Cookie cookie): 응답에 쿠키를 추가.
    • setStatus(int sc) : HTTP 응답 상태 코드를 설정.
  • out:
    • print(String s): 문자열을 출력.
    • println(String s): 문자열을 출력하고 줄바꿈.
    • clearBuffer(): 출력 버퍼를 비움.
  • session:
    • setAttribute(String name, Object value): 세션 속성을 설정.
    • getAttribute(String name): 세션 속성 값을 가져온다.
    • removeAttribute(String name): 세션 속성을 제거.
    • invalidate(): 세션을 무효화 (로그아웃).
    • getId(): 세션 ID를 가져온다.
    • isNew(): 현재 요청에서 세션이 새로 생성되었는지 확인.
    • setMaxInactiveInterval(int interval): 세션의 유효 시간(초)을 설정.
  • application:
    • setAttribute(String name, Object value): 애플리케이션 속성을 설정.
    • getAttribute(String name): 애플리케이션 속성 값을 가져온다.
    • removeAttribute(String name): 애플리케이션 속성을 제거.
    • getRealPath(String path): 웹 애플리케이션 내 파일의 실제 경로를 가져온다.
    • getContextPath(): 웹 애플리케이션의 컨텍스트 경로를 가져온다.
    • getResourceAsStream(String path): 웹 애플리케이션 내의 리소스를 InputStream 형태로 가져온다.
  • pageContext:
    • getRequest(), getResponse(), getSession(), getOut(), getApplication(), getConfig(), getPage(), getException(): 다른 내장 객체에 접근.
    • setAttribute(String name, Object value, int scope): 지정된 스코프(page, request, session, application)에 속성을 설정.
    • getAttribute(String name, int scope): 지정된 스코프에서 속성 값을 가져온다.
    • removeAttribute(String name, int scope): 지정된 스코프에서 속성을 제거.
    • findAttribute(String name): page, request, session, application 순서로 속성을 검색하여 가장 먼저 찾은 값을 반환환.
    • forward(String page): 지정된 페이지로 포워딩.
    • include(String page): 지정된 페이지를 포함.
    • handlePageException(Exception e): 예외를 처리.

예시:

Java
 
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>JSP Implicit Objects</title>
</head>
<body>
  <h1>JSP 내장 객체 예제</h1>

  <p>클라이언트 IP 주소: <%= request.getRemoteAddr() %></p>
  <p>요청 메서드: <%= request.getMethod() %></p>

  <%
    // 세션에 속성 저장
    session.setAttribute("username", "testuser");
  %>

  <p>세션 ID: <%= session.getId() %></p>
  <p>세션에 저장된 사용자 이름: <%= session.getAttribute("username") %></p>

  <%
    // 애플리케이션에 속성 저장 (모든 사용자, 모든 페이지에서 공유)
    application.setAttribute("appVersion", "1.0");
  %>
    <p>애플리케이션 버전: <%= application.getAttribute("appVersion") %></p>
    <p> 컨텍스트 이름: <%= application.getContextPath()%></p>
</body>
</html>

 

저작자표시 비영리 변경금지 (새창열림)

'개발 > JSP' 카테고리의 다른 글

<%@ include %> vs <jsp:include >  (0) 2025.03.08
JSP 액션태그  (0) 2025.03.08
JSP 지시어와 스크립트 요소  (0) 2025.03.08
JSP는 어떻게 작동할까?  (0) 2025.03.08
JSP - EL(Expression Language)  (0) 2025.03.05
'개발/JSP' 카테고리의 다른 글
  • <%@ include %> vs <jsp:include >
  • JSP 액션태그
  • JSP 지시어와 스크립트 요소
  • JSP는 어떻게 작동할까?
함수형 인간
함수형 인간
잘 까먹는 개발자의 두뇌 확장 장치
  • 함수형 인간
    개발 기록 노트
    함수형 인간
  • 글쓰기 관리
  • 전체
    오늘
    어제
    • 글 목록 (84)
      • 기타 (1)
      • 개발 (82)
        • Java (6)
        • Javascript (1)
        • Spring (20)
        • jQuery (0)
        • Git (0)
        • servlet (11)
        • JSP (6)
        • HTML (0)
        • CSS (10)
        • SQL (9)
        • JSTL (3)
        • Mybatis (4)
        • Design Patterns (0)
        • HTTP (2)
        • Devtools (0)
        • IntelliJ (5)
        • JDBC (1)
        • Lombok (3)
        • Logging (1)
      • 책 리뷰 (0)
  • hELLO· Designed By정상우.v4.10.3
함수형 인간
JSP 내장객체와 주요 매서드
상단으로

티스토리툴바