1.  JSP/Servlet 의 내장 객체

 내장 객체

리턴 타입(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 페이지서 예외가 발생한 경우에 사용되는 객체 



・request

   -  요청시마다 만들어지는 객체

   -  attribute, parameter를 가지고 있음

 

  

・application

   -  톰캣구동시 webcontext별로 만들어지는 객체

   -  톰캣중지시 없어지는 객체 LifeScope가 가장 길다

   -  서블릿 API ver 정보, 실제 경로

   -  parameter, attribute 가지고 있음

 


・pageContext

   -  현재 실행중인 JSP의 정보를 담고있다. 

   -  가장 일찍 객체가 사라진다 LifeScope가 가장 짧다

   -  JAVA SE : Object, Class, File

   -  JAVA EE : ServletContext, PageContext, EJBContext

   -  attribute 가지고 있음

   -  out / request / response / session 정보 얻는게 가능

      ex) pageContext.getOut();

            pageContext.getRequest();

            pageContext.getSession();


・session

   -  클라이언트별로 만들어지는 객체

   -  클라이언트 단에서 새로운 요청이 있어도 Session객체에 속성들은 그대로 유지된다.

   -  attribute가 있음



2. attribute와 parameter 메소드의 차이점


ⅰ. 간단히 요약


-파라미터에는 String만 사용가능

-애트리뷰트에는 다른 String외에 Object, Array 등 다양한 데이터 입력이 가능

-파라미터는 request에만 저장이 가능하고, 애트리뷰트는 session, context 등에도 저장이 가능

-애트리뷰트가 좀더 유연함

-파라미터는 HTML(클라이언트)의 form 데이터 전송시 key/value 쌍으로 사용된다.



ⅱ. 자세한 비교


・ 속성이란?

  - ServletContext, HttpServletRequest, HttpServletResponse, HttpSession 객체 중 하나에 설정해 놓는 객체(Object)이다. 



・ 내장 객체의 속성(attribute)과 관련된 메소드(http://hyeonstorage.tistory.com/78 [개발이 하고 싶어요])

메소드 

리턴 타입 

설명 

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 매개 변수에 해당하는 속성명을 제거한다. 



・  속성과 파라미터의 차이점

 

속성 

 파라미터 

 타입

 Application / Context

 Request

 Session 

 Application / context 초기화 파라미터

 Request 파라미터

 Servlet 초기화 파라미터

 설정 메소드

 setAttribute(String name, Object value)

 애플리케이션과 서블릿의 초기화 파라미터 값은 런타임 시 설정할 수 없습니다. 오로지 DD(Web.xml)에서만 가능합니다. 기억나죠? (Request 파라미터를 가지고, 좀 어렵긴 하지만 쿼리 스트링을 설정할 수 있습니다. 

 리턴 타입

 Object

 String

 참조 메소드

 getAttribute(String name)

 getInitParameter(String name) 





출처: http://yooooooo7se.tistory.com/63 [Learning Machine]











+ Recent posts