Microsoft PowerPoint - 7강.pptx

Similar documents
Microsoft PowerPoint - 웹프로그래밍_ ppt [호환 모드]

뇌를 자극하는 JSP & Servlet 슬라이드

<param-value> 파라미터의값 </param-value> </init-param> </servlet> <servlet-mapping> <url-pattern>/ 매핑문자열 </url-pattern> </servlet-mapping> - 위의예에서 ServletC

JSP 의내장객체 response 객체 - response 객체는 JSP 페이지의실행결과를웹프라우저로돌려줄때사용되는객체이다. - 이객체는주로켄텐츠타입이나문자셋등의데이터의부가정보 ( 헤더정보 ) 나쿠키 ( 다음에설명 ) 등을지정할수있다. - 이객체를사용해서출력의방향을다른

Microsoft PowerPoint - Chap6_cmpl

다른 JSP 페이지호출 forward() 메서드 - 하나의 JSP 페이지실행이끝나고다른 JSP 페이지를호출할때사용한다. 예 ) <% RequestDispatcher dispatcher = request.getrequestdispatcher(" 실행할페이지.jsp");

서블릿의라이프사이클 뇌를자극하는 JSP & Servlet

Microsoft PowerPoint - aj-lecture3.ppt [호환 모드]

Microsoft PowerPoint - 4강.pptx

혼자서일을다하는 JSP. 이젠일을 Servlet 과나눠서한다. JSP와서블릿의표현적인차이 - JSP는 <html> 내에서자바를사용할수있는수단을제공한다. - 서블릿은자바내에서 <html> 을작성할수있는수단을제공한다. - JSP나서블릿으로만웹페이지를작성하면자바와다양한코드가

중간고사

Microsoft PowerPoint 웹 연동 기술.pptx

04장

KYO_SCCD.PDF

14-Servlet

JAVA Bean & Session - Cookie

2장 변수와 프로시저 작성하기

I T C o t e n s P r o v i d e r h t t p : / / w w w. h a n b i t b o o k. c o. k r

파일로입출력하기II - 파일출력클래스중에는데이터를일정한형태로출력하는기능을가지고있다. - PrintWriter와 PrintStream을사용해서원하는형태로출력할수있다. - PrintStream은구버전으로가능하면 PrintWriter 클래스를사용한다. PrintWriter

Data Provisioning Services for mobile clients

PowerPoint Presentation

PowerPoint Presentation

Microsoft PowerPoint - 04-UDP Programming.ppt

뇌를 자극하는 JSP & Servlet 슬라이드

JAVA PROGRAMMING 실습 08.다형성


Data Provisioning Services for mobile clients

rmi_박준용_final.PDF

Microsoft PowerPoint - Supplement-03-TCP Programming.ppt [호환 모드]

JAVA PROGRAMMING 실습 05. 객체의 활용

Microsoft PowerPoint - 03-TCP Programming.ppt

<4D F736F F F696E74202D203130C0E52EBFA1B7AF20C3B3B8AE205BC8A3C8AF20B8F0B5E55D>

Microsoft PowerPoint 세션.ppt

뇌를 자극하는 JSP & Servlet 슬라이드

JAVA PROGRAMMING 실습 02. 표준 입출력

<C4FBC1EEB7CE20C1A4B8AEC7D5BDC3B4D95FC1A4B4E42E687770>

Microsoft PowerPoint - GUI _DB연동.ppt [호환 모드]

뇌를 자극하는 JSP & Servlet 슬라이드

쉽게

Java Agent Plugin Guide

chapter6.doc

5장. JSP와 Servlet 프로그래밍을 위한 기본 문법(완성-0421).hwp

유니티 변수-함수.key

PowerPoint Presentation

Microsoft PowerPoint - aj-lecture7.ppt [호환 모드]

Eclipse 와 Firefox 를이용한 Javascript 개발 발표자 : 문경대 11 년 10 월 26 일수요일

작성자 : 김성박\(삼성 SDS 멀티캠퍼스 전임강사\)

JUNIT 실습및발표

JAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 ( ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각

PowerPoint Template

Data Provisioning Services for mobile clients

Design Issues

2) 활동하기 활동개요 활동과정 [ 예제 10-1]main.xml 1 <LinearLayout xmlns:android=" 2 xmlns:tools="

