posted by 구름너머 2006. 3. 29. 10:36
내장객체(request,response,pageContext,session,application,out....) | java2006/02/20 14:48
http://blog.naver.com/smilejwb/90001882178
내장객체
===================

-----------------
request 내장객체
-----------------
1. 클라이언트에서 서버로 보내는 요청을 담고있는 객체
2. 요청범위를 가지며 javax.servlet.ServletRequest 클래스의 한인스터스이다.
3. 컨테이너는 이객체를 _jspService()메소드의 한인자로서 JSP에게 넘겨준다.

--------------------
response 내장객체
--------------------
1.서버에서 클라이언트로의 응답을 담고 있다.
2. 페이지 범위를 가지며javax.servlet.ServletResponse 클래스의 한 인스턴스이다.
3. 이것은 JSP에 의해 생성된 , 클라이언트에 보내질 응답을 캡슐화 한것이다.
4. 이객체는 컨테이너에 의해 생성되어 _jspService()메소드의 한 인자로서 JSP에게
전달되며JSP는 그메소드안에서 적절하게 response 객체를 수정한다.
5. JSP에서는 클라이언트로의 출력 스트림에 버퍼링이 적용되므로 일단 어떠한 출력이
있은후에 HTTP상태코드나 응답헤더를 설정해도 오류가 생기지 않는다.

----------------------
pageContext 내장객체
----------------------
1. 페이지 범위를 가지며, javax.servlet.jsp.PageContext 클래스의 한인스턴스이다.
2. 해당 JSP Page의 페이지문맥을 캡슐화 한것
3. 다른 명시적 객체에 접근하는 여러가지 편리한 함수제공
4. pageContext객체는 현재 페이지의 제어권을 다른 페이지로 넘기는 방법을 제공한다. 5. 잠시 줄수도 있고 영구히 줄수도 있다. <jsp:include> <jsp:forward>등이 해당
JSP 컨테이너에 의해 실행되기전 자동으로 서블릿의 javax.servlet.jsp.PageContext
객체로 변환되어 해석된다.
6. Abstract java.lang.Object.getAttribute(java.lang.String name)
- “name”이라는 객체를 반환, 없을경우null반환
Abstract vod removeAttribute(java.lang.String name)
- “name” 이라는 이름의 객체를 삭제
Abstract vod setAttribute(java.lang.String name, java.lang.Object attribute)
- attribute에 해당하는 “name” 이라는 이름의 객체생성

--------------------
session 내장객체
--------------------
1. 세션범위를 가지며 , javax.servlet.http.HttpSession 객체의 한 인스턴스이다.
이것은 요청을 보낸 클라이언트에 대해 생성된 대표하며 HTTP 요청에 대해서만
유효하다.
2. 세션은 자동적으로 생성되므로 이 객체는 세션을 사용하지 않는 경우에도 유효하다.
유일한 예외는 page지시자의 session특성을 이용해서 session을 끈 경우인데,
그런경우 이객체를 참조하려고 하면 컴파일 시점에 오류가 생긴다.
3. JSP의 세션객체는 JSP컨테이너에 의해 서블릿의 javax.servlet.http.HttpSession
객체로 변환된다. 결국 JSP의 session객체와 HttpSession는 같은 것이다.
4. 메소드
getId() : session ID를 돌려줌
getCreateTime() : session이 생성된 시간을 돌려줌
getLastAccessedTime() : session이 마지막으로 액세스된 시간을 돌려준다.
getMaxInactiveInterval() : session이 유지되는 시간을 얻음(초단위)
setMaxInactiveInterval(time) : session이 유지되는 시간을 설정(초단위)
isNew() : 웹브라우저가 session을 생성한적인 있는지 확인 있다면 true를 넘겨줌
isNew() : 웹브라우저가 session을 생성한적인 있는지 확인 있다면 true를 넘겨줌
invalidate() : session 객체를 소멸시킨다. Session에 저장되어 있던 정보는 모두
삭제된다.

-------------------
application 내장객체
-------------------
1. application 범위를 가지며, javax.servlet.ServletContext 클래스의 한 인스턴스이다.
2. JSP가 실행되고 있는 문맥(서블릿문맥)을 대표한다.
3. JSP 컨테이너에 의해 자동으로서블릿의 ServletContext 객체로 변환된다.
4. session객체의 경우 각 사용자마다 하나의 세션을 공유하나, application 객체의
경우 각 서버내에 있는 모든 JSP File들은 하나의 application 객체를 공유한다.
5. application 객체의 getServerInfo() 메소드를 이용하여 컨테이너의 버전과 이름을
알수있다.


--------------------
out 내장객체
--------------------
1.페이지 범위를 가지며, javax.servlet.jsp.JspWriter 클래스의 한 인스턴스이다.
클라이언트에게 전달될 출력 스트림을 대표한다.
2.클라이언트에게 실제 출력을 보내는것은 PrintWriter이며 JspWriter는response
객체를 좀더 유용하게 하기위해서 PrintWriter에 버퍼링 기능을 추가한 것이다.
3.page 지시자의 buffer특성을 이용해서 버퍼크기를 변경도 가능하며 버퍼링 자체를
끌수도 있다.

--------------------
page 내장객체
--------------------
1. 페이지 범위를 가지며, java.lang.Object 클래스의 한 인스턴스이다.
2. JSP 페이지 자체를 가르키는 것으로 this참조 변수로서 접근이 가능하다.

--------------------
config 내장객체
--------------------
1. 페이지 범위를 가지며, javax.servlet.ServletConfig 객체의 한 인스턴스이다.
서블릿설정을 대표한다.
2. JSP페이지가 JSP 컨테이너에 의해 초기화될때 전달받는 객체이다.
3. getInitParameterNames() : 모든 초기화 파라미터를 Enumeration 형태의
객체형식으로 가져온다.
4. getInitParameter(String name) : 지정된 name 초기화 파라미터를 가져온다.


--------------------
exception 내장객체
--------------------
1. 페이지 범위를 가지며, java.lang.Throwable클래스의 한 인스턴스이다.
2. 에러페이지(isErrorPage=true)안에서만 사용이 가능하다.
3. 대부분의 컨테이너들은 예외를 request객체의 한 특성으로 포함시켜
(ServletRequest.setAttribute() 메소드를 이용)에러페이지에게 전달하고
에러페이지 에서는 request.getAttribute(String name) 메소드를 이용하여 예외를
뽑아내는 방식을 취하고 있다.