Data Provisioning Services for mobile clients

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

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

Javascript

Microsoft PowerPoint 세션.ppt

<4D F736F F F696E74202D203130C0E52EBFA1B7AF20C3B3B8AE205BC8A3C8AF20B8F0B5E55D>

PowerPoint Template

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

Microsoft PowerPoint - 4강.pptx

PHP & ASP

Microsoft PowerPoint 웹 연동 기술.pptx

04장

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

2009년 상반기 사업계획

중간고사

PHP & ASP

Cookie Spoofing.hwp

PowerPoint 프레젠테이션

var answer = confirm(" 확인이나취소를누르세요."); // 확인창은사용자의의사를묻는데사용합니다. if(answer == true){ document.write(" 확인을눌렀습니다."); else { document.write(" 취소를눌렀습니다.");

Data Provisioning Services for mobile clients

Data Provisioning Services for mobile clients

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

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

PowerPoint Presentation

PowerPoint 프레젠테이션

계속되는 JSTL 의활약 <c:foreach> 액션의 items에사용할수있는자료의형태 - <c:foreach var="dish" items="${???}"> - 즉, 위의??? 부분에사용할수있는자료의형태는다음과같다. 배열, 컬렉션프레임워크,, 로구분된항목들을포함한문자열

제이쿼리 (JQuery) 정의 자바스크립트함수를쉽게사용하기위해만든자바스크립트라이브러리. 웹페이지를즉석에서변경하는기능에특화된자바스크립트라이브러리. 사용법 $( 제이쿼리객체 ) 혹은 $( 엘리먼트 ) 참고 ) $() 이기호를제이쿼리래퍼라고한다. 즉, 제이쿼리를호출하는기호

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

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

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

로거 자료실

PowerPoint 프레젠테이션

쉽게 풀어쓴 C 프로그래밍

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

Javascript

SK Telecom Platform NATE

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

[ 네이버마일리지 ] 디자인셋팅매뉴얼 1. 장바구니페이지에네이버마일리지안내추가 - 위치 : HTML 디자인설정 > 장바구니 > 장바구니주문목록 {{$c_3}} [ 편집 ] 버튼클릭 > HTML 편집탭으로이동 > 여러개의장바구니모두결제버튼 {u9} [ 편집 ] 버튼클릭하

Data Provisioning Services for mobile clients

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

하둡을이용한파일분산시스템 보안관리체제구현

PowerPoint Presentation

PowerPoint 프레젠테이션

쉽게 풀어쓴 C 프로그래밍

쉽게 풀어쓴 C 프로그래밍

C스토어 사용자 매뉴얼

0. 들어가기 전

<4D F736F F F696E74202D20C1A63236C0E520BED6C7C3B8B428B0ADC0C729205BC8A3C8AF20B8F0B5E55D>


- 다음은 대한민국, 미국, 일본 의화폐문자출력과날짜, 시간을출력하는 JSP(WorldFormat.jsp) contenttype="text/html; charset=euc-kr"%> import="java.util.*"%>

Web Service Computing

HLS(HTTP Live Streaming) 이용가이드 1. HLS 소개 Apple iphone, ipad, ipod의운영체제인 ios에서사용하는표준 HTTP 기반스트리밍프로토콜입니다. 2. HLS 지원대상 - 디바이스 : iphone/ipad/ipod - 운영체제 :

The Pocket Guide to TCP/IP Sockets: C Version

슬라이드 1

API STORE 키발급및 API 사용가이드 Document Information 문서명 : API STORE 언어별 Client 사용가이드작성자 : 작성일 : 업무영역 : 버전 : 1 st Draft. 서브시스템 : 문서번호 : 단계 : Docum

12. OAuth 2.0 으로사용자관리하기 12.1 들어가며 대부분의회사나조직은직원과고객데이터베이스를가지고있습니다. 쓰리래빗츠를도입하면 일부데이터베이스를이중으로관리해야하는불편함에직면합니다. 이문제를해결하기위해서 쓰리래빗츠는 OAuth 2.0 으로사용자를관리하는기능을제공

Microsoft PowerPoint - 7강.pptx

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

SOFTBASE XFRAME DEVELOPMENT GUIDE SERIES HTML 연동가이드 서울특별시구로구구로 3 동한신 IT 타워 1215 호 Phone Fax Co

슬라이드 1

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

