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

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

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

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

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

<4D F736F F F696E74202D203130C0E52EBFA1B7AF20C3B3B8AE205BC8A3C8AF20B8F0B5E55D>

Microsoft PowerPoint - 7강.pptx

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

쉽게 풀어쓴 C 프로그래밍

PowerPoint Template

<4D F736F F F696E74202D20C1A63234C0E520C0D4C3E2B7C228B0ADC0C729205BC8A3C8AF20B8F0B5E55D>

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

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

Microsoft PowerPoint 웹 연동 기술.pptx

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

12-file.key

14-Servlet

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

Microsoft PowerPoint - 04-UDP Programming.ppt

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

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

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

Microsoft Word - src.doc

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

Microsoft PowerPoint - 03-TCP Programming.ppt

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

PowerPoint 프레젠테이션

문서의 제목 나눔고딕B, 54pt

PowerPoint 프레젠테이션

Microsoft PowerPoint 세션.ppt

Microsoft PowerPoint - 4강.pptx

The Pocket Guide to TCP/IP Sockets: C Version

PowerPoint Presentation

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

2009년 상반기 사업계획

Data Provisioning Services for mobile clients

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

기술문서 작성 XXE Attacks 작성자 : 인천대학교 OneScore 김영성 I. 소개 2 II. 본문 2 가. XML external entities 2 나. XXE Attack 3 다. 점검방법 3 라.

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

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

Microsoft PowerPoint - CSharp-10-예외처리

04장

PowerPoint Presentation

Cluster management software

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

PowerPoint 프레젠테이션

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

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

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 프레젠테이션

<443A5C4C C4B48555C B3E25C32C7D0B1E25CBCB3B0E8C7C1B7CEC1A7C6AE425CBED0C3E0C7C1B7CEB1D7B7A55C D616E2E637070>

PowerPoint 프레젠테이션

JAVA PROGRAMMING 실습 09. 예외처리

PowerPoint 프레젠테이션

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

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

MySQL-.. 1

Data Sync Manager(DSM) Example Guide Data Sync Manager (DSM) Example Guide DSM Copyright 2003 Ari System, Inc. All Rights reserved. Data Sync Manager

3장

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

Microsoft Word - ntasFrameBuilderInstallGuide2.5.doc

Microsoft PowerPoint - java1-lab5-ImageProcessorTestOOP.pptx

학습목표 텍스트파일을다룰수있다. 스트림읽기, 쓰기를안다. 2

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

Microsoft PowerPoint Python-WebDB

PowerPoint 프레젠테이션

Data Provisioning Services for mobile clients

Javascript

Java

PowerPoint Presentation

Data Provisioning Services for mobile clients

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

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

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

쉽게 풀어쓴 C 프로그래밍

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

PowerPoint Presentation

<4D F736F F F696E74202D20B5A5C0CCC5CDBAA3C0CCBDBA5F3130C1D6C2F75F31C2F7BDC32E >

Microsoft PowerPoint - Chap6_cmpl

PowerPoint Presentation

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

중간고사

PHP & ASP

목차 INDEX JSON? - JSON 개요 - JSONObject - JSONArray 서울시공공데이터 API 살펴보기 - 요청인자살펴보기 - Result Code - 출력값 HttpClient - HttpHelper 클래스작성 - JSONParser 클래스작성 공공

<4D F736F F F696E74202D20C1A63236C0E520BED6C7C3B8B428B0ADC0C729205BC8A3C8AF20B8F0B5E55D>

<4D F736F F F696E74202D20B8AEB4AABDBA20BFC0B7F920C3B3B8AEC7CFB1E22E BC8A3C8AF20B8F0B5E55D>

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

Visual Basic 반복문

17장 클래스와 메소드

쉽게 풀어쓴 C 프로그래밍

<4D F736F F F696E74202D20C1A63235C0E520B3D7C6AEBFF6C5A920C7C1B7CEB1D7B7A1B9D628B0ADC0C729205BC8A3C8AF20B8F0B5E55D>


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

Secure Programming Lecture1 : Introduction

슬라이드 1

PowerPoint Presentation

PHP & ASP

rmi_박준용_final.PDF

쉽게 풀어쓴 C 프로그래밊

Secure Programming Lecture1 : Introduction

Data Provisioning Services for mobile clients

Transcription:

JSP 의내장객체 response 객체 - response 객체는 JSP 페이지의실행결과를웹프라우저로돌려줄때사용되는객체이다. - 이객체는주로켄텐츠타입이나문자셋등의데이터의부가정보 ( 헤더정보 ) 나쿠키 ( 다음에설명 ) 등을지정할수있다. - 이객체를사용해서출력의방향을다른 URL로바꿀수있다. 예 ) response.sendredirect("http://www.paran.com"); out 객체 - 이객체는페이지에실행결과를출력할때사용되는객체이다. - HTTP 형태로출력할수있다. - 일반적으로스크립트릿에서출력결과를클라이언트로보여줄때사용한다. - 주로사용하는메서드는다음과같다. 메서드 기능 print() 괄호안의내용을클라이언트로출력한다. println() 괄호안의내용을클라이언트로출력하고다음줄로옮긴다. newline() 다음줄로줄옮김을한다. flush() 버퍼에들어있는내용을모두클라이언트로출력한다. getbuffersize() 현재출력용버퍼의크기를알려준다. getremaining() 현재버퍼에서사용하지않는공간의크기를알려준다. clearbuffer() 버퍼의모든내용을출력하고버퍼를비운다. - 사용예 ) int x = 5; int y = 10; int z = x + y; out.print(" 지금이페이지에는값이 " + x + " 인 x 변수와값이 "); out.print(y + " 인변수가있다.<br>"); out.print(" 이두변수의값을합치면 <strong>" + z + "</strong> 이된다."); out.print("<br>"); out.print(" 버퍼의크기는 " + out.getbuffersize()); out.print("<br>"); out.print(" 남아있는빈공간은 " + out.getremaining()); out.flush(); application 객체 - 이객체는웹어플리케이션 ( 즉, 웹프로젝트 ) 디렉터리에속하는모든웹자원들의집합을의미한다. - 따라서, 이객체에는개발하고있는웹어플리케이션의모든환경정보들이저장되어있다. 예 ) String apppath = application.getcontextpath(); - 위의예에서사용한 application.getcontextpath() 는웹어플리케이션의경로이름을알려준다. - 1 -

예 ) String absolutepath = application.getrealpath("/ 프로젝트명 /JSP 파일명 "); - 위의예에서사용한 application.getrealpath("/ 프로젝트명 /JSP 파일명 ") 은지정된 JSP 파일 의절대경로를알려준 다. 파일처리 ( 파일로부터데이터를읽는처리 ) - JSP에서파일을읽기위해서는자바프로그램의파일읽기와동일하게처리한다. - java.io.* 패키지를사용한다. - 예외처리가필요하다. - 파일처리과정은다음과같다. 1 클라이언트에서웹서버의 JSP 페이지를호출한다. 2 서버폴더에서파일을읽는다. 3 읽은내용을클라이언트 ( 웹브라우저 ) 로전송한다. 파일처리시주의사항 : 데이터를저장하는파일의위치를이클립스프로젝트의 "WebContent" 폴더에위치시키면모든클라이언트에서접근이가능하므로, 노출되거나변경될가능성이높게된다. 따라서, 클라이언트에서접근하지못하도록 "WEB-INF" 라는폴더에일반적으로파일을위치시킨다. 어떠한파일이라도 "WEB-INF" 폴더에위치시키면클라이언트는접근할수없다. - 웹어플리케이션에서의파일의경로를알기위해서는다음과같이한다. String filepath = application.getrealpath("/web-inf/input.txt"); - 위의예는 "input.txt" 파일의절대경로를 "filepath" 변수에저장한다. 텍스트파일의내용을읽어서웹브라우저로출력하는 JSP 의예 - 다음예제를실행하기위해서는 "/WEB-INF/" 폴더에 "input.txt" 파일을미리생성해야한다. <HEAD><TITLE> 파일읽기 </TITLE></HEAD> BufferedReader reader = null; String filepath = application.getrealpath("/web-inf/input.txt"); reader = new BufferedReader(new FileReader(filePath)); while (true) { String str = reader.readline(); if (str == null) break; out.println(str + "<BR>"); catch (FileNotFoundException fnfe) { out.println(" 파일이존재하지않습니다."); - 2 -

catch (IOException ioe) { out.println(" 파일을읽을수없습니다."); finally { reader.close(); catch (Exception e) { 다음은특정디렉토리에있는파일들의목록을웹브라우저에출력하고, 사용자가특정한파일을클릭하면클릭한파일의내용을출력하는 JSP - 이예제를실행하기위해서는다음의순서로작업한다. 1 "/WEB-INF/songs" 라는디렉토리를만들고, 이디렉토리에노래가사를적은텍스트파일들을저장한다. 2 다음의 JSP를작성한다. @page import="java.io.file" <html> <head> <meta http-equiv="content-type" content="text/html; charset=euc-kr"> <title>insert title here</title> </head> <body> String dirpath = application.getrealpath("/web-inf/songs"); File dir = new File(dirPath); String filenames[] = dir.list(); <H4> 노래파일목록 </H4> for (String filename : filenames) { <A HREF='SongReader.jsp?FILE_NAME== filename '> = filename </A><BR> </body> </html> - 3 -

3 위의 2에서링크를클릭하면 SongReader.jsp로이동하면서 FILE_NAME 이라는파라미터에는클릭한파일이름이저장된다. 그러므로, SongReader.jsp 파일에서 getparameter() 메소드를사용해서 FILE_NAME이라는파라미터에저장되어있는파일이름을처리하도록한다. 4 아래와같이 SongReader.jsp 파일을생성한다. @page import="java.io.*" String filename = request.getparameter("file_name"); <HEAD><TITLE> 노래가사 </TITLE></HEAD> <H4> 파일이름 : = filename </H4> BufferedReader reader = null; String filepath = application.getrealpath("/web-inf/songs/" + filename); reader = new BufferedReader(new FileReader(filePath)); while (true) { String str = reader.readline(); if (str == null) break; out.println(str + "<BR>"); catch (FileNotFoundException fnfe) { out.println(" 파일이존재하지않습니다."); catch (IOException ioe) { out.println(" 파일을읽을수없습니다."); finally { reader.close(); catch (Exception e) { - 4 -

도전과제 - /WEB-INF 폴더안에파일들을만든다. - 파일의이름은본인의친구이름으로한다. 파일의내용은친구의전화번호와주소로한다. - 한글 처리를한다. 한글처리는다음과같이한다. String filename = request.getparameter("file_name"); filename = new String(filename.getBytes("ISO-8859-1"), "euc-kr"); - 본인친구들의이름이웹브라우저에출력되고, 친구의이름을클릭하면친구의전화번호와주소가출력되는 JSP를작성하세요. - 5 -

파일처리 ( 파일에데이터를기록하는처리 ) - JSP에서파일을읽기위해서는자바프로그램의파일읽기와동일하게처리한다. - java.io.* 패키지를사용한다. - 예외처리가필요하다. - 파일처리과정은다음과같다. 1 클라이언트에서입력된문장을웹서버의 JSP 페이지로전송한다. 2 서버폴더에서파일을생성해서보내온문장을저장한다. 3 저장되었습니다. 라는메세지를클라이언트 ( 웹브라우저 ) 로전송한다. 게시판글쓰기기능의 HTML <HEAD> <META http-equiv="content-type" content="text/html;charset=euc-kr"> <TITLE> 게시판글쓰기 - 입력화면 </TITLE> </HEAD> <H2> 글쓰기 </H2> <FORM ACTION=BBSPost.jsp METHOD=POST> 이름 : <INPUT TYPE=TEXT NAME=NAME><BR> 제목 : <INPUT TYPE=TEXT NAME=TITLE><BR> <TEXTAREA COLS=30 ROWS=5 NAME=CONTENT></TEXTAREA><BR> <INPUT TYPE=SUBMIT VALUE=' 저장 '> </FORM> 게시판의내용을파일로저장하는 BBSPost.jsp @page import="java.io.*, java.util.date" <HEAD><TITLE> 게시판글쓰기? 결과화면 </TITLE></HEAD> <H2> 글쓰기 </H2> request.setcharacterencoding("euc-kr"); String name = request.getparameter("name"); String title = request.getparameter("title"); String content = request.getparameter("content"); Date date = new Date(); Long time = date.gettime(); String filename = time + ".txt"; PrintWriter writer = null; - 6 -

String filepath = application.getrealpath("/web-inf/bbs/ + filename); writer = new PrintWriter(filePath); writer.printf(" 제목 : %s %n", title); writer.printf(" 글쓴이 : %s %n", name); writer.println(content); out.println(" 저장되었습니다."); catch (IOException ioe) { out.println(" 파일에데이터를쓸수없습니다."); finally { writer.close(); catch (Exception e) { 문제점발생 : 위의결과 JSP 즉, BBSPost.jsp 페이지에서 새로고침 버튼을누르면, 계속해서동일한내용의파 일이생성된다. 따라서, 하나의파일만생성하도록변경해야한다. 도전과제 : 위의문제점을해결하도록한다. - 힌트 1 : 위의 BBSPost.jsp를두개의페이지로분리한다. - 힌트 2 : 두개로분리된첫번째페이지에서파일을생성하고데이터를저장한후두번째페이지를호출한다. 호출하면서, 파일생성 성공 인지, 실패 인지의정보도같이넘겨준다. - 힌트 3 : 두개로분리된두번째페이지에서 성공 을받으면클라이언트화면에 저장되었습니다. 를출력하고, 실패 를받으면 파일에데이터를기록할수없습니다. 를출력한다. - 7 -