PowerPoint Presentation

chapter5.doc

Microsoft PowerPoint - aj-lecture9.ppt [호환 모드]

Microsoft PowerPoint - web-part03-ch20-XMLHttpRequest기본.pptx

Microsoft PowerPoint - CSharp-10-예외처리

PowerPoint 프레젠테이션

17장 클래스와 메소드

Data Provisioning Services for mobile clients

<4D F736F F F696E74202D20C1A63038C0E520C5ACB7A1BDBABFCD20B0B4C3BC4928B0ADC0C729205BC8A3C8AF20B8F0B5E55D>

Microsoft PowerPoint - aj-lecture1.ppt [호환 모드]

PowerPoint Presentation

JAVA PROGRAMMING 실습 09. 예외처리

<4D F736F F F696E74202D20C1A63234C0E520C0D4C3E2B7C228B0ADC0C729205BC8A3C8AF20B8F0B5E55D>

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx

파일로출력하는작업순서 1. 파일을연다. 2. 파일로자료를쓴다. 3. 파일을닫는다. 파일입출력에사용되는클래스들. FileInputStream, FileOutputStream, FileReader, FileWriter 문자단위로입출력하기 사람이읽을수있는문자로만구성된파일을읽

Web Service Computing

본 강의에 들어가기 전

교육자료

PowerPoint 프레젠테이션

12-file.key

PowerPoint 프레젠테이션

adfasdfasfdasfasfadf

JAVA PROGRAMMING 실습 02. 표준 입출력

Microsoft PowerPoint 자바-기본문법(Ch2).pptx

제8장 자바 GUI 프로그래밍 II

게시판 스팸 실시간 차단 시스템

Microsoft PowerPoint - aj-lecture6.ppt [호환 모드]

API 매뉴얼

Javascript

Research & Technique Apache Tomcat RCE 취약점 (CVE ) 취약점개요 지난 4월 15일전세계적으로가장많이사용되는웹애플리케이션서버인 Apache Tomcat에서 RCE 취약점이공개되었다. CVE 취약점은 W

Microsoft PowerPoint - web-part01-ch10-문서객체모델.pptx

A Hierarchical Approach to Interactive Motion Editing for Human-like Figures

2장 변수와 프로시저 작성하기

Microsoft PowerPoint - 2강

0. 들어가기 전

PowerPoint 프레젠테이션

제11장 프로세스와 쓰레드

자바-11장N'1-502

슬라이드 1

PowerPoint Presentation

Microsoft PowerPoint - java1-lab5-ImageProcessorTestOOP.pptx

교육2 ? 그림

Microsoft PowerPoint - 11주차_Android_GoogleMap.ppt [호환 모드]

쉽게 풀어쓴 C 프로그래밍

2009년 상반기 사업계획

Microsoft PowerPoint - Java7.pptx

Cluster management software

Transcription:

컴퓨터과학과 김희천교수

학습개요 내장객체 pagecontext, application, out과내장객체의사용범위를의미하는 Scope에대해학습한다. pagecontext 객체는 JSP 페이지에대한정보관리기능을제공한다. application 객체를이용하여웹어플리케이션에대한정보를관리할수있으며 out 객체는 JSP 페이지가생성하는결과를출력할때사용되는스트림기능을수행한다. 내장객체는각각에대응되는사용범위또는영역 (scope) 을갖고있는데 page, request, session, application 영역이있다.

학습목표 내장객체인 pagecontext, application, out의사용법을이해 내장객체와대응되는 4가지 scope인 page, request, session, application의역할과기능을이해 속성 (attribute) 을이용한데이터공유방법을이해

내장객체 웹컨테이너가만들어제공하는객체 JSP 페이지안에서묵시적으로선언되어있는객체 스크립트릿, 표현식, 표현언어에서사용함

내장객체 객체이름 클래스 기능 request HttpServletRequest ServletRequest 클라이언트의요청정보관리 response HttpServletResponse ServletResponse 웹서버의응답정보관리 pagecontext PageContext JSP 페이지에대한정보관리 session HttpSession HTTP 세션정보관리 application ServletContext 웹어플리케이션에대한정보관리 out JspWriter JSP 페이지가생성하는결과를출력할때사용되는출력스트림 config ServletConfig JSP 페이지에대한설정정보관리 page Object JSP 페이지를구현한자바클래스인스턴스 exception Throwable 예외처리에사용