PowerPoint 프레젠테이션

미쓰리 파워포인트

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

Secure Programming Lecture1 : Introduction

Microsoft PowerPoint - Java7.pptx

PowerPoint 프레젠테이션

Javascript

이장에서다룰내용 테두리를제어하는스타일시트 외부여백 (Margin) 과내부여백 (Padding) 관련속성 위치관련속성 2


HTML5 웹프로그래밍 입문-개정판

Javascript.pages

Microsoft PowerPoint - 04-UDP Programming.ppt

<4D F736F F F696E74202D20B5A5C0CCC5CDBAA3C0CCBDBA5F3130C1D6C2F75F31C2F7BDC32E >

Microsoft PowerPoint - java1-lab5-ImageProcessorTestOOP.pptx

PowerPoint Presentation

PowerPoint 프레젠테이션

Microsoft PowerPoint Python-WebDB

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

PowerPoint Template

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

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

PowerPoint 프레젠테이션

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

Microsoft PowerPoint - 03-TCP Programming.ppt

XSS Attack - Real-World XSS Attacks, Chaining XSS and Other Attacks, Payloads for XSS Attacks

Data Provisioning Services for mobile clients

<4D F736F F F696E74202D E20B3D7C6AEBFF6C5A920C7C1B7CEB1D7B7A1B9D62E >

