Data Provisioning Services for mobile clients

Similar documents
PowerPoint Template

Javascript

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

2009년 상반기 사업계획

<4D F736F F F696E74202D203130C0E52EBFA1B7AF20C3B3B8AE205BC8A3C8AF20B8F0B5E55D>

PHP & ASP

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

SK Telecom Platform NATE

웹 개발자를 위한 서블릿/JSP

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

Data Provisioning Services for mobile clients

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

INDEX 들어가기 고민하기 HTML(TABLE/FORM) CSS JS

Microsoft PowerPoint Python-WebDB

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

PowerPoint 프레젠테이션

쉽게 풀어쓴 C 프로그래밍

Microsoft PowerPoint 웹 연동 기술.pptx

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

PHP & ASP

HTML5


PowerPoint 프레젠테이션

Data Provisioning Services for mobile clients

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

PowerPoint 프레젠테이션

14-Servlet

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

(Microsoft PowerPoint - 9\300\345.ppt [\310\243\310\257 \270\360\265\345])

The Pocket Guide to TCP/IP Sockets: C Version

쉽게 풀어쓴 C 프로그래밍

TCP/IP Model

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

PowerPoint 프레젠테이션

Javascript

쉽게 풀어쓴 C 프로그래밍

PowerPoint 프레젠테이션

Data Provisioning Services for mobile clients

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

Microsoft PowerPoint Python-Web.pptx

<4D F736F F F696E74202D20B5A5C0CCC5CDBAA3C0CCBDBA5F3130C1D6C2F75F31C2F7BDC32E >

PowerPoint 프레젠테이션

Secure Programming Lecture1 : Introduction

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

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

Data Provisioning Services for mobile clients

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

<3033B0AD D4C5F584D4C5FC0CEC5CDB3DDBAB8C3E6C7D0BDC0C0DAB7E12E687770>

중간고사

Cookie Spoofing.hwp

04장

Microsoft PowerPoint 세션.ppt

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

3장

0. 들어가기 전

C H A P T E R 2

PowerPoint Template

PowerPoint Presentation

Microsoft Word - ntasFrameBuilderInstallGuide2.5.doc

어댑터뷰

Microsoft PowerPoint - 04-UDP Programming.ppt

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

HTML

PowerPoint 프레젠테이션

Microsoft PowerPoint - 03-TCP Programming.ppt

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

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

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

JUNIT 실습및발표


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

DocsPin_Korean.pages

PowerPoint Presentation

PowerPoint Presentation

Visual Basic 반복문

Ext JS À¥¾ÖÇø®ÄÉÀ̼ǰ³¹ß-³¹Àå.PDF

Data Provisioning Services for mobile clients

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

Microsoft PowerPoint - Java7.pptx

<443A5C4C C4B48555C B3E25C32C7D0B1E25CBCB3B0E8C7C1B7CEC1A7C6AE425CC0E7B0EDB0FCB8AE5C53746F636B5F4D616E D656E74732E637070>

Web Service Computing

학습목표 함수프로시저, 서브프로시저의의미를안다. 매개변수전달방식을학습한다. 함수를이용한프로그래밍한다. 2

1. Windows 설치 (Client 설치 ) 원하는위치에다운받은발송클라이언트압축파일을해제합니다. Step 2. /conf/config.xml 파일수정 conf 폴더에서 config.xml 파일을텍스트에디터를이용하여 Open 합니다. config.xml 파일에서, 아

