Back-end/JAVA,Spring

[JSP]내장객체 - request /response/ session 객체

cheersHena 2019. 1. 8. 17:15
반응형


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


%>



2. Response 내장객체



웹 브라우저로 응답할 응답정보 가짐. 


웹브라우저에 보내는 응답 정보는 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(); // 세션아이디

%>








반응형