pagecontext 객체 JSP 페이지에대응되는객체 페이지컨텍스트를관리하는객체 javax.servlet.jsp.pagecontext의인스탄스 페이지에서사용되는객체들의레퍼런스를저장하고있음 내장객체의참조값을리턴하는메소드를제공 JSP 페이지에서는거의사용하지않음

pagecontext 객체 메서드이름 리턴타입 기능 getrequest() ServletRequest request 객체를리턴한다. getresponse() ServerResponse response 객체를리턴한다. getsession() HttpSession session 객체를리턴한다. getservletcontext() ServletContext application 객체를리턴한다. getservletconfig() ServletConfig config 객체를리턴한다. getout() JspWriter out 객체를리턴한다. getexception() Exception exception 객체를리턴한다. getpage() Object page 객체를리턴한다.

application 객체 웹어플리케이션과관련된정보를관리 javax.servlet.servletcontext의인스탄스 웹어플리케이션에포함된모든 JSP 페이지는하나의 application 객체를공유함 web.xml에저장된정보 웹컨테이너의정보 로그메시지의기록 웹어플리케이션의폴더정보

application 객체 web.xml 웹어플리케이션내의 JSP 페이지에서사용되는설정 정보를저장 <context-param> 태그를이용 <context param> <description> 파라미터설명 ( 생략가능 ) </description> <param name> 파라미터이름 </param name> <param value> 파라미터값 </param value> </context param>

application 객체 웹어플리케이션의초기설정정보읽기 메서드이름리턴타입기능 getinitparameter(string na me) getinitparameternames() String Enumeratio n 이름이 name인웹어플리케이션초기화파라미터의값을읽어온다. 존재하지않을경우 null을리턴한다. 웹어플리케이션초기화파라미터의이름목록을리턴한다.

web.xml 설정정보읽어오기 <context param> <description> 톰캣버전 </description> <param name>tomcatversion</param name> <param value>7.0</param value> </context param> <context param> <description> 개발자이름 </description> <param name>devname</param name> <param value>jimmy</param value> </context param> <context param> <description>db 사용여부 </description> <param name>isdbenabled</param name> <param value>true</param value> </context param>

web.xml 설정정보읽어오기 1 2 3 4 5 6 7 8 9 10 11 12 13 <%@ page contenttype="text/html; charset=euc kr" %> <%@ page import="java.util.enumeration" %> <HTML> <BODY> <% Enumeration e = application.getinitparameternames(); while(e.hasmoreelements()) { String n = (String)e.nextElement(); out.print(n + " = " + application.getinitparameter(n) + "<br>"); } %> </BODY> </HTML> get_application_params.jsp

application 객체 웹컨테이너정보읽기 메서드이름리턴타입기능 getserverinfo() String 서버의정보를리턴한다. getmajorversion() getminorversion() String String 서버가지원하는서블릿규약의버전앞번호를리턴한다. 서버가지원하는서블릿규약의버전뒷번호를리턴한다.

웹컨테이너정보읽기 1 2 3 4 5 6 7 8 <%@ page contenttype="text/html; charset=euc kr" %> <HTML> <BODY> 웹컨테이너정보 : <%= application.getserverinfo() %> <BR> 서블릿규약버전 : <%= application.getmajorversion() %>. <%= application.getminorversion() %> </BODY> </HTML> container_info.jsp

웹컨테이너정보읽기

application 객체 로그 웹어플리케이션에서일어나는일을별도파일에기록하는것 로그기록하기 메서드이름리턴타입기능 log(string msg) void 로그메시지 msg 를기록한다. log(string msg, Throwable throwable) void 오류또는예외메시지 msg 와정 보를함께기록한다.

로그기록하기 로그파일 [ 톰캣설치폴더 ]\logs\localhost.yyyy-mm-dd.log

application 객체 파일내용읽기 웹어플리케이션에포함된파일의내용을읽음 Jimmy, Seoul James, Busan Richard Jeju