EDB 분석보고서 (04.06) ~ Exploit-DB( 에공개된별로분류한정보입니다. Directory Traversal users-x.php 4.0 -support-x.php 4.0 time-

PowerPoint Presentation

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

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

JAVA Bean & Session - Cookie

PowerPoint Presentation

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

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션

<4D F736F F F696E74202D20B8B6C0CCC5A9B7CEC7C1B7CEBCBCBCAD202839C1D6C2F7207E203135C1D6C2F >

14-Servlet

쉽게 풀어쓴 C 프로그래밍

Microsoft PowerPoint HTML.ppt

Transcription:

9 장. 요청흐름제어와모듈화

1. <jsp:forward> 액션태그를이용한흐름제어 <jsp:forward> 액션태그 하나의 JSP 페이지에서다른 JSP 페이지로요청처리를전달할때사용 중요사항 from.jsp 가아닌 to.jsp 가생성한응답결과가웹브라우저에전달된다. from.jsp 에서사용한 request, response 기본객체가 to.jsp 에그대로전달된다. <jsp:forward> 액션태그사용이유 모듈화 (Modulization) 2/51 제 1 장

1. <jsp:forward> 액션태그를이용한흐름제어 <jsp:forward> 액션태그사용법 기본용법 <jsp:forward page= 이동할페이지 /> 사용예 <jsp:forward page="forward/to.jsp"/> <% String url="forward/to.jsp"; %> <jsp:forward page="<%= url %>"/> 3/51

1. <jsp:forward> 액션태그를이용한흐름제어 01 03 04 05 06 07 08 09 10 01 03 04 05 06 07 08 09 4/51 10 <jsp:forward> 액션태그사용법예 <html> <head><title>from.jsp의제목 </title></head> <body> 이페이지는 from.jsp가생성한것입니다. <jsp:forward page="/ch09/forward/to.jsp" /> // to.jsp로요청흐름포워딩 </body> </html> [ 예제 9.1-1] jspbook\ch09\from.jsp [ 예제 9.1-2] jspbook\ch09\forward\to.jsp <html> <head><title>to.jsp의실행결과 </title></head> <body> to.jsp가생성한내용 <br/> 날짜 : <%= new java.util.date() %> </body> 제9장 </html>

1. <jsp:forward> 액션태그를이용한흐름제어 <jsp:forward> 액션태그사용법예실행결과 위결과에서주목할만한점 웹브라우저의주소는 from.jsp 로서최초로요청을받은 JSP 의주소이다. from.jsp 에서출력할내용은브라우저에보이지않고 <jsp:forward> 를사용해서이동한 to.jsp 의출력결과만웹브라우저에출력되었다. 웹브라우저는요청의흐름이이동되는사실을전혀알지못한다. 5/51

1. <jsp:forward> 액션태그를이용한흐름제어 <jsp:forward> 액션태그사용법 page 속성에경로명입력하는 2 가지방법 웹어플리케이션폴더를기준으로한절대경로 현재 JSP 페이지 ( 즉, from.jsp) 를기준으로한상대경로 경로입력예 1 절대경로 <jsp:forward page="/ch09/forward/to.jsp" /> 상대경로 <jsp:forward page="forward/to.jsp" /> 6/51

1. <jsp:forward> 액션태그를이용한흐름제어 <jsp:forward> 액션태그사용법 경로입력예 2 절대경로 <jsp:forward page= /ch09/forward/to.jsp" /> 상대경로 <jsp:forward page="../forward/to.jsp" /> 7/51

1. <jsp:forward> 액션태그를이용한흐름제어 <jsp:forward> 액션태그와출력버퍼와의관계 <jsp:forward> 가현재까지출력버퍼에저장되던내용이모두버려지고이동한페이지의출력결과가새롭게버퍼에삽입 즉, 출력버퍼가존재하기때문에 <jsp:forward> 액션태그를사용할수있다. 8/51

1. <jsp:forward> 액션태그를이용한흐름제어 01 03 04 05 06 07 08 09 10 11 <jsp:forward> 액션태그와출력버퍼와의관계 [ 예제 9.2] jspbook\ch09\fromnobuffer.jsp <%@ page buffer="none %> // buffer 속성을 none으로설정 <%@ page contenttype = "text/html; charset=euc-kr" %> <html> <head><title>fromnobuffer.jsp</title></head> <body> from.jsp가생성한내용 <jsp:forward page="/ch09/forward/to.jsp" /> // buffer 속성이 none인경우포워딩불가 </body> </html> 이미웹브라우저에데이터가전송된경우 <jsp:forward> 액션태그를사용해서흐름을이동할수없다! 9/51

1. <jsp:forward> 액션태그를이용한흐름제어 <jsp:forward> 액션태그의활용법 일반적인 <jsp:forward> 액션태그활용법 이용자가서버로보내는정보의조건에따라서서로다른결과화면을보여줌 <% String forwardpage = null; // 조건에따라이동할페이지를지정 if ( 조건판단1) { forwardpage = " 페이지URL1"; } else if ( 조건판단2) { forwardpage = " 페이지URL2"; } else if ( 조건판단3) { forwardpage = " 페이지URL3"; } %> <jsp:forward page="<%= forwardpage %>"/> 10/51

1. <jsp:forward> 액션태그를이용한흐름제어 <jsp:forward> 액션태그의활용법 입력받은파라미터에따라서서로다른결과를보여줘야하는 JSP 코드 1 <% String option = request.getparameter("option"); // 조건에따라이동할페이지를지정 if (option.equals("1")) { %>... 내용 <% else if (option.equals("2")) { %>... 내용 <% else if (option.equals("3")) { %>... 내용 <% } 11/51 %>

1. <jsp:forward> 액션태그를이용한흐름제어 <jsp:forward> 액션태그의활용법 입력받은파라미터에따라서서로다른결과를보여줘야하는 JSP 코드 2 별도의페이지를마련하고 <jsp:forward> 액션태그사용 좀더깔끔 Modulization <% } %> String code = request.getparameter("code"); String viewpageuri = null; if (code.equals("1")) { viewpageuri = "/ch09/forward/1.jsp"; } else if (code.equals("2")) { viewpageuri = "/ch09/forward/2.jsp"; } else if (code.equals("3")) { viewpageuri = "/ch09/forward/3.jsp"; <jsp:forward page="<%= viewpageuri %>" /> 12/51

1. <jsp:forward> 액션태그를이용한흐름제어 19 13/51 20 <jsp:forward> 액션태그의올바른활용예 [ 예제 9.3-1] jspbook\ch09\select.jsp 01 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 <html> <head><title> 옵션선택화면 </title></head> <body> <form action="view.jsp"> 원하는페이지선택 : <select name="code"> <option value="1">1 페이지 </option> <option value="2">2 페이지 </option> <option value="3">3 페이지 </option> </select> <input type="submit" value=" 이동 "> </form> </body> </html>

1. <jsp:forward> 액션태그를이용한흐름제어 <jsp:forward> 액션태그의활용법예 ( 계속 ) [ 예제 9.3-2] jspbook\ch09\view.jsp 01 03 04 05 06 07 08 09 10 11 12 13 14 <% String code = request.getparameter("code"); // 요청파라미터 code에대한값설정 String viewpageuri = null; if (code.equals("1")) { viewpageuri = "/ch09/forward/1.jsp"; } else if (code.equals("2")) { viewpageuri = "/ch09/forward/2.jsp"; } else if (code.equals("3")) { viewpageuri = "/ch09/forward/3.jsp"; } %> <jsp:forward page="<%= viewpageuri %>" /> // viewpageuri에저장된페이지로포워딩 14/51

1. <jsp:forward> 액션태그를이용한흐름제어 <jsp:forward> 액션태그의활용법예 ( 계속 ) [ 예제 9.3-3] jspbook\ch09\forward\1.jsp 01 <html> 03 <head><title>1 페이지 </title></head> 04 <body> 05 06 이페이지는 <b><font size="5">1</font></b> 입니다. 07 08 </body> 09 </html> 15/51

2. 이동할페이지로의정보전달 <jsp:forward> 액션태그를활용한 request 파라미터전달 <jsp:param> 액션태그 <jsp:forward> 액션태그를사용해서요청정보를전달할페이지에추가로정보를전달하고싶은경우에사용 사용용법 <jsp:forward page="move.jsp"> <jsp:param name="title" value="jsp"/> <jsp:param name="subject" value="forward"/> </jsp:forward> <jsp:forward> 액션태그의속성 name - 이동할페이지에전달될파라미터의이름 ( 표현식사용불가 ) value - 이동할페이지에전달될파라미터의값 ( 표현식사용가능 ) 16/51

2. 이동할페이지로의정보전달 <jsp:forward> 액션태그를활용한 request 파라미터전달예 [ 예제 9.4-1] jspbook\ch09\paramfrom.jsp 01 03 04 05 06 07 08 <% String value = request.getparameter("p1"); if(value == null) value = "NOPARAM"; %> <jsp:forward page="forward/paramto.jsp"> <jsp:param name="p2" value="<%=value%>"/> // value 속성에표현식사용가능 </jsp:forward> 01 03 04 05 06 07 08 <html> <head><title>paramto</title></head> <body> p1 파라미터 : <%=request.getparameter("p1")%> <br/> p2 파라미터 : <%=request.getparameter("p2")%> </body> </html> [ 예제 9.4-2] jspbook\ch09\forward\paramto.jsp 17/51

2. 이동할페이지로의정보전달 <jsp:forward> 액션태그를활용한 request 파라미터전달예 ( 계속 ) paramfrom.jsp 수행에서 "p1" 파라미터를지정하지않은경우 http://localhost:8080/jspbook/ch09/paramfrom.jsp paramfrom.jsp 수행에서 "p1" 파라미터를지정한경우 http://localhost:8080/jspbook/ch09/paramfrom.jsp?p1=hello 18/51

2. 이동할페이지로의정보전달 request 기본객체가지닌속성을활용한정보전달 속성 (Attribute) 를활용한정보전달 19/51

2. 이동할페이지로의정보전달 request 기본객체가지닌속성을활용한정보전달 [ 예제 9.5-1] jspbook\ch09\forward\timefrom.jsp 01 03 04 05 06 07 08 <%@ page import = "java.util.calendar" %> <% Calendar cal = Calendar.getInstance(); request.setattribute("cal", cal); request.setattribute("name", " 홍길동 "); %> // Calendar 객체와 String 객체를 request 기본객체에속성으로저장 <jsp:forward page="forward/timeto.jsp"/> // timeto.jsp 로포워딩 20/51

01 03 04 05 06 07 08 09 10 11 12 13 14 15 2. 이동할페이지로의정보전달 request 기본객체가지닌속성을활용한정보전달 <%@ page import="java.util.calendar" %> <html> <head><title> 현재시간 </title></head> <body> <% Calendar cal = (Calendar)request.getAttribute("cal"); String name = (String)request.getAttribute("name"); %> <%= name %> 선생님! <br/> 현재시간은 <%= cal.get(calendar.hour) %> 시 <%= cal.get(calendar.minute) %> 분 <%= cal.get(calendar.second) %> 초입니다. </body> </html> [ 예제 9.5-2] jspbook\ch09\forward\timeto.jsp // request 기본객체에서속성정보읽어옴 21/51

3. response 기본객체를이용한흐름제어 웹브라우저에서페이지가자동으로이동 response 객체의 redirect 기능이나클라이언트에서처리하는자바스크립트방식을사용 <% String paramstring = "code=a000&type=c"; response.sendredirect("move.jsp"+paramstring); %> 22/51

3. response 기본객체를이용한흐름제어 웹브라우저에서페이지가자동으로이동하는예 [ 예제 9.6-1] jspbook\ch09\sendparam1.jsp 01 03 04 05 06 07 08 09-10 <%@ page import="java.net.urlencoder" %> <%@ page import="java.util.random" %> <% Random random = new Random(); int number = random.nextint(); String numberstring = Integer.toString(number); response.sendredirect(request.getcontextpath() + "/ch09/receiveparam.jsp?num=" + numb erstring); %> // receiveparam.jsp 로리다이렉트 // Random 객체로부터임의의정수값을얻어온다. 23/51

3. response 기본객체를이용한흐름제어 웹브라우저에서페이지가자동으로이동하는예 ( 계속 ) [ 예제 9.6-2] jspbook\ch09\receiveparam.jsp 01 03 04 05 06 07 <html> <head><title> 파라미터출력 </title></head> <body> 전달받은정수 : <%= request.getparameter("num") %> </body> </html> 24/51

4. 자바스크립트를이용한흐름제어 01 03 04 05 06 07 08 09 10-11 웹브라우저에서페이지가자동으로이동하는예 ( 계속 ) 클라이언트에서처리하는자바스크립트방식을사용 [ 예제 9.6-3] jspbook\ch09\sendparam2.jsp <%@ page import="java.net.urlencoder" %> <%@ page import="java.util.random" %> <% Random random = new Random(); int number = random.nextint(); String numberstring = Integer.toString(number); // 숫자를문자열로변환 // Random 객체로부터임의의정수값을얻어온다. %> <script language = "JavaScript"> location.href = "<%= request.getcontextpath() %>/ch09/receiveparam.jsp?num=<%= numbe rstring %>"; // Javascript를활용해서리다이렉트 </script> 25/51

5. <jsp:include> 액션태그를이용한 JSP 페이지모듈화 <jsp:include> 액션태그 지정한페이지를 <jsp:include> 액션태그가위치한부분에포함시킬때활용 <jsp:include> 액션태그는이액션태그가수행되기전에저장되는출력버퍼의내용을버리지않고전체실행결과에포함 26/51

5. <jsp:include> 액션태그를이용한 JSP 페이지모듈화 <jsp:include> 액션태그사용법 <jsp:include page=" 포함할페이지 " flush="true" /> flush="false" : " 출력내용 A" 를출력버퍼에여전히저장한채요청흐름이 sub.jsp 로이동된다. flush="true" ( 디폴트 ): " 출력내용 A" 는웹브라우저로보내어지고요청흐름이 sub.jsp 로이동 출력버퍼를이렇게비우게되면 HTTP 응답헤더정보도함께보내어지므로이후 ( 요청흐름이 sub.jsp 로이동한후 ) 에헤더정보를추가하거나변경하는작업은할수가없다. 27/51

5. <jsp:include> 액션태그를이용한 JSP 페이지모듈화 <jsp:include> 액션태그사용법 [ 예제 9.7-1] jspbook\ch09\includer.jsp 01 03 04 05 <html> <head><title>includer 페이지 </title></head> <body> includer.jsp에서출력하는내용 : <%= "Hello World!" %> 06 07 <jsp:include page="include/sub.jsp" flush="false" /> // sub.jsp 포함 08 09 10 11 액션태그수행이후에출력하는내용. </body> </html> [ 예제 9.7-2] jspbook\ch09\include\sub.jsp 01 03 04 <p> <font size="+2" color="blue">sub.jsp에서출력하는내용 : <%= "Hello World!" %></font> </p> 28/51

5. <jsp:include> 액션태그를이용한 JSP 페이지모듈화 <jsp:include> 액션태그사용법 소스코드보기 <html> <head><title>includer 페이지 </title></head> <body> includer.jsp 에서출력하는내용 : Hello World! <p> <font size="+2" color="blue">sub.jsp 에서출력하는내용 : Hello World!</font> </p> 액션태그수행이후에출력하는내용. </body> </html> 29/51

5. <jsp:include> 액션태그를이용한 JSP 페이지모듈화 <jsp:include> 액션태그를이용한페이지모듈화 일반적인페이지레이아웃 페이지레이아웃의이전방법 HTML 태그인 <frame> 과 <frameset> 을사용 최근방법 HTML 태그인 <table>, <tr>, <td> 태그등으로처리 30/51

5. <jsp:include> 액션태그를이용한 JSP 페이지모듈화 <jsp:include> 액션태그를이용한페이지모듈화 <table>, <tr>, <td> 태그를활용한페이지레이아웃의전형적인예 31/51 <table> <tr> <td colspan="2"> <!-- 모든페이지에서같은내용을지니는상단메뉴코드 --> <a href="...">home</a>...... </td> </tr> <tr> <td width="80%"> <!-- 페이지마다다른중앙주내용부분 --> Welcome to Our Site!.... </td> <td> <!-- 우측메뉴에대한코드 --> <a href="...">java</a>...... </td> </tr> <tr> <td colspan="2"> <!-- 모든페이지에서같은내용을지닌하단부가내용코드 --> Copyright 2009... </td> </tr> </table> 웹사이트가상당히많은수의 JSP 페이지로구성되어있고그러한 JSP 페이지들을같은방식으로왼쪽과같이코딩해야한다면문제가있다.

5. <jsp:include> 액션태그를이용한 JSP 페이지모듈화 <jsp:include> 액션태그를이용한페이지모듈화 상당히많은 JSP 페이지가같은내용을포함할때변경작업의문제점 32/51

5. <jsp:include> 액션태그를이용한 JSP 페이지모듈화 <jsp:include> 액션태그를이용한페이지모듈화 <jsp:include> 액션태그의활용가치 모듈화 (Modulization) <jsp:include> 를통한유지보수문제해결 33/51

5. <jsp:include> 액션태그를이용한 JSP 페이지모듈화 01 03 04 05 06 07 08 09 10 11 12 13 14 15 <jsp:include> 액션태그를이용한페이지모듈화예제 <html> <head><title> 모듈화 </title></head> <body> <table width="500" border="1" cellpadding="5" align="center"> <tr> <td colspan="2"> <jsp:include page="include/top.jsp" flush="false" /> // top.jsp 포함 </td> </tr> <tr> <td width="80%" valign="middle"> 반갑습니다. 중앙의주내용입니다.<br/> <img src="bird1.jpg" width="200" border="0"/> </td> [ 예제 9.8-1] jspbook\ch09\home.jsp 34/51

5. <jsp:include> 액션태그를이용한 JSP 페이지모듈화 <jsp:include> 액션태그를이용한페이지모듈화예제 [ 예제 9.8-1] jspbook\ch09\home.jsp 16 17 18 19 20 21 22 23 24 25 26 <td valign="top"> <jsp:include page="include/menu.jsp" flush="false" /> // menu.jsp 포함 </td> </tr> <tr> <td colspan="2"> // bottom.jsp 포함 <jsp:include page="include/bottom.jsp" flush="false" /> </td> </tr> </body> </html> 35/51

5. <jsp:include> 액션태그를이용한 JSP 페이지모듈화 <jsp:include> 액션태그를이용한페이지모듈화예제 [ 예제 9.8-2] jspbook\ch09\include\top.jsp 01 03 TOP 메뉴 - 04 <a href="home.jsp">home</a> 05 <a href="info.jsp">info</a> 06 <a href="music.jsp">music</a> [ 예제 9.8-3] jspbook\ch09\include\menu.jsp 01 03 04 05 06 우측 MENU 페이지 <br/><br/> <a href="#"> 자기소개 </a><br/> <a href="#"> 방명록 </a><br/> <a href="#"> 자유게시판 </a> [ 예제 9.8-4] jspbook\ch09\include\bottom.jsp 36/51 01 03 04 05 BOTTOM 부가내용 - <a href="#"> 회사소개 </a> <a href="#"> 찾아오는길 </a>

5. <jsp:include> 액션태그를이용한 JSP 페이지모듈화 25 37/51 26 <jsp:include> 액션태그를이용한페이지모듈화예제 01 <html> 03 <head><title> 모듈화 </title></head> 04 <body> 05 <table width="500" border="1" cellpadding="5" align="center"> 06 <tr> 07 <td colspan="2"> 08 <jsp:include page="include/top.jsp" flush="false" /> 09 </td> 10 </tr> 11 <tr> 12 <td width="80%" valign="middle"> 13 Info 내용입니다.<br/> 14 <img src="bird2.jpg" width="350" border="0"/> 15 </td> 16 <td valign="top"> 17 <jsp:include page="include/menu.jsp" flush="false" /> 18 </td> 19 </tr> 20 <tr> 21 <td colspan="2"> 22 <jsp:include page="include/bottom.jsp" flush="false" /> 23 </td> 24 </tr> </body> </html> [ 예제 9.8-5] jspbook\ch09\infojsp

5. <jsp:include> 액션태그를이용한 JSP 페이지모듈화 01 <html> 03 <head><title> 모듈화 </title></head> 04 <body> 05 <table width="500" border="1" cellpadding="5" align="center"> 06 <tr> 07 <td colspan="2"> 08 <jsp:include page="include/top.jsp" flush="false" /> 09 </td> 10 </tr> 11 <tr> 12 <td width="80%" valign="middle"> 13 Music 내용입니다.<br/> 14 <img src="bird3.jpg" width="300" border="0"/> 15 </td> 16 <td valign="top"> 17 <jsp:include page="include/menu.jsp" flush="false" /> 18 </td> 19 </tr> 20 <tr> 21 <td colspan="2"> 22 <jsp:include page="include/bottom.jsp" flush="false" /> 23 </td> 24 </tr> 25 38/51 26 <jsp:include> 액션태그를이용한페이지모듈화예제 </body> </html> [ 예제 9.8-6] jspbook\ch09\music.jsp 제9장

5. <jsp:include> 액션태그를이용한 JSP 페이지모듈화 <jsp:include> 액션태그와템플릿 home.jsp, info.jsp, music.jsp 에서처럼여러개의 JSP 파일이거의동일한형태를가지고있다면 Template ( 템플릿 ) 개념도입추천 39/51

5. <jsp:include> 액션태그를이용한 JSP 페이지모듈화 <jsp:include> 액션태그와템플릿 [ 예제 9.9-1] jspbook\ch09\index.jsp 01 03 04 05 06 07 08 09 10 11 12 13 14 <% String targetpage=request.getparameter("target") + "2.jsp"; %> <html> <head><title> 템플릿 + 모듈화 </title></head> <body> <table width="500" border="1" cellpadding="5" align="center"> <tr> <td colspan="2"> <jsp:include page="include/top2.jsp" flush="false" /> // top.jsp top2.jsp </td> </tr> 40/51

5. <jsp:include> 액션태그를이용한 JSP 페이지모듈화 <jsp:include> 액션태그와템플릿 [ 예제 9.9-1] jspbook\ch09\index.jsp 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 <tr> <td width="80%" valign="middle"> <jsp:include page="<%= targetpage%>" flush="false" />// targetpage 에저장된페이지포함 </td> <td valign="top"> <jsp:include page="include/menu.jsp" flush="false" /> // 이전예제의 menu.jsp 포함 </td> </tr> <tr> <td colspan="2"> <jsp:include page="include/bottom.jsp" flush="false" /> 이전예제의 bottom.jsp 포함 </td> </tr> </body> </html> 41/51

5. <jsp:include> 액션태그를이용한 JSP 페이지모듈화 <jsp:include> 액션태그와템플릿 01 반갑습니다. 중앙의주내용입니다.<br/> 03 <img src="bird1.jpg" width="200" border="0"/> [ 예제 9.9-2] jspbook\ch09\home2.jsp 01 03 [ 예제 9.9-3] jspbook\ch09\info2.jsp Info 내용입니다.<br/> <img src="bird2.jpg" width="350" border="0"/> 01 03 [ 예제 9.9-4] jspbook\ch09\music2.jsp Music 내용입니다.<br/> <img src="bird3.jpg" width="300" border="0"/> 42/51

5. <jsp:include> 액션태그를이용한 JSP 페이지모듈화 01 03 04 05 06 <jsp:include> 액션태그와템플릿 TOP 메뉴 - <a href="index.jsp?target=home">home</a> <a href="index.jsp?target=info">info</a> <a href="index.jsp?target=music">music</a> [ 예제 9.9-5] jspbook\ch09\include\top2.jsp 본예제에접근하기위한 URL 모음 http://localhost:8080/jspbook/ch09/index.jsp?target=home http://localhost:8080/jspbook/ch09/index.jsp?target=info http://localhost:8080/jspbook/ch09/index.jsp?target=music 43/51

6. 포함할페이지로의정보전달 <jsp:include> 액션태그를활용한 request 파라미터전달 <jsp:param> 액션태그사용 <jsp:include page="/include/top.jsp flush="false" > <jsp:param name="param1" value="value1" /> <jsp:param name="param2" value="value2" /> </jsp:include> [ 예제 9.10-1] jspbook\ch09\paramincluder.jsp 01 03 04 05 06 07 08 09 10 11 12 <html> <head><title>paramincluder</title></head> <body> 종류 : 서적 <jsp:include page="./include/paramsub.jsp" flush="false"> // paramsub.jsp 페이지포함 <jsp:param name="type" value="language" /> // type 파라미터값설정 </jsp:include> </body> </html> 44/51

6. 포함할페이지로의정보전달 <jsp:include> 액션태그를활용한 request 파라미터전달 [ 예제 9.10-2] jspbook\ch09\include\paramsub.jsp 01 <% 03 String type = request.getparameter("type"); // type 파라미터값얻어오기 04 05 06 07 08 09 10 11 %> <br/> 유형 : <%= type %> <br/> 리스트 : <ol> <li> JSP 웹프로그래밍 <li> Java 정복 </ol> 45/51

request 기본객체의속성을활용한정보전달 앞선예제의재구성 6. 포함할페이지로의정보전달 [ 예제 9.11-1] jspbook\ch09\attrincluder.jsp 01 03 04 05 06 07 08 09 10 11 12 13 <html> <head><title>attrincluder</title></head> <body> 종류 : 서적 <% String type = "language"; request.setattribute("type", type); //type 속성설정 %> <jsp:include page="./include/attrsub.jsp" flush="false"/> </body> </html> // attrsub.jsp 페이지포함 46/51

request 기본객체의속성을활용한정보전달 앞선예제의재구성 6. 포함할페이지로의정보전달 [ 예제 9.11-2] jspbook\ch09\include\attrsub.jsp 01 03 <% String type = (String)request.getAttribute("type"); // type 속성얻어오기 04 05 06 07 08 09 10 11 %> <br/> 유형 : <%= type %> <br/> 리스트 : <ol> <li> JSP 웹프로그래밍 <li> Java 정복 </ol> 47/51

7. JSP 에서요청흐름과모듈화의비교정리 forward 첫번째방법 : <jsp:forward> 액션태그 사용예 <jsp:forward page="move.jsp" flush="false" /> 또는 <jsp:forward page="move.jsp" flush="false"> <jsp:param name="title" value="jsp"/> <jsp:param name="subject" value="forward"/> </jsp:forward> 머리속개념 주의점 요청흐름이넘어가게되는페이지는반드시해당웹어플리케이션내부에존재하는페이지여야한다는점 <jsp:forward page="http://www.daum.net" flush="false" /> ----- (X) 48/51

7. JSP 에서요청흐름과모듈화의비교정리 forward 두번째방법 : reponse.sendredirect 메소드 사용예 머리속개념 <% String paramstring = "code=a000&type=c"; response.sendredirect("move.jsp"+paramstring); %> 주의점 현재의 JSP 페이지와전혀관계가없는 Daum 웹페이지도설정이가능 <% response.sendredirect("http://www.daum.net"); %> ----- (O) 49/51

7. JSP 에서요청흐름과모듈화의비교정리 include 첫번째방법 : <jsp:include> 액션태그 사용예 <jsp:include page="module.jsp" flush="false" /> 또는 <jsp:include page="module.jsp" flush="false"> <jsp:param name="title" value="jsp"/> <jsp:param name="subject" value="include"/> </jsp:include> 머리속개념 주의점 page 속성에설정될수있는 JSP 페이지는반드시현재 JSP 페이지가수행되고있는웹어플리케이션과같은폴더밑그하위에존재해야함. 50/51

7. JSP 에서요청흐름과모듈화의비교정리 include 두번째방법 : <%@ include> 지시문 사용예 머리속개념 <%@ include file="include.jspf" %> 주의점 file 속성에할당할수있는파일위치도현재웹어플리케이션내부에존재하는것만가능 하지만반드시 JSP 페이지또는 HTML 페이지일필요는없으며간단한텍스트파일도가능하다. 51/51