목차 웹프로그래밍 내장객체의개요 내장객체의종류 11 주차 7 장 JSP 페이지의내장객체와영역 2 내장객체 (Implicit Object) JSP 페이지에서제공하는특수한레퍼런스타입의변수사용하고자하는변수와메소드에접근선언과객체생성없이사용할수있음 내장객체 내장객체 request response out session application pagecontext page config 설명웹브라우저의요청정보웹브라우저의요청에대한응답정보 JSP 페이지출력할출력스트림객체하나의웹브라우저내정보유지를위한세션정보웹애플리케이션 Context의정보저장 JSP 페이지대한정보 JSP 페이지를구현한자바클래스객체 JSP 페이지대한설정정보 3 exception JSP 페이지에서예외가 4 발생한경우에사용되는객체
내장객체 request, session, application, pagecontext setattribute() / getattribute() 메소드제공 속성값을저장하고읽을수있는메소드 내장객체를사용해서 JSP 페이지들간정보를주고받을수있게해줌 내장객체 : 속성 (attribute) 관련된메소드 메소드 : 리턴타입 setattribute(string key, Object value) 해당내장객체의속성값설정하는메소드 ( 속성명 (key) 에속성값 (value) 값지정 ) getattributenames() 해당내장객체의속성명을읽어오는메소드 ( 모든속성의이름을얻어냄 ) getattribute(string key) 해당내장객체의속성명을읽어오는메소드 (key 에해당하는속성값얻어냄 ) removeattribute(string key) 해당내장객체의속성을제거하는메소드 (key 에해당하는속성명제거 ) 5 6 request 내장객체 웹브라우저에서 JSP 페이지로전달되는정보의모임 request 내장객체 웹브라우저 / 웹서버 / 요청헤더정보가져올때사용 사용자의요구사항을얻어내는요청메소드 메소드 : 리턴타입 getparameter(name) :String getparametervalues(name) :String[] getparameternames() :Enumeration 메소드 : 리턴타입 getprotocol() : String getservername() : String getmethod() : String getquerystring() : String getremotehost() : String getremoteaddr() : String getserverport() : int getcontextpath() :String 사용중인프로토콜리턴서버의도메인이름리턴요청에사용된요청방식 (GET, POST, PUT등 ) 리턴요청에사용된 QueryString 리턴요청한웹브라우저의호스트이름리턴요청한웹브라우저의 IP주소리턴서버의 Port번호리턴해당 JSP가속한웹애플리케이션의컨텍스트경로리턴 getheader(name) :String HTTP 요청헤더이름속성값리턴 7 getheadernames():enumeration HTTP 요청헤더에있는모든헤더이름리턴 8
response 객체 웹브라우저로응답할응답정보가짐 응답정보와관련하여주로헤더정보입력, 리다이렉트하기등의기능제공 헤더정보입력과리다이렉트에관련된메소드 out 내장객체의메소드 JSP 페이지가생성한결과를웹브라우저에전송해주는출력스트림 메소드 isautoflush() : boolean 설명 출력버퍼가다찼을때처리여부결정자동으로플러시 ( 출력해서비우기 ) 할경우에는 true 리턴 메소드 void setheader(name, value) 설명헤더정보의값을수정하는메소드헤더정보 (name) 를 value값으로설정 getbuffersize() :int getremaining() :int 출력버퍼의전체크기리턴현재남아있는출력버퍼의크기리턴 void setcontenttype(type) void sendredirect(url) 웹브라우저의요청결과로보일페이지의 contenttype을설정페이지를이동시키는메소드 url로주어진페이지로제어이동 clearbuffer() :void println(str) :String flush() :void 현재출력버퍼에저장된내용을웹브라우저에전송않고비움주어진 str값을웹브라우저에출력현재출력버퍼내용을웹브라우저에전송하고비움 9 close() :void 현재출력버퍼내용을웹브라우저에전송하고출력스트림닫음 10 pagecontext 내장객체 현재 JSP 페이지의컨텍스트 (Context) 를나타냄 주로다른내장객체를구하거나페이지의흐름제어그리고에러데이터를얻어낼때사용 session 내장객체 요청한웹브라우저에관한정보를저장 / 관리 웹브라우저 ( 클라이언트 ) 당 1 개할당주로회원관리시스템에서사용자인증에관련된작업수행시사용 11 12
application 내장객체 웹애플리케이션의설정정보를갖는 context와관련이있는객체 웹애플리케이션이실행되는서버의설정정보및자원에대한정보를얻어내거나, 애플리케이션이실행되고있는동안에발생할수있는이벤트로그정보와관련된기능들을제공웹애플리케이션당 1개의객체생성하나의웹애플리케이션에서공유하는변수로사용웹사이트의방문자기록을카운트할때사용 그외내장객체 config 내장객체컨테이너당 1 개의객체가생성같은컨테이너에서서비스되는모든페이지는같은객체공유 page 내장객체 JSP 페이지그자체를나타내는객체 this 키워드로자기자신을참조할수있음 page 객체는현재거의사용되지않는내장객체 exception 내장객체예외발생시, 예외를처리할페이지에전달되는객체 page 디렉티브의 iserrorpage 속성을 true 로지정한 JSP 페이지에서만사용가능한내장객체 13 14 웹애플리케이션의영역 page, request, session, application 객체의유효기간객체공유범위 page 영역한번의웹브라우저 ( 클라이언트 ) 의요청에대해하나의 JSP 페이지가호출웹브라우저의요청이들어오면단한개의페이지만대응 객체를하나의페이지내에서만공유 pagecontext 내장객체사용 15 16
request 영역한번의웹브라우저 ( 클라이언트 ) 의요청에대해같은요청을공유하는페이지가대응웹브라우저의한번의요청에단지한개의페이지만요청될수있고, 때에따라같은 request 영역이면두개의페이지가같은요청을공유할수있음객체를하나또는두개의페이지내에서공유할수있음 include 액션태그, forward 액션태그를사용하면 request 기본객체를공유하게되어서같은 request 영역이됨 주로페이지모듈화에사용 request 기본객체사용 session 영역웹브라우저당 1 개의 session 객체가생성같은웹브라우저내에서는요청되는페이지들은같은객체를공유 주로회원관리에서회원인증에사용 session 내장객체사용 17 18 영역 application 영역하나의웹애플리케이션당 1 개의 application 객체가생성같은웹애플리케이션에요청되는페이지들은같은객체공유 application 기본객체사용 Page Request 하나의 JSP 페이지가클라이언트에서비스를제공하는동안에만유효 하나의 HTTP 요청처리되는동안유효 ( 포워딩 /include : 여러페이지공유 ) Session 하나의세션이유지되는동안유효 application 하나의웹어플리케이션이실행되는동안유효 page < request < session < application 19 20
실습 : request 내장객체 211 쪽 requesttestfrom.jsp requesttestpro.jsp 실습 : requesttestpro.jsp [211 쪽추가 ] 당신의취미는??<BR> <HR align="left width="50%"> <INPUT type="checkbox" name="ck" value=" 영화보기 " checked> 영화보기 <BR> <INPUT type="checkbox" name="ck" value=" 수영하기 " > 수영하기 <BR> <INPUT type="checkbox" name="ck" value=" 등산하기 " > 등산하기 <BR> <INPUT type="checkbox name="ck" value=" 잠자기 " checked> 잠자기 <BR> <BR> <BR> <BR> 21 22 실습 : requesttestfrom.jsp [211 쪽추가 ] 실습 : request 내장객체 217 쪽 requesttest2.jsp String items[] = request.getparametervalues("ck"); for(int i=0; i<items.length; i++){ out.println(" 선택한값 : " + items[i] + "<br>"); } 23 24
실습 : response 객체 222 쪽 responseredirect.jsp responseredirected.jsp 실습 : out 내장객체의메소드 226 쪽 outtest.jsp 25 26 과제 연습문제 1 연습문제 3 연습문제 4 27