파일내용읽기 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 <BODY> <% FileReader fr = null; BufferedReader br = null; String line = null; try { fr=new FileReader(("C:\\Program Files\\Apache Software Foundation \\Tomcat 7.0\\webapps\\JSP\\member\\list.txt"); br = new BufferedReader(fr); while((line = br.readline())!= null) { out.print(line); out.print("<br>"); } } catch(ioexception e) { out.print(e.getmessage()); } %> </BODY> </HTML> read_file.jsp

파일내용읽기

application 객체 파일내용읽기 ( 상대경로 ) application.getrealpath( /index.html ) http://<host>:<port>/<contextpath>/index.html 의절대경로를리턴함 application.getresource( /member/list.txt ) URL 객체를리턴함

파일내용읽기 메서드이름리턴타입기능 getrealpath(string path) getresource(string path) getresourceasstream(st ring path) String java.net.url java.io.inputstr eam 웹어플리케이션내에서지정한경로에해당하는파일의경로를리턴한다. 웹어플리케이션내에서지정한경로에해당하는파일에접근할수있는URL객체를리턴한다. 웹어플리케이션내에서지정한경로에해당하는파일로부터데이터를읽어올수있는 InputStream 객체를리턴한다.

파일내용읽기 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 <% FileReader fr = null; BufferedReader br = null; String line = null; String path = /member/list.txt ; path = application.getrealpath(path); try { fr = new FileReader(path); br = new BufferedReader(fr); while((line = br.readline()!= null) { out.print(line); out.print( <br> ); } } catch(ioexception e) { out.print(e.getmessage()); } %> read_file_advanced.jsp

파일내용읽기 6 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 <%... String path = /member/list.txt ; // path = application.getrealpath(path); URL url = null; try { url = application.getresource(path); is = (InputStream)url.openStream(); br = new BufferedReader(new InputStreamReader(is))); while((line = br.readline())!= null) { out.print(line); out.print( <br> ); } } catch(ioexception e) { out.print(e.getmessage()); } %> read_from_url.jsp

out 객체 JSP 페이지에서의데이터출력 JspWriter 유형의 out 객체를이용함 변환된자바서블릿코드에서는 PageContext 클래스의 getout( ) 을사용 HTML 태그나텍스트들은 out 객체에그대로전달됨 표현식에서는결과값이 out 객체에전달됨

out 객체 1 2 3 4 5 6 7 8 9 <%@ page contenttype="text/html; charset=euc kr" %> <HTML> <BODY> <% String str = Hello, JSP ; %> <%= str %> </BODY> </HTML> out_example.jsp

out 객체 1 2 3 4 5 6 7 8 9 <%@ page contenttype="text/html; charset=euc kr" %> <% out.print( <HTML> ); out.print( <BODY> ); String str = Hello, JSP ; out.print(str); out.print( </BODY> ); out.print( </HTML>); %> out_example.jsp

out 객체와버퍼의관계 버퍼링 JSP 페이지의실행결과는기본적으로자동버퍼링됨 out 객체가내부적으로사용하는버퍼 out 객체의출력메소드 print( ) println( ) 출력하고줄을바꿈 newline( ) 줄바꿈문자를출력

out 객체 버퍼와관련된메소드 메서드이름 리턴타입 기능 getbuffersize() int 버퍼의크기를리턴한다. getremaining() int 현재남아있는버퍼의크기를리턴한다. clear() void 버퍼의내용을비운다. 만약버퍼가비워져있다면 IOException을발생시킨다. clearbuffer() void 버퍼의내용을비운다. 버퍼가비워져있더라도 IOException을발생시키지않는다. flush() void 버퍼의내용을비워출력시킨다. isautoflush() boolean page 지시어에서설정한 autoflush 속성값을리턴한다.

out 객체 1 2 3 4 5 6 7 8 9 10 11 <%@ page contenttype="text/html; charset=euc kr" %> <%@ page buffer="16kb" autoflush="true" %> <HTML> <BODY> <ul> <li> 버퍼크기 : <%= out.getbuffersize() %> <BR> <li> 남은버퍼크기 : <%= out.getremaining() %> <BR> <li>autoflush 속성값 : <%= out.isautoflush() %> </ul> </BODY> </HTML> buffer_info.jsp

내장객체와 Scope Scope( 영역 ) JSP 페이지에서객체들은 scope 속성을가짐 scope는객체들을어디서사용할수있는가를의미 영역으로 page, request, session, application이존재함 같은영역내의웹컴포넌트들은작업을위해정보를공유할필요가있음 데이터공유를위해영역을표현하는내장객체가존재함

Scope page 영역 페이지내부에서사용할수있는객체 클라이언트에게응답을보내거나포워딩이일어나면없어짐 page 영역객체의레퍼런스들은 pagecontext 객체에저장됨 (PageContext 유형 ) request 영역 같은요청을처리하는페이지들에서사용가능한객체 <jsp:forward> 또는 <jsp:include> 를사용할때 요청의처리가끝나면없어짐 request 객체에저장됨 (HttpServletRequest 유형 )

page 영역과 request 영역 요청 JSP 페이지 1 page 영역 1 이동 request 영역 JSP 페이지 2 page 영역 2

Scope session 영역 같은세션내에서요청을처리하는페이지들에서사용가능한객체 하나의웹브라우저에서유지됨 세션이끝나면없어짐 session 객체에저장됨 (HttpSession 유형 ) application 영역 같은어플리케이션내에서요청들을처리하는페이지들에서사용가능한객체 웹컨테이너를재시작시키면없어짐 application 객체에저장됨 (ServletContext 유형 )

session 영역 요청 / 응답 JSP 페이지 1 이동 JSP 페이지 2 요청 / 응답 JSP 페이지 3 요청 / 응답 JSP 페이지 4 이동 JSP 페이지 5 요청 / 응답 JSP 페이지 6 클라이언트 session 영역

속성이용하여데이터공유하기 데이터공유 영역을표현하는내장객체를이용하여데이터를공유할수있음 데이터공유를위해 pagecontext, request, session, application 내장객체는속성을관리함 영역에관한정보를저장 정보를주고받기위해새로운속성을정의하여사용 속성은 < 이름, 값 > 의형태

속성이용하여데이터공유하기 속성관리를위한메소드 메서드이름리턴타입기능 setattribute(string name, Object value) getattribute(string name) removeattribute(string n ame) getattributenames() void 이름이 name인속성의값을 value로지정한다. 이름이 name인속성의값을리턴한 Object 다. 지정한이름의속성이존재하지 않을경우 null을리턴한다. void 이름이 name인속성을삭제한다. java.util.en 속성의이름목록을구한다.pageContext umeration 객체에서는사용할수없다.

application 객체에보관된속성 4 5 6 7 8 9 10 11 12 13 14 15 16 <BODY> <table border=1> <tr><th> 속성이름 </th><th> 속성값 </th> <% Enumeration e = application.getattributenames(); while(e.hasmoreelements()) { String name = (String)e.nextElement(); Object value = application.getattribute(name); out.print("<tr><td>" + name + "</td><td>" + value + "</td>"); } %> </table> </BODY> view_attribtes.jsp

application 객체에보관된속성

객체를속성값으로설정하기 속성의이름은 String 유형 속성의값은다양한유형의객체 Object 유형 기본형의값을주어도 String으로자동형변환됨 속성값읽기 속성값은 Object 유형으로리턴됨 속성값을읽을때는유형에맞게형변환을해야함 기본형의경우는대응되는 Wrapper 클래스를사용

속성읽기 application.setattribute("temp_file", new File("c:\\temp")); request.setattribute("request_date", new java.util.date()); session.setattribute("id", "jimmy"); Date date = (Date)session.getAttribute("session_start"); String id = (String)session.getAttribute("memberid"); File temp = (File)application.getAttribute("temp_attribute");

속성읽기 //int 값 10 을자동으로 Integer 로변환하여속성값으로지정 request.setattribute("total, 265); //Integer 타입의값을자동으로 int 타입으로변환하여리턴 int totalvalue = (Integer)request.getAttribute("total"); // Float 객체로속성값지정 request.setattribute("average, new Float(35.4f)); // 속성값리턴받기 Float average = (Float)request.getAttribute( average ); // Float 객체를 float 값으로변환하기 float average_value = average.floatvalue();

영역관련내장객체 pagecontext 객체 하나의 JSP 페이지에서공유되는데이터를저장 request 객체 한번의요청을처리하기위해사용되는 JSP 페이지들에서공유되는데이터를저장

영역관련내장객체 session 객체 세션이유지되는 JSP 페이지들에서공유되는데이터를저장 웹브라우저단위로데이터를공유 사용자의로그인정보등 application 객체 웹어플리케이션내에서공유되는데이터를저장 웹어플리케이션설정정보등