EDB 분석보고서 (04.03) ~ Exploit-DB( 에공개된별로분류한정보입니다. ** 5개이상발생한주요소프트웨어별상세 EDB 번호 종류 공격난이도 공격위험도 이름 소프트웨어이름 3037 SQL Inj

4S 1차년도 평가 발표자료

MySQL-.. 1

<4D F736F F F696E74202D203134C0E52EC0CCB9CCC1F620C3B3B8AE20B9D720C0A520BEEEC7C3B8AEC4C9C0CCBCC7C0C720B9E8C6F7205BC8A3C8AF20B8F0B5E55D>

C++ Programming

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

chapter6.doc

Connection 8 22 UniSQLConnection / / 9 3 UniSQL OID SET

PowerPoint Presentation

쉽게 풀어쓴 C 프로그래밍

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

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

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

rmi_박준용_final.PDF

<4D F736F F F696E74202D20C1A63234C0E520C0D4C3E2B7C228B0ADC0C729205BC8A3C8AF20B8F0B5E55D>

PowerPoint Presentation

C# Programming Guide - Types

Transcription:

7 장. Form 처리와파일업로드 제 7 장

HTML <form> 태그 1. 폼 (Form) 태그소개 사용자에게정보를요청하고적당한대답을얻어낼수있는텍스트박스나체크박스등을제공한다. 사용자로부터의정보를서버에게전달할수있는 submit( 전달 ) 버튼을제공한다. submit 버튼은새페이지 (JSP 에의해생성되는동적페이지 ) 를열기위해사용된다. 2/33 제 1 장

<form> 태그형식 1. 폼 (Form) 태그소개 <form action="target JSP Page" method="get post" enctype=" "> <input [type=text(default) password checkbox radio hidden submit reset] name="name" [value="value"] [size="n"] [maxlength="n"]> <select name="name" [size="n"] [multiple]> <option [selected]>value </select> <textarea name="name" [rows="n"] [cols="n"]>... </textare> </form> 는그양쪽의것들중하나만을선택하라는의미, [ ] 는선택사항 action: submit 버튼을누를때서버쪽에서실행가능한프로그램의 URL method: get 또는 post enctype: method가 post일때만적용 사용자입력데이터에대한인코딩 (encoding) 방법 3/33 기본인코딩 : application/x-www-form-urlencoded 제7장

get 전달방식 1. 폼 (Form) 태그소개 사용자의입력값들은 URL 뒷부분의물음표 (?) 다음에다음과같이쿼리스트링 (Querystring) 으로서저장되어넘겨진다. http://www.abc.com/abc.jsp?first=foo&last=bar 보통입력값들이많지않은경우나공개적으로 URL 에붙는파라미터로넘겨도무방한경우에사용된다. get 전달방식의다른방법 form 없이직접브라우저에주소작성후실행 http://www.google.co.kr/search?complete=1&hl=ko&q=jsp&lr=&aq=f http://www.google.co.kr/search?complete=1&hl=ko&q=java&lr=&aq=f 4/33 제 7 장

post 전달방식 1. 폼 (Form) 태그소개 HTTP 요청헤더뒤에입력스트림을통해서정보를전달하는방식 입력스트림은운영체제상에서일종의표준입력 (Standard Input, stdin) 과같은방식으로 JSP 또는 Servlet 내에전달 전달데이터의양에제한이없다. 브라우저에서전달되는데이터들의모습을사용자가전혀볼수가없다 로그인정보, 즉비밀번호전달에사용됨 post 방식때사용하는 enctype 속성 Enctype 은폼의내용이코드화되는방법을나타내는속성이다. post 방식으로전달되는데이터를클라이언트와서버간에상호정의되어있는방식으로인코딩한다음서버로전달 기본값 : application/x-www-form-urlencoded 여러파일을업로드할때 : multipart/form-data (7.3 절 ) 5/33 제 7 장

1. 폼 (Form) 태그소개 get 과 post 방식정리 get 방식 ( 기본방식 ) post 방식 - 데이터는 URL 뒤에쿼리스트링으로 특징 장점 추가되어전달 - 입력값들이많지않은경우나공개 적으로 URL 에붙여넘겨도무방한경 우에사용 - 간단한데이터를빠르게처리할수 있다. - URL과별도로전송 - HTTP 헤더뒤에입력스트림데이터로전달 - GET방식보다많은데이터를전송할수있다. ( 데이터양에제한이없다.) - 최소한의보안유지에효과가있다. - 데이터양에제한이있다. - 같은데이터양이면 get 방식보다처단점 (URL 전체데이터사이즈는 2048바이리속도가느리다. 트로제한된다.) 6/33 제7장

1. 폼 (Form) 태그소개 <input> 태그의 Type 속성종류 Type 간단한이름설명모습 text password checkbox 글입력상자 암호입력상자 체크박스 일반적인텍스트입력, 즉사용자의 ID 및주소, 주민등록번호등을입력받을때이용된다. 입력된문자가암호형식즉, 애스테리스크 (*) 로표시되게하기위한것으로서사용자의비밀번호등을입력받는데사용된다. On/Off 형식의선택으로네모난상자에 표시를하여항목선택을할수있다. radio 라디오단추 2 개이상의항목들중하나만을택하기위해사용된다. submit 전송버튼 입력된내용을 Action 이지정하는 JSP 파일에전달하기위한것으로버튼모양으로되어있다. reset 취소버튼 입력된내용을초기화시키기위한것으로역시버튼모양으로되어있다. 브라우저에는아무모양이나오지않지만, Action 이지정하 hidden 숨김 는 JSP 파일에전달할값이있을경우 Value 를이용하여값을 모양없음 지정해줄수있다. 7/33 제 7 장

1. 폼 (Form) 태그소개 <select> 와 <textarea> 태그 태그종류 HTML 코드 모습 <select name="select"> <option selected>item1</option> <option>item2</option> <option>item3</option> <Select> 태그 </select> <select name="select2" size="3"> <option selected>item1</option> <option>item2</option> <option>item3</option> </select> <Textarea> 태그 <textarea name="textfield"></textarea> 8/33 제7장

2. 폼 (Form) 을사용한사용자정보처리 <input> 의 text 와 password 및 <textarea> 로부터정보가져오기 [ 예제 7.1-1] jspbook\ch07\textform.html 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 <html> <head> <meta http-equiv="content-type" content="text/html;charset=utf-8"> <title>textform</title> </head> <body> 가입할 ID 와 Password 및자기소개를입력하세요. <form action="textform.jsp" method="post" name="textform"> //submit 버튼을누르면 textform.jsp으로내용전달 ID : <input type="text" name="id"><br/> Password : <input type="password" name="pw"><br/> 자기소개 <br/> <textarea name="desc" cols="50" rows="4"></textarea><br> <center> <input type="submit" value=" 전송 " name="submitbtn"> <input type="reset" value=" 초기화 " name="resetbtn"> </center> </form> </body> </html> 9/33 제 7 장

2. 폼 (Form) 을사용한사용자정보처리 <input> 의 text 와 password 및 <textarea> 로부터정보가져오기 [ 예제 7.1-2] jspbook\ch07\textform.jsp 01 02 03 04 05 06 07 08 09 10 11 12 13 14 <%@ page contenttype="text/html; charset=utf-8" %> <% request.setcharacterencoding("utf-8"); // 한글처리를위한구문 %> <html> <head><title>textform 처리 </title></head> <body> 당신이입력한정보입니다.<br/> <b>id</b> : <%= request.getparameter("id") %><br/> // ID 정보가져오기 <b>password</b> : <%= request.getparameter("pw")%><br/> // password 정보가져오기 <b> 자기소개 </b><br/> <%= request.getparameter("desc") %> <br/> // 자기소개가져오기 </body> </html> 10/33 제 7 장

2. 폼 (Form) 을사용한사용자정보처리 <input> 의 text 와 password 및 <textarea> 로부터정보가져오기 textform.jsp 에서가장중요한 jsp 코드 <%= request.getparameter("id") %> <%= request.getparameter("pw") %> <%= request.getparameter("desc") %> request 객체는웹브라우저에서웹서버로요청을전달하는것과관련된모든정보 ( 파라미터 ) 를담고있는 Jsp/Servlet 기본객체 request 객체의가장기본적인메소드 public java.lang.string getparameter( java.lang.string name) name 파라미터값 : HTML 문서의각각의 <input> 태그에서사용한 name 속성 11/33 제 7 장

2. 폼 (Form) 을사용한사용자정보처리 [note] get 방식과 post 방식의한글처리 get 방식으로전달되는파라미터한글처리를위한설정 server.xml 파일내용중일부를다음과같이수정 <Connector port="8080" protocol="http/1.1" connectiontimeout="20000" redirectport="8443" URIEncoding="utf-8"/> post 방식으로전달되는파라미터한글처리방법 request 객체의 setcharacterencoding("utf-8") 을호출한뒤한글입력내용을가져옴. 12/33 제 7 장

2. 폼 (Form) 을사용한사용자정보처리 <input> 의 checkbox 및 radio 로부터정보가져오기 [ 예제 7.2-1] jspbook\ch07\rcform.html 01 02 03 04 05 06 07 <html> <head> <meta http-equiv="content-type" content="text/html;charset=utf-8"> <title>rcform</title> </head> <body> <form action="rcform.jsp" method="post" name="textform"> 08 <table border=1> // 화면을일정하게배열하기위해 <table> 태그를사용 09 10 11 <tr> <td> 관심분야 </td> <td> 12 13 14 15 16 17 18 <input type="checkbox" name="cp" value=" 엔터테인먼트 "> 엔터테인먼트 <br/> <input type="checkbox" name="cp" value=" 컴퓨터 / 인터넷 " checked> 컴퓨터 / 인터넷 <br/> <input type="checkbox" name="cp" value=" 경제 / 비지니스 "> 경제 / 비지니스 <br/> <input type="checkbox" name="cp" value=" 스포츠 / 건강 "> 스포츠 / 건강 <br/> <input type="checkbox" name="cp" value=" 여행 / 관광 "> 여행 / 관광 <br/> </td> </tr> 13/33 제7장

2. 폼 (Form) 을사용한사용자정보처리 <input> 의 checkbox 및 radio 로부터정보가져오기 [ 예제 7.2-1] jspbook\ch07\rcform.html 19 20 21 22 23 24 25 26 27 28 29 30 31 32 <tr> <td> 결혼여부 </td> <td> <input type="radio" name="m_status" value=" 미혼 " checked> 미혼 <input type="radio" name="m_status" value=" 기혼 "> 기혼 </td> </tr> </table> <p> <input type="submit" value=" 전송 " name="submitbtn"> <input type="reset" value=" 초기화 " name="resetbtn"> </form> </body> </html> 14/33 제 7 장

2. 폼 (Form) 을사용한사용자정보처리 <input> 의 checkbox 및 radio 로부터정보가져오기 [ 예제 7.2-2] jspbook\ch07\rcform.jsp 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 <%@ page contenttype="text/html;charset=utf-8" %> <% request.setcharacterencoding("utf-8"); // 한글처리구문 %> <html> <head><title>reform_jsp</title></head> <body> 당신의관심분야와결혼여부는다음과같습니다.<br/> <% String[] interest = request.getparametervalues("cp"); // 복수개의 cp 값받아오기 for (int i = 0; i < interest.length-1; i++) { %> <b><%=interest[i]%></b>, // 마지막바로이전까지 "," 와함께출력 <%}%> <b><%=interest[interest.length-1]%></b> 과 // 마지막항목출력 <b><%=request.getparameter("m_status")%></b> // 결혼여부출력 </body> </html> 15/33 제 7 장

2. 폼 (Form) 을사용한사용자정보처리 <input> 의 checkbox 및 radio 로부터정보가져오기 [ 예제 7.3-1] jspbook\ch07\checkboxform.html 01 <html> 02 <head> 03 <meta http-equiv="content-type" content="text/html;charset=utf-8"> 04 <title>checkboxform</title> 05 </head> 06 <body> 07 <form name="myform" action="checkboxform.jsp" method="get"> 08 <br/> 09 <input type="checkbox" name="option1" value="milk">milk<br/> 10 <input type="checkbox" name="option2" value="butter" checked>butter<br/> 11 <input type="checkbox" name="option3" value="cheese" checked>cheese<br/> 12 <br/> 13 <input type="submit" value=" 전송 " name="submitbtn"> 14 <input type="reset" value=" 초기화 " name="resetbtn"> 15 </form> 16 </body> 17 </html> 16/33 제7장

2. 폼 (Form) 을사용한사용자정보처리 <input> 의 checkbox 및 radio 로부터정보가져오기 [ 예제 7.3-2] jspbook\ch07\checkboxform.jsp 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 <%@ page contenttype="text/html;charset=utf-8" %> <%@ page import="java.util.enumeration" %> // java.util.enumeration 클래스사용하기위한 import <% request.setcharacterencoding("utf-8"); // get방식으로전달될때엔꼭적을필요없음 %> <html><head><title>checkboxform_jsp</title></head> <body> 당신이체크한것은아래와같습니다. <br/><br/> <% Enumeration enums = request.getparameternames(); // 모든 name 속성이름을 Enumeration 객체로얻어오기 while (enums.hasmoreelements()) { String name = (String)enums.nextElement(); if (name.startswith("option")) { String value = request.getparameter(name); // option으로시작하는 name 속성의실제값얻어오기 out.println(value + "<br/>"); } } %> </body> </html> 17/33 제 7 장

2. 폼 (Form) 을사용한사용자정보처리 <input> 의 checkbox 및 radio 로부터정보가져오기 getparameternames() 의동작모습 18/33 제 7 장

2. 폼 (Form) 을사용한사용자정보처리 <input> 의 checkbox 및 radio 로부터정보가져오기 Enumeration 객체 enum 에대한메소드호출시의동작모습 19/33 제 7 장

2. 폼 (Form) 을사용한사용자정보처리 <select> 로부터정보가져오기 01 <html> 02 <head> 03 <meta http-equiv="content-type" content="text/html;charset=utf-8"> 04 <title>selectform</title> 05 </head> 06 <body> 07 <form action="selectform.jsp" method="get" name="textform"> 08 <table border=1> 09 <tr><td> 학력 </td> 10 <td> 11 <select name="edu"> 12 <option selected> 재학생 </option> 13 <option> 학사 </option> 14 <option> 석사 </option> 15 <option> 박사 </option> 16 </select> 17 </td> 18 </tr> 19 <tr><td> 소속국가 </td> [ 예제 7.4-1] jspbook\ch07\selectform.html 20/33 제 7 장

2. 폼 (Form) 을사용한사용자정보처리 <select> 로부터정보가져오기 20 <td> 21 <select name="na" size="3"> 22 <option selected>korea</option> 23 <option>usa</option> 24 <option>japan</option> 25 </select></td> 26 </tr> 27 <tr><td> 관심분야 </td> 28 <td> 29 <select name="like" size="4" multiple> 30 <option> 광고 / 미디어 </option> 31 <option selected> 프로듀서 </option> 32 <option selected> 컨설팅 </option> 33 <option> 그래픽디자이너 </option> 34 </select> 35 </td> 36 </tr> 37 </table> 38 <input type="submit" value=" 전송 " name="submitbtn"> 39 <input type="reset" value=" 초기화 " name="resetbtn"> 40 </form> 41 21/33 제 7 장 42 </body> </html> [ 예제 7.4-1] jspbook\ch07\selectform.html

01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 2. 폼 (Form) 을사용한사용자정보처리 <select> 로부터정보가져오기 <%@page contenttype="text/html;charset=utf-8" %> <% request.setcharacterencoding("utf-8"); String edu = request.getparameter("edu"); String na = request.getparameter("na"); String[] like = request.getparametervalues("like"); %> <html> <body> 당신의학력, 소속국가및관심분야는다음과같습니다.<br/> <b><%=edu %></b> 과 <b><%=na %></b><br/> <b><% if (like!= null) { for (int i=0;i<like.length;i++) { out.println(like[i]); } } %></b> [ 예제 7.4-2] jspbook\ch07\selectform.jsp // 사용자입력정보를 JSP 변수인 edu, na 에할당 // 관심분야리스트에서선택된여러개의값을 like 배열에할당 19 </body> 22/33 제7장 20 </html>

3. 파일업로드와 MultipartRequest post 방식의 multipart/form-data 인코딩 post 방식의인코딩종류 application/x-www-form-urlencoded ( 기본방식 ) <form action="..." method="post">... </form> multipart/form-data <form action="..." method="post" enctype="multipart/form-data">... </form> 23/33 제 7 장

3. 파일업로드와 MultipartRequest post 방식의 multipart/form-data 인코딩 [ 예제 7.5-1] jspbook\ch07\encoding.html 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 <html> <head> <meta http-equiv="content-type" content="text/html;charset=utf-8"> <title> 인코딩방식의차이점 </title> </head> // enctype의디폴트값은 "application/x-www-form-urlencoded" <body> <h2> 인코딩방식 : application/x-www-form-urlencoded</h2> <form action="upload.jsp" method="post"> // 파일업로드를위한 <input> 태그 Name: <input type="text" name="name"> <br> Age: <input type="text" name="age"> <br> File: <input type="file" name="file"> <br> <input type="submit" value="submit"> </form> <hr/> 24/33 제 7 장

17 18 19 20 21 22 23 24 25 3. 파일업로드와 MultipartRequest post 방식의 multipart/form-data 인코딩 <h2> 인코딩방식 : multipart/form-data</h2> <form action="upload.jsp" method="post" enctype="multipart/form-data"> // enctype 속성을 "multipart/formdata" 로지정 Name: <input type="text" name="name"> <br> Age: <input type="text" name="age"> <br> File: <input type="file" name="file"> <br> <input type="submit" value="submit"> </form> </body> </html> [ 예제 7.5-1] jspbook\ch07\encoding.html // 파일업로드를위한 <input> 태그 25/33 제 7 장

3. 파일업로드와 MultipartRequest 01 02 03 04 05 06 07 08 09 10 11 post 방식의 multipart/form-data 인코딩 <%@ page contenttype="text/html;charset=utf-8" %> <%@ page import = "java.io.*" %> <% out.print("<h2>" + request.getcontenttype() + "</h2>"); InputStream ins = request.getinputstream(); int data = -1; while ( (data = ins.read())!= -1 ) { out.print((char)data); } %> [ 예제 7.5-2] jspbook\ch07\upload.jsp 26/33 제 7 장

3. 파일업로드와 MultipartRequest post 방식의 multipart/form-data 인코딩 multipart/form-data 인코딩방식의입력스트림데이터 27/33 제 7 장

파일업로드구현 사용할라이브러리 3. 파일업로드와 MultipartRequest oreilly 회사에서개발한 cos 라이브러리 다운로드할라이브러리주소 http://www.servlets.com/cos/ 라이브러리설치하기 다운받아야할파일 cos-26dec2008.zip 압축푼이후이용해야할파일 cos.jar cos.jar 를저장해두어야하는위치 Tomcat 어플리케이션기본폴더밑의 lib 폴더에복사 jspbook 어플리케이션뿐만아니라 Tomcat 어플리케이션밑의모든웹어플리케이션에서이라이브러리를활용가능 28/33 제 7 장

3. 파일업로드와 MultipartRequest 파일업로드구현 [ 예제 7.6-1] jspbook\ch07\fileup.html 01 02 03 04 05 06 07 08 09 10 11 12 13 <html> <head> <meta http-equiv="content-type" content="text/html;charset=utf-8"> <title>file-upload</title> </head> <body> <form action="up.jsp" enctype="multipart/form-data" method="post"> 이름 : <input type="text" name="username"> <BR> 파일 : <input type="file" name="upfile"> <input type="submit" value="upload"> </form> </body> </html> 29/33 제 7 장

파일업로드구현 3. 파일업로드와 MultipartRequest 파일업로드를위하여이미지 bird.jpg 를선택하는화면 30/33 제 7 장

3. 파일업로드와 MultipartRequest 01 02 03 04 05 06 07 08 09 10 11 12-13 14 15 파일업로드구현 <%@ page contenttype="text/html;charset=utf-8" %> <%@ page import="com.oreilly.servlet.multipartrequest, com.oreilly.servlet.multipart.defaultfilerenamepolicy, java.io.file" %> <%@ page import="thinkonweb.util.*" %> <html> <body> <% String savepath=application.getrealpath("/ch07"); // 업로드파일을저장할폴더지정 int sizelimit = 5 * 1024 * 1024 ; // 5메가까지제한넘어서면예외발생 MultipartRequest multi = new MultipartRequest(request, savepath, sizelimit, "utf-8", new DefaultFileRenamePolicy()); // 파일업로드는이시점에이루어짐 File file = multi.getfile("upfile"); // 파일의이름얻어옴 [ 예제 7.6-2] jspbook\ch07\up.jsp 31/33 제 7 장

3. 파일업로드와 MultipartRequest 16 17 18 19 20 21 22 23 24 25 26 27 28 파일업로드구현 String filename=file.getname(); long filesize=file.length(); if(filename == null) { // 파일이업로드되지않았을때 out.print(" 파일업로드되지않았음 ( 이유 : 파일사이즈초과등 )"); } else { out.print("user Name : " + multi.getparameter("username") + "<br>"); out.print("file Name : " + filename + "<br>"); out.print("file Size : " + filesize + "<br>"); } %> </body> </html> [ 예제 7.6-2] jspbook\ch07\up.jsp 32/33 제 7 장

파일업로드구현 3. 파일업로드와 MultipartRequest MultipartRequest 객체에호출할수있는메소드에대한설명 http://www.servlets.com/cos/javadoc/com/oreilly/servlet/multipartrequest.html File 객체에호출할수있는메소드에대한설명 http://java.sun.com/javase/6/docs/api/java/io/file.html 업로드된파일화일 업로드되어진 bird.jpg 파일이 ch07 폴더에저장된모습 33/33 제7장