프로그래밍언어/WEB

JSP - 내장 객체 - request , response

헬로월드! 2020. 4. 10. 00:29

01. JSP 내장 객체

 

JSP 내장객체란? JSP 내에서 선언하지 않고 사용하는 객체

- JSP 가 서블릿 형태로 자동 변환된 클래스의 메서드 _jspService( ) 내에 지역적으로 선언 되어 있음

- 보통 스크립트릿에서 사용함 

- 컨테이너를 통해 초기화되고 특정 기능이나 정보 제공

- 사용자 요청을 컨트롤하거나 페이지 간의 데이터 공유

 

즉, 내장객체는 해당 클래스의 메서드를 이용해 컨테이너가 제공하는 기능을 사용하는 것이다. 

 

  • JSP 내장 객체의 종류
참조 변수 이름 (내장 객체) 자바 클래스  주요 역할
request javax.servlet.http.HttpServletRequest HTML 폼 요소의 선택 값 등 사용자 입력 정보를 읽으려고 사용한다.
response javax.servlet.http.HttpServletResponse 사용자 요청에 대한 응답을 처리하려고 사용한다.
pageContext java.servlet.jsp.PageContext 현재 JSP 실행에 대한 context 정보를 참조하려고 사용한다.
session javax.servlet.http.HttpSession 클라이언트의 세션 정보를 처리하려고 사용한다.
application javax.servlet.ServletContext 웹 서버의 애플리케이션 처리와 관련된 정보를 참조하려고 사용한다.
out javax.servlet.jsp.JspWriter 사용자에게 전달하기 위한 output 스트림을 처리하려고 사용한다.
config javax.servlet.servletConfig 현재 JSP 의 초기화 환경을 처리하려고 사용한다.
page java.lang.Object 현재 JSP 의 클래스 정보를 보려고 사용한다.
exception java.lang.Throwable  예외 처리를 하려고 사용한다. 

 

 

  •  JSP 내장객체의 구조적 특징 

1) 내장 객체는 JSP를 변환한 클래스의 메서드 _jspService() 내에 지역적으로 선언 되어있음

        -> JSP에서 별도의 선언 없이 내장 객체 사용 가능

 

_jspService() 코드를 한 번 살펴보면 
메서드 매개변수인 request, response 와 지역변수로 선언된 pageContext, session, application, config, out, page 등을 볼 수 있다. 이러한 초기화 부분 이후에 사용자가 작성하는 코드가 위치하므로 해당 JSP 파일에서는 프로그램을 작성할 때 내장 객체를 별도로 선언하지 않아도 사용할 수 있는 것이다. 

 

 

2) exception 객체는 isErrorPage = “true” 인 경우만 추가됨

-> 내장 객체의 식별자와 중복이 되지 않도록 유의

 

3) 내장 객체는 생명주기 동안 자바 객체를 유지하는 기능 제공

-> 내장 객체는 각자 지정된 생명주기가 존재함

 

 

02. 내장 객체 - request

 

request : 사용자 요청(웹 클라이언트) 과 관련된 기능을 제공하는 내장 객체

주로 클라이언트에서 서버로 전달되는 정보를 처리하려고 사용한다. 

 

가장 대표적인 예로, 로그인 ) HTML 폼을 통해 입력된 값을 JSP 에서 가져올 때 사용한다. 

 

request 의 주요 메소드 

메서드 설명
getParameterNames() 현재 요청에 포함된 매개변수의 이름을 열거 형태로 넘겨줌
getParameter(name) 문자열 name 과 이름이 같은 매개변수의 값을 가져옴
getParameterValues(name) 문자열 name 과 이름이 같은 매개변수의 값을 배열 형태로 가져옴, checkbox, multiple list 에 주로 사용함
getCookies() 모든 쿠키 값을 javax.servelt.http.Cookie의 배열 형태로 가져옴
getMethod() 현재 요청이 GET 이나 POST 형태로 가져옴
getSession() 현재 세션 객체를 가져옴
getRemoteAddr() 클라이언트 IP 주소를 알려줌
getProtocol() 현재 서버의 프로토콜을 문자열 형태로 알려줌
setCharacterEncoding() 현재 JSP 로 전달되는 내용을 지정한 캐릭터셋으로 변환해줌 HTML 폼에서 한글 입력을 정상적으로 처리해주려면 반드시 필요함

쿠키란? 클라이언트와 서버 간의 연결이 유지되지 않는 웹 프로그램의 문제점을 보완하려고 클라이언트에 간단한 데이터를 저장하고 있다가 서버에서 요청이 오면 브라우저가 이를 제공하는 기술이다. 최근, 보안상의 문제로 널리 사용되진 않지만 서버가 클라이언트의 이전 사용 기록 등을 유지하기 위한 수단으로는 아직도 유용하다. 

03. 내장 객체 -response

 

웹 클라이언트로 보내는 사용자 응답과 관련된 기능을 제공 

-request 와 반대되는 개념 

-사용자 요청 (request)를 처리하고 응답을 다른 페이지로 전달하는 등의 기능을 제공

-javax.servlet.http.HttpServletResponse 객체에 대한 참조 변수

 

response 주요 메소드

메서드 설명
setContentType(type) 문자열 형태의 type 에 지정된 MINE TYPE 으로 contentType 을 설정한다.
setHeader(name, value) 문자열 name 의 이름으로 문자열 value의 값을 헤더로 세팅한다.
setDateHeader(name, date) 문자열 name 의 이름으로 date 에 설정된 밀리세컨드 시간 값을 헤더에 설정한다.
sendError(status, msg) 오류 코드를 세팅하고 메시지를 보낸다.
sendRedirect(url) 클라이언트 요청을 다른 페이지로 보낸다. 

 

 

 

http://tomcat.apache.org/tomcat-9.0-doc/index.html

 

Apache Tomcat 9 (9.0.33) - Documentation Index

This is the top-level entry point of the documentation bundle for the Apache Tomcat Servlet/JSP container. Apache Tomcat version 9.0 implements the Servlet 4.0 and JavaServer Pages 2.3 specifications from the Java Community Process, and includes many addit

tomcat.apache.org

내장객체에 대한 더 많은 정보!!