내장 객체란? [JSP 기초]

2022. 1. 17. 14:40·JAVA/JSP & Servlet

 

1. JSP 내장객체는?


JSP에는 기본적인 요청과 응답, 화면 출력 등을 수행할 수 있는 총 9가지의 내장객체가 있다. 

(request / resopnse / out / session / application / pageContext / page / config / exception)

웹은 클라이언트가 요청을 보내고 서버는 응답을 돌려주는데

내장객체는 이러한 과정에서 발생하는 정보를 쉽게 다룰 수 있게 도와준다.

 

 

 

 

2. 내장객체의 특징


  • JSP가 실행될 때 서블릿으로 변경되는데, JSP코드는 _jspService() 메소드에 모두 삽입됨
  • 별도의 객체가 필요 없이 내장객체의 메소드를 사용할 수 있음

 

 

 

 

3. 내장객체 소개


request, response, out, session, application 만 소개하도록 하겠다.

session 객체가 궁금하다면 https://myvelop.tistory.com/13?category=906898 참고

 

세션 트래킹 (Session Tracking) [JSP 기초]

1. 세션 트래킹이란? 세션이란 특정한 시점에서의 구간을 뜻하고, 세션 트래킹이란 요청된 세션을 찾아 주는 동작이다. 다시 말하자면, 세션 트래킹이란 사용했던 시점의 기록을 이용자에게 찾

myvelop.tistory.com

 

내장객체 타입 설명
request HttpServletRequest 클라이언트의 요청 정보를 저장
response HttpServletResponse 요청에 따른 응답 정보를 저장
out JspWriter 출력스트림으로 출력할 내용을 저장
exception Throwable 예외가 발생한 경우에 사용
application ServletContext 어플리케이션 관련 정보를 저장

 

 


 

 

  • Request

JSP에서 가장 많이 사용되는 객체다. 브라우저(클라이언트)가 전송한 요청 정보를 가지고 있는 객체이다.

html이나 jsp 파일의 html폼에 의해 입력된 값을 request객체를 통해 가져온다.

 

- request 메소드 소개

메소드 소개
getParameter("name") HTML폼 중 name="name" 값을 가지고 있는 폼의 매개변수 값을 가져온다.
getMethod() 현재 요청이 GET인지 POST인지를 알려준다. (전송방식을 알려줌)
getParameterNames() HTTP 요청 헤더에 포함된 모든 헤더 이름을 객체로 반환,
브라우저의 CPU 비트, 언어타입, 버전, 호스트, 쿠키 등의 정보를 가지고 있다.
getCharacterEncoding() 클라이언트가 요청한 정보를 전송할 때 사용한 인코딩 정보를 반환한다.
setCharacterEncoding("UTF-8") JSP로 전송된 내용을  변환할 때 "UTF-8"로 변환해줌. 한글입력에 필수!!
getRemoteAddr() 클라이언트의 IP 주소를 알려준다.
getQueryString() 쿼리스트링을 반환한다. (홈페이지주소 뒤에 붙은 쿼리스트링)
getServerPort() 서버의 포트번호를 반환한다.
getServerName() 서버의 이름을 반환한다. (ex) localhost
getProtocol() HTTP 프로토콜을 반환한다.(버전 정보)  (ex)HTTP/1.1
getRequestURL() 호스트를 포함한 전체주소를 반환한다.
getRequestURI() 호스트를 제외한 전체주소를 반환한다. 
getrRequestDispatcher("주소")
.forward(request, response)
"주소"로 포워드한다.

 

 

 

 

  • Response

request는 요청정보를 저장하는 역할이라면 response는 요청에 대한 응답을 웹 브라우저로 보내주는 역할을 한다.

많이 사용되는 기능으로는 리다이렉트(redirect)와 HTTP 헤더에 정보 추가하기 기능이다.

 

- response 메소드 소개

메소드 소개
sendRedirect("주소") 클라이언트의 요청을 "주소"페이지로 보낸다.
addDateHeader("name", value) "name"헤더의 날짜형 정보 value를 추가
addIntHeader("name", value) "name"헤더의 정수형 정보 value를 추가
addHeader("name", value) "name"헤더의 문자형 정보 value를 추가
setDateHeader("name", value) "name"헤더의 날짜형 정보 value를 지정
setIntHeader("name", value) "name"헤더의 정수형 정보 value를 지정
setHeader("name", value) "name"헤더의 문자형 정보 value를 지정
getHeader("name") "name"헤더 정보의 문자열을 가지고 옴
getStatus() HTTP 상태 코드를 반환한다.
sendError(status, "msg") HTTP상태코드 status를 지정하고 메시지 "msg"를 보냄
addCookie(Cookie cookie) 클라이언트 브라우저에 쿠키 정보를 삽입함

 

 

 

 

  • Out

앞에서 말했다시피 출력스트림으로 브라우저에 출력하기 위해 사용되는 객체이다.

<%= %>과 EL이 훨씬 편리하기에 쓸 일이 그렇게 많지는 않다.

하지만 스크립트릿 내의 변수를 브라우저로 출력해야한다면 out객체를 쓰는 것이 더 좋을 것이다.

 

 

- out메소드 소개

메소드 소개
clearBuffer() 버퍼를 비운다.
getBufferSize() 페이지에 설정된 버퍼의 크기를 가져온다. (디폴트값 = 8KB)
getRemaining() 사용하고 남은 버퍼의 크기를 가져온다.
print(내용) 변수나 문자열을 브라우저에 출력한다.
flush() 현재 버퍼에 담긴 내용을  강제로 출력하고 비운다. 출력스트림도 비워준다.

 

 

 

 

  • Exception

exception 내장 객체는 JSP 페이지에서 오류가 발생했을 때 예외 페이지를 처리할 수 있게 도와주는 객체이다.

 

 

-  exception 메소드 소개

메소드 소개
getMessage() 발생한 오류 메시지를 반환한다.
toString() 발생한 오류 클래스명과 메시지를 반환한다.
printStackTrace() 발생한 오류를 서버에 출력

 

 

 

 

  • Application

이 내장 객체는 어플리케이션 하나 당 하나씩만 생성되며 모든 JSP페이지에 접근할 수 있다.

웹 어플리케이션에 필요한 정보를 저장하고 서버의 정보, 물리적 경로 등을 가져올 수 있다.

일반적으로 톰캣서버와 동일한 수명(Life Cycle)을 가지고 있다.

web.xml과 함께 사용된다.

 

 

- application 메소드 소개

메소드 소개
getInitParameter("name") "name"에 해당하는 초기화 매개변수를 읽어온다.
getInitParameterNames() 초기 매개변수들의 설정 이름을 열거객체로 읽어온다.
getRealPath("path") "path"의 물리적경로를 반환한다.
getAttribute("name") "name"에 해당하는 값이 있으면 Object형태로 반환한다.

 

'JAVA/JSP & Servlet' 카테고리의 다른 글
  • JDBC 연결 - 오류 발생의 사례들
  • 한글 인코딩 문제 해결 - 한글이 깨질 때 [JSP]
  • JSTL 태그 사용 [JSP 기초]
  • JSTL 사용하는법 [JSP 기초 ]
gakko
gakko
좌충우돌 개발기
  • gakko
    MYVELOP 마이벨롭
    gakko
  • 전체
    오늘
    어제
    • 분류 전체보기 (203)
      • Spring (23)
        • Spring (10)
        • Spring Boot (7)
        • Spring Security (1)
        • Hibernate (4)
      • Test (3)
      • 끄적끄적 (6)
      • 활동 (35)
        • 부스트캠프 (23)
        • 동아리 (3)
        • 컨퍼런스 (3)
        • 글또 (5)
        • 오픈소스 컨트리뷰션 (1)
      • 디자인패턴 (0)
      • Git & GitHub (22)
        • Git (13)
        • Github Actions (1)
        • 오류해결 (5)
        • 기타(마크다운 등) (3)
      • 리눅스 (6)
        • 기초 (6)
        • 리눅스 서버 구축하기 (0)
      • Infra (2)
        • Docker (1)
        • Elastic Search (0)
        • Jenkins (1)
        • AWS (1)
      • MySQL (7)
        • 기초 (6)
        • Real MySQL (1)
      • 후기 (3)
        • Udemy 리뷰 (3)
      • CS (26)
        • 웹 기본지식 (0)
        • 자료구조 (13)
        • 운영체제 OS (12)
        • 데이터베이스 (1)
        • 시스템 프로그래밍 (0)
        • 기타 (0)
      • Tools (1)
        • 이클립스 (1)
        • IntelliJ (0)
      • 프로젝트 (1)
        • 모여모여(부스트캠프) (1)
      • JAVA (32)
        • Maven (6)
        • 오류해결 (11)
        • 자바 클래스&메소드 (1)
        • JSP & Servlet (12)
      • Javascript (5)
        • 기초 (3)
        • React (2)
      • Python (28)
        • 파이썬 함수 (9)
        • 알고리즘 문제풀이 (16)
        • 데이터 사이언스 (2)
        • 웹 크롤링 (1)
      • 단순정보전달글 저장소 (0)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • 우진님
  • 공지사항

  • 인기 글

  • 태그

    웹개발
    GitHub
    스프링부트
    알고리즘
    자바스크립트
    MySQL
    자바
    os
    파이썬
    부스트캠프
    Git
    오류해결
    부스트캠프 멤버십
    Spring
    jsp
    스프링
    Python
    부스트캠프 7기
    java
    운영체제
  • 최근 댓글

  • hELLO· Designed By정상우.v4.10.0
gakko
내장 객체란? [JSP 기초]
상단으로

티스토리툴바