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]