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

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

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

본 강의에 들어가기 전

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

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

14-Servlet

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

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

JavaGeneralProgramming.PDF

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

Microsoft PowerPoint - 4강.pptx

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

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

Data Provisioning Services for mobile clients

중간고사

J2EE Concepts

PowerPoint Presentation

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

PowerPoint Presentation

Data Provisioning Services for mobile clients

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

q 이장에서다룰내용 1 객체지향프로그래밍의이해 2 객체지향언어 : 자바 2

<4D F736F F F696E74202D20C1A63236C0E520BED6C7C3B8B428B0ADC0C729205BC8A3C8AF20B8F0B5E55D>

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

KYO_SCCD.PDF

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

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

9 차시고급위젯다루기 1 학습목표 날짜 / 시간과관련된위젯을배운다. 웹뷰를사용하여간단한웹브라우저기능을구현한다. 매니패스트파일의설정법을배운다. 2 확인해볼까? 3 날짜 / 시간위젯 1) 활동하기 활동개요

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

JAVA Bean & Session - Cookie

쉽게 풀어쓴 C 프로그래밍

PowerPoint Presentation

gnu-lee-oop-kor-lec06-3-chap7

mytalk

Microsoft PowerPoint - Java7.pptx

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

Microsoft PowerPoint - CSharp-10-예외처리

제11장 프로세스와 쓰레드

<4D F736F F F696E74202D203130C0E52EBFA1B7AF20C3B3B8AE205BC8A3C8AF20B8F0B5E55D>

PowerPoint 프레젠테이션

안드로이드기본 11 차시어댑터뷰 1 학습목표 어댑터뷰가무엇인지알수있다. 리스트뷰와스피너를사용하여데이터를출력할수있다. 2 확인해볼까? 3 어댑터뷰 1) 학습하기 어댑터뷰 - 1 -

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

TCP/IP Model

Spring Data JPA Many To Many 양방향 관계 예제

JAVA PROGRAMMING 실습 08.다형성

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

<4D F736F F F696E74202D20B5A5C0CCC5CDBAA3C0CCBDBA5F3130C1D6C2F75F31C2F7BDC32E >

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

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

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

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

JAVA PROGRAMMING 실습 09. 예외처리

<4D F736F F D20C0DAB9D9C0A5BDBAC5B8C6AE2E646F63>

Web Service Computing

PowerPoint 프레젠테이션

Network Programming

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

어댑터뷰

PowerPoint Presentation

1장시작하기전에 웹프로그래밍전반적인환경을이해한다. JSP 가등장한배경을알아본다. JSP 공부방법과알아야하는기술및수준을알아본다.

<4D F736F F F696E74202D20C1A63234C0E520C0D4C3E2B7C228B0ADC0C729205BC8A3C8AF20B8F0B5E55D>

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

Javascript

Spring Boot

PowerPoint Presentation

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

Intro to Servlet, EJB, JSP, WS

Microsoft PowerPoint - 04-UDP Programming.ppt

rmi_박준용_final.PDF

PowerPoint Template

Cluster management software

Spring Boot/JDBC JdbcTemplate/CRUD 예제

파워포인트 템플릿

MVVM 패턴의 이해

百見不如一打 Servlet& JSP Ecipse & Oracle

2 단계 : 추상화 class 오리 { class 청둥오리 extends 오리 { class 물오리 extends 오리 { 청둥오리 mallardduck = new 청둥오리 (); 물오리 redheadduck = new 물오리 (); mallardduck.swim();

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

PowerPoint Presentation

Microsoft PowerPoint - 7강.pptx

PowerPoint Presentation

Interstage5 SOAP서비스 설정 가이드

쉽게 풀어쓴 C 프로그래밍

PowerPoint Template

<C4FBC1EEB7CE20C1A4B8AEC7D5BDC3B4D95FC1A4B4E42E687770>

예제 2) Test.java class A intvar= 10; void method() class B extends A intvar= 20; 1"); void method() 2"); void method1() public class Test 3"); args) A

쉽게 풀어쓴 C 프로그래밊

Design Issues

[ 그림 8-1] XML 을이용한옵션메뉴설정방법 <menu> <item 항목ID" android:title=" 항목제목 "/> </menu> public boolean oncreateoptionsmenu(menu menu) { getme

歯MW-1000AP_Manual_Kor_HJS.PDF

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

<4D F736F F F696E74202D20C1A63038C0E520C5ACB7A1BDBABFCD20B0B4C3BC4928B0ADC0C729205BC8A3C8AF20B8F0B5E55D>

<4D F736F F F696E74202D20B5A5C0CCC5CDBAA3C0CCBDBA5F3130C1D6C2F75F32C2F7BDC32E >

쉽게 풀어쓴 C 프로그래밍

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

Microsoft PowerPoint - C++ 5 .pptx

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

쉽게 풀어쓴 C 프로그래밍

슬라이드 1

12-file.key

04장

Transcription:

혼자서일을다하는 JSP. 이젠일을 Servlet 과나눠서한다. JSP와서블릿의표현적인차이 - JSP는 <html> 내에서자바를사용할수있는수단을제공한다. - 서블릿은자바내에서 <html> 을작성할수있는수단을제공한다. - JSP나서블릿으로만웹페이지를작성하면자바와다양한코드가웹페이지내에뒤섞여있어서웹페이지의화면설계가점점어려워진다. - 서블릿이먼저등장하였으나, 자바내에 <html> 을사용하기가불편하여 JSP가등장하였다. JSP는 <html> 내부에자바를사용할수있는장점이있으나, 화면설계부분과기능부분이뒤섞여유지관리가힘들어진다. 서블릿을사용하기전의 JSP의역할 - 사용자의요청을받는다. - 사용자가요청한작업을수행한다.(DB 관련작업은자바빈이수행한다.) - 사용자가요청한작업의결과를출력한다. - JSP가사용자의모든요청을처리하는구성을 MVC 1 구조라고한다. JSP DataBase 자바빈즈 - 즉, 요청도 JSP 에서처리하고, 작업도 JSP 에서처리하고, 작업의결과도 JSP 에출력되는구조를가지고있다. - MVC 1 의구조는간단한형태의웹어플리케이션에유리한구조이다. 웹어플리케이션의모든작업을 JSP와서블릿이분할해서처리한다. - 사용자의요청은서블릿, 자료의처리는자바빈, 요청의결과는 JSP에출력되도록구성한다. - 이런구조를 MVC 2 구조라고한다. 제어역할 (Control) Servlet 데이터모델 (Model) 자바빈즈 JSP 출력역할 (View) DataBase

MVC 2구조의장점 - 사용자의요청처리와데이터의처리, 결과의처리등각각역할이분할되어있어서유지보수관리가용이하다. - 각역할별로특성화를할수있다. - 웹디자이너들의대부분은자바를모른다. MVC 2의구조는결과출력을위해서 JSP가사용되고 <html> 태그만을사용해서 JSP를설계할수있으므로웹디자이너은자바를배우지않아도웹설계를할수있다. 서블릿 (servlet) 이란? 서블릿의정체는? - 서블릿은자바로작성된클래스이다. - 하지만, 일반자바클래스가아닌서블릿이므로서블릿스러운, 즉서블릿다운기능을갖는클래스이다. - 서블릿스러운클래스로작성해야한다. 즉, 클래스가서블릿기능을부여받아수행할수있도록 HttpServlet 클래스를상속한다. public class 내가만든서블릿 extends HttpServlet { - 이서블릿이라는클래스는사용자로부터요청을받아서처리한다. 따라서, 사용자로부터전송되는 get이나 post 방식의요청을모두처리할수있어야한다. 왜냐하면, 사용자가 get방식으로요청할지, post방식으로요청할지를알수없기때문이다. - get방식의요청을처리하기위해서 doget() 메서드를오버라이드 ( 재정의 ) 한다. - doget() 메서드에는사용자로부터의요청에대한객체 () 와사용자로의결과출력에대한객체 () 를매개변수로갖는다. 그리고, 발생할수있는예외를상위객체로떠넘긴다.(throws IOException) public void doget(httpservletrequest, HttpServletResponse ) throws IOException { - post방식의요청을처리하기위해서 dopost() 메서드를오버라이드 ( 재정의 ) 한다. - dopost() 메서드에도사용자로부터의요청에대한객체 () 와사용자로의결과출력에대한객체 () 를매개변수로갖는다. 그리고, 발생할수있는예외를상위객체로떠넘긴다.(throws IOException) public void dopost(httpservletrequest, HttpServletResponse ) throws IOException { - 이를종합한서블릿의예 public class 내가작성한서블릿 extends HttpServlet { public void doget(httpservletrequest, HttpServletResponse ) throws IOException { public void dopost(httpservletrequest, HttpServletResponse ) throws IOException { - 서블릿, 알고보니별거아니네 ~. 그냥클래스일뿐이다.

서블릿으로요청은어떻게보내나? - 서블릿으로하여금사용자의요청을처리하도록하기위해서는사용자가서블릿으로요청을날려야한다. - 즉, 웹브라우저의 URL 창에서블릿이주소를입력하면서블릿이요청을받아야한다. - 사용자가서블릿으로보낸요청을서블릿이받도록하는행위는 web.xml을통해서가능하다. - web.xml에사용자의요청과서블릿클래스의연결을정의한다. <web-app 어쩌구저쩌구 > 어쩌구저쩌구 <servlet> <servlet-name> 서블릿이름 </servlet-name> 아래에명시된서블릿이름과동일해야한다. <servlet-class> 서블릿클래스이름 </servlet-class> 서블릿클래스의이름 </servlet> <servlet-mapping> <servlet-name> 서블릿이름 </servlet-name> <url-pattern> 사용자웹브라이저의 URL창에명시된문자열 </url-pattern> </servlet-mapping> </web-app> - 사용자의요청을서블릿클래스로대응시키는과정은다음과같다. 1 사용자가웹브라우저의 URL 창에주소를입력한다. 2 위에서입력한주소가 web.xml에있는지웹서버가검색한다. 3 web.xml에해당하는주소가존재하면, 해당주소에해당하는서블릿이름을다시검색한다. 4 서블릿이름을찾았으면, 다시서블릿이름에해당하는서블릿클래스를검색한다. 5 서블릿클래스를찾았으면, 드디어!! 사용자의 get요청혹은 post요청을서블릿클래스로전달한다. 6 서블릿클래스는 doget() 혹은 dopost() 메서드를호출해서동작하도록한다. 서블릿을사용한예 - 서블릿을이용해서오늘의날짜와시간을출력하는예 ( 클래스작성시서블릿을선택한다 ) package today; import 각종패키지 ; public class Ch1Servlet extends HttpServlet { protected void doget(httpservletrequest, HttpServletResponse ) throws.setcontenttype("text/html; charset=euc-kr"); 웹페이지에서한글출력기능설정 PrintWriter out =.getwriter(); 웹페이지에출력하기위해서 PrintWriter 생성 java.util.date today = new java.util.date(); 오늘의날짜와시간을생성 out.println("<html><body><h1 align=center> 오늘의날짜와시간 </h1><br>" + today + "</body></html>"); HTML을이용해서오늘날짜시간출력 protected void dopost(httpservletrequest, HttpServletResponse ) throws dopost() 메서드는사용하지않으므로비어있다.

- web.xml에서블릿을등록하고, 서블릿을호출할수있는서블릿이름과, 서블릿이름을호출할수있는 URL 문자열을정의한다. <?xml version="1.0" encoding="utf-8"?> <web-app 어쩌구저쩌구 > <display-name>servletexample1</display-name> <welcome-file-list> <welcome-file>index.html</welcome-file> <welcome-file>index.htm</welcome-file> <welcome-file>index.jsp</welcome-file> <welcome-file>default.html</welcome-file> <welcome-file>default.htm</welcome-file> <welcome-file>default.jsp</welcome-file> </welcome-file-list> <servlet> <description></description> <display-name>ch1servlet</display-name> <servlet-name>ch1servlet</servlet-name> 서블릿클래스에매칭되는서블릿이름 <servlet-class>today.ch1servlet</servlet-class> 최종적으로호출되는서블릿클래스이름 </servlet> 동일해야한다. <servlet-mapping> <servlet-name>ch1servlet</servlet-name> 아래문자열과매칭되는서블릿이름 <url-pattern>/ch1servlet</url-pattern> 웹브라우저의 URL 창에입력된문자열 </servlet-mapping> </web-app> 동일해야한다. - 다음은결과화면 - 지금작성한웹어플리케이션의구성 Servlet

요청은서블릿이받고, 결과는 JSP에출력하는예 - 위의예제는날짜를직접서블릿에서출력한다. 다음예제는서블릿이사용자의요청을 JSP로전달해서 JSP가날짜를출력한다. - 다음은서블릿클래스 package today; import 각종패키지 ; public class SimpleController extends HttpServlet { protected void doget(httpservletrequest, HttpServletResponse ) throws Object resultobject = " 안녕하세요.";.setAttribute("result", resultobject); " 안녕하세요 " 를 객체에속성으로저장 RequestDispatcher dispatcher =.getrequestdispatcher("/test2.jsp"); 사용할 JSP 를정의 dispatcher.forward(, ); 정의된 JSP 로이동 protected void dopost(httpservletrequest, HttpServletResponse ) throws - 다음은서블릿이결과출력을요청하는 test2.jsp <%@ page language="java" contenttype="text/html; charset=euc-kr" pageencoding="euc-kr"%> <%@ page import = "java.util.*" %> <html> <head> <title> 서블릿이 JSP에게보냄 </title> </head> <body> <% Date nowtime = new Date(); 스크립트릿으로오늘의날짜를생성 %> 서블릿으로부터전달된데이터는 <%=.getattribute("result") %> 입니다. 서블릿이설정한 result를읽음현재시각은 <%= nowtime %> 입니다. 오늘의날짜를출력 </body> </html>

- 다음은위에서사용된서블릿클래스와서블릿이름, URL 문자열을등록한 web.xml <?xml version="1.0" encoding="utf-8"?> <web-app 어쩌구저쩌구 > <display-name>servlettest1</display-name> <welcome-file-list> <welcome-file>index.html</welcome-file> <welcome-file>index.htm</welcome-file> <welcome-file>index.jsp</welcome-file> <welcome-file>default.html</welcome-file> <welcome-file>default.htm</welcome-file> <welcome-file>default.jsp</welcome-file> </welcome-file-list> <servlet> <description></description> <display-name>simplecontroller</display-name> <servlet-name>simplecontroller</servlet-name> <servlet-class>today.simplecontroller</servlet-class> </servlet> <servlet-mapping> <servlet-name>simplecontroller</servlet-name> <url-pattern>/simplecontroller</url-pattern> </servlet-mapping> </web-app> - 다음은결과화면 - 지금작성한웹어플리케이션의구성 Servlet JSP,

도전과제 1 : 1 부터 100 까지의합을서블릿을이용해서출력하세요. 도전과제 2 : 예전에작성했던로또번호출력을서블릿을이용해서출력하세요.