JSP 내장객체란?
JSP 페이지 내에서 제공하는 특수한 레퍼런스 타입의 변수
JSP 페이지에서 사용할 수 있는 특수레퍼런스 타입 변수가 아무런 객체 선언/생성 없이 사용할 수 있는 이유는 JSP페이지가 서블릿으로 변환될 때, JSP컨테이너가 자동적으로 제공하기 때문이다.
JSP 페이지 내장 객체
내장 객체 | 리턴 타입(Return Type) | 설명 |
request | javax.servlet.http.HttpServletRequest | 웹 브라우저의 요청 정보를 저장하고 있는 객체 |
response | javax.servlet.http.HttpServletResponse | 웹 브라우저의 요청에 대한 응답 정보를 저장하고 있는 객체 |
out | javax.servlet.jsp.jsp.jspWriter | JSP 페이지에 출력할 내용을 가지고 있는 출력 스트림 객체이다. |
session | javax.servlet.http.HttpSession | 하나의 웹 브라우저의 정보를 유지하기 위한 세션 정보를 저장하고 있는 객체 |
application | javax.servlet.ServletContext | 웹 어플리케이션 Context의 정보를 저장하고 있는 객체 |
pageContext | javax.servlet.jsp.PageContext | JSP 페이지에 대한 정보를 저장하고 있는 객체 |
page | java.lang.Object | JSP 페이지를 구현한 자바 클래스 객체 |
config | javax.servlet.ServletConfig | JSP 페이지에 대한 설정 정보를 저장하고 있는 객체 |
exception | java.lang.Throwable | JSP 페이지서 예외가 발생한 경우에 사용되는 객체 |
내장객체의 속성 attribute 관련 매소드
메소드 | 리턴 타입 | 설명 |
setAttribute(String key, Object value) | void | 해당 내장 객체의 속성(attribute)값을 설정하는 메소드로, 속성명에 해당하는 key 매개 변수에, 속성값에 해당하는 value 매개 변수의 값을 지정한다. |
getAttributeNames() | java.util.Enumeration | 해당 내장 객체의 속성(attribute)명을 읽어오는 메소드로, 모든 속성의 이름을 얻어낸다. |
getAttribute(String key) | Object | 해당 내장 객체의 속성(attribute)명을 읽어오는 메소드로, 주어진 key 매개 변수에 해당하는 속성명의 값을 얻어낸다. |
removeAttribute(String key) | void | 해당 내장 객체의 속성(attribute)을 제거하는 메소드로, 주어진 key 매개 변수에 해당하는 속성명을 제거한다. |
대표적인 내장객체 request /response/ session
1. Request 내장객체
웹 브라우저에서 JSP페이지로 전달되는 정보의 모임.
웹 컨테이너는 요청된 http 메시지 통해 HttpServletRequest 객체를 얻고 이로부터 사용자의 요구사항을 요청받는다.
request 객체의 요청 파라미터 관련 메소드.
메소드 | 설명 |
String getParameter(name) | 파라미터 변수 name에 저장된 변수를 얻어내는 메소드로, 이때 변수의 값은 String으로 리턴된다. |
String[] getParameterValues(name) | 파라미터 변수 name에 저장된 모든 변수값을 얻어내는 메소드로, 이때 변수의 값은 String 배열로 리턴된다. checkbox에서 주로 사용된다. |
Enumeration getParameterNames() | 요청에 의해 넘어오는 모든 파라미터 변수를 java.util.Enumeration 타입으로 리턴한다. |
request 객체의 웹 브라우저, 웹 서버 및 요청 헤더 정보 관련 메소드.
메소드 | 설명 |
String getProtocol() | 웹 서버로 요청 시, 사용 중인 프로토콜을 리턴한다. |
String getServerName() | 웹 서버로 요청 시, 서버의 도메인 이름을 리턴한다. |
String getMethod() | 웹 서버로 요청 시, 요청에 사용된 요청 방식(GET, POST, PUT 등)을 리턴한다. |
String getQueryString() | 웹 서버로 요청 시, 요청에 사용된 QueryString을 리턴한다. |
String getRequestURI() | 웹 서버로 요청 시, 요청에 사용된 URL 로부터 URI 값을 리턴한다. |
String getRemoteAddr() | 웹 서버로 정보를 요청한 웹 브라우저의 IP주소를 리턴한다. |
int getServerPort() | 웹 서버로 요청 시, 서버의 Port번호를 리턴한다. |
String getContextPath() | 해당 JSP 페이지가 속한 웹 어플리케이션의 콘텍스트 경로를 리턴한다. |
String getHeader(name) | 웹 서버로 요청 시, HTTP 요청 헤더(header)의 헤더 이름인 name에 해당하는 속성값을 리턴한다. |
Enumeration getHeaderNames() | 웹 서버로 요청 시, HTTP 요청 헤더(header)에 있는 모든 헤더 이름을 리턴한다. |
EX)
<%
String name = request.getParameter("name"); // "이혜수"
String protocol = request.getProtocol(); // HTTP/1.1
String serverName = request.getServerName(); // localhost
String method = request.getMethod(); // GET
String contextPath = request.getContextPath(); // hyesuelee/project
String uri = request.getRequestURI(); // /hyesuelee/project/jsp/requestTest.jsp
String remoteAddr = request.getRemoteAddr(); // 127.0.0.1
%>
웹 브라우저로 응답할 응답정보 가짐.
웹브라우저에 보내는 응답 정보는 HttpServletResponse 객체 사용
response 객체는 응답정보와 관련하여 주로 헤더정보 입력 , 리다이렉트 하기 등의 기능을 제공
response 내장 객체에서 자주 사용되는 메소드.
메소드 | 설명 |
void setHeader(name, value) | 헤더 정보의 값을 수정하는 메소드로, name에 해당하는 헤더 정보를 value값으로 설정한다. |
void setContentType(type) | 웹 브라우저의 요청의 결과로 보일 페이지의 contentType을 설정한다. |
void sendRedirect(url) | 페이지를 이동시키는 메소드로, url로 주어진 페이지로 제어가 이동한다. |
ex)
<%
response.sendRedirect("responseRedirectTest.jsp");
// responseRedirectTest.jsp 로 리다이렉트 시킨다.
%>
4. Session 내장객체
웹 브라우저 요청시, 요청한 웹 브라우저에 관한 정보를 저장 및 관리하는 내장객체.
javax.servlet.http.HttpSession 객체 타입으로, JSP 에서는 session객체로 사용됨.
session 객체는 웹 브라우저(클라이언트) 당 1 개가 할당된다.
다른 내장 객체들은 물론 session객체도 별도의 생성 없이 암묵적으로 사용된다.
page 디렉티브의 session 속성이 'true'로 설정(default) 되어야 한다.
session 내장객체 메소드.
메소드 | 설명 |
String getId() | 해당 웹 브라우저에 대한 고유한 세션 ID를 리턴한다. |
long getCreationTime() | 해당 세션이 생성된 시간을 리턴한다. |
long getLastAccessedTime() | 웹 브라우저의 요청이 시도된 마지막 접근시간을 리턴한다. |
void setMaxInactiveInterval(time) | 해당 세션을 유지할 시간을 초단위로 설정한다. |
int getMaxInactiveInterval() | 기본값은 30분으로 setMaxInactiveInterval(time) 로 지정된 값을 리턴한다. |
boolean isNew() | 현재의 웹 브라우저가 새로 부른 즉, 새로 생성된 세션의 경우 true 값을 리턴한다. |
void invalidate() | 현재 정보의 유지로 사용 시, 설정된 세션의 속성 값을 모두 제거한다. 주로 세션을 무효화 시킬때 사용 |
ex)
<%
String sessionId = session.getId(); // 세션아이디
%>
'Back-end > JAVA,Spring' 카테고리의 다른 글
[java spring] ModelAndView 모델앤뷰 / ViewResolver뷰리졸버 란 ? (0) | 2019.04.14 |
---|---|
[Spring Boot] 스프링 부트 MVC 기본 환경설정 (0) | 2019.03.17 |
Java static 이란? 개념/사용법 (0) | 2018.11.19 |
XML 이란? DTD 와 스키마 (0) | 2018.11.19 |
MAVEN 메이븐이란? (0) | 2018.11.08 |