Data Provisioning Services for mobile clients

Similar documents
본 강의에 들어가기 전

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

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

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

14-Servlet

JavaGeneralProgramming.PDF

Data Provisioning Services for mobile clients

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

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

04장

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

J2EE Concepts

<4D F736F F F696E74202D203130C0E52EBFA1B7AF20C3B3B8AE205BC8A3C8AF20B8F0B5E55D>

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

1. 자바프로그램기초 및개발환경 2 장 & 3 장. 자바개발도구 충남대학교 컴퓨터공학과

<4D F736F F F696E74202D20C1A63236C0E520BED6C7C3B8B428B0ADC0C729205BC8A3C8AF20B8F0B5E55D>

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

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

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

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

chapter1,2.doc

TCP/IP Model

Network Programming

슬라이드 1

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

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

Data Provisioning Services for mobile clients

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

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

Microsoft PowerPoint - 03-TCP Programming.ppt

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

제11장 프로세스와 쓰레드

KYO_SCCD.PDF

Spring Boot

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

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

중간고사

<C4FBC1EEB7CE20C1A4B8AEC7D5BDC3B4D95FC1A4B4E42E687770>

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

JUNIT 실습및발표

쉽게 풀어쓴 C 프로그래밍

Cluster management software

PowerPoint Presentation

WAS 의동작과 WEB, Servlet, JSP 엑셈컨설팅본부 /APM 박종현 웹어플리케이션서버란? 웹어플리케이션서버방식은웹서버가직접어플리케이션프로그램을처리하는것이아니라웹어플리케이션서버에게처리를넘겨주고어플리케이션서버가어플리케이션프로그램을처리한다. 여러명의사용자가동일한페

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

Microsoft PowerPoint - 04-UDP Programming.ppt

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

PowerPoint Presentation

JAVA PROGRAMMING 실습 09. 예외처리

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

PowerPoint 프레젠테이션

rmi_박준용_final.PDF

<4D F736F F F696E74202D20B5A5C0CCC5CDBAA3C0CCBDBA5F3130C1D6C2F75F31C2F7BDC32E >

<4D F736F F F696E74202D203134C0E52EC0CCB9CCC1F620C3B3B8AE20B9D720C0A520BEEEC7C3B8AEC4C9C0CCBCC7C0C720B9E8C6F7205BC8A3C8AF20B8F0B5E55D>

PowerPoint Presentation

PowerPoint Presentation

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

PowerPoint Template

PowerPoint 프레젠테이션

Windows 8에서 BioStar 1 설치하기

Microsoft PowerPoint - chap01-C언어개요.pptx

PowerPoint Template

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

Microsoft PowerPoint - 7강.pptx

슬라이드 1

JVM 메모리구조

PowerPoint Presentation

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

PowerPoint 프레젠테이션

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

Design Issues

Interstage5 SOAP서비스 설정 가이드

PowerPoint Presentation

<4D F736F F D20C0DAB9D9C0A5BDBAC5B8C6AE2E646F63>

PowerPoint Presentation

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

슬라이드 1

<4D F736F F F696E74202D20C1A63038C0E520C5ACB7A1BDBABFCD20B0B4C3BC4928B0ADC0C729205BC8A3C8AF20B8F0B5E55D>

PowerPoint 프레젠테이션

PowerPoint Presentation

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

<4D F736F F F696E74202D2031C0E52E4A535020B9D C6574C0BB20C8B0BFEBC7D120B5BFC0FB20C0A520C7C1B7CEB1D7B7A1B9D620BCD2B0B32

Microsoft Word - src.doc

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

[Brochure] KOR_TunA

Intro to Servlet, EJB, JSP, WS

쉽게 풀어쓴 C 프로그래밊

10.0pt1height.7depth.3width±â10.0pt1height.7depth.3widthÃÊ10.0pt1height.7depth.3widthÅë10.0pt1height.7depth.3width°è10.0pt1height.7depth.3widthÇÁ10.0pt1height.7depth.3width·Î10.0pt1height.7depth.3width±×10.0pt1height.7depth.3width·¡10.0pt1height.7depth.3width¹Ö pt1height.7depth.3widthŬ10.0pt1height.7depth.3width·¡10.0pt1height.7depth.3width½º, 10.0pt1height.7depth.3width°´10.0pt1height.7depth.3widthü, 10.0pt1height.7depth.3widthº¯10.0pt1height.7depth.3width¼ö, 10.0pt1height.7depth.3width¸Þ10.0pt1height.7depth.3width¼Ò10.0pt1height.7depth.3widthµå

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

PowerPoint Template

슬라이드 1

PowerPoint 프레젠테이션

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

쉽게

PowerPoint Presentation

歯JavaExceptionHandling.PDF

신림프로그래머_클린코드.key

Microsoft PowerPoint - 4강.pptx

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

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

Transcription:

3 장. 웹어플리케이션과 JSP 및 Servlet 의이해 제 3 장

1. 웹어플리케이션개념및폴더구조 웹어플리케이션의개념 독립어플리케이션 (Stand-alone Application) 웹어플리케이션 (Web Application) 웹브라우저상에서수행되는어플리케이션 웹어플리케이션이 Tomcat 에서구현될때의규칙 임의의웹어플리케이션은 webapps 폴더하위에하나의폴더로구성 jspbook 웹어플리케이션 ( 첫번째웹어플리케이션 ) 2/35 제 3 장웹어플리케이션과 webapps 내의폴더

1. 웹어플리케이션개념및폴더구조 웹어플리케이션의개념 webapps 폴더내에새로운폴더생성 = 새로운웹어플리케이션생성 = 새로운 Context 생성 (ServletContext) jspbook 웹어플리케이션 ( 첫번째웹어플리케이션 ) myapp 웹어플리케이션 ( 두번째웹어플리케이션 ) webapps 내의두번째웹어플리케이션생성 3/35 제 3 장

1. 웹어플리케이션개념및폴더구조 웹어플리케이션의개념 웹어플리케이션은오직하나의 ServletContext 와매핑 서로다른두개의웹어플리케이션은독립적인 ServletContext 객체와매핑되어각자독립적인공간에자신만의정보를관리 ServletContext 는하나의웹어플리케이션내에여러 JSP 페이지와 Servlet 들이공동으로활용할수있는저장소로활용 웹어플리케이션폴더와 URL 간의매핑 URL 에웹어플리케이션지정없이 http://localhost:8080 으로요청 webapps 폴더밑의 ROOT 폴더로접근 http://localhost:8080/hello.jsp webapps/root/hello.jsp 파일접근 4/35 제 3 장

1. 웹어플리케이션개념및폴더구조 웹어플리케이션폴더와 URL 간의매핑 webapps 내에 jspbook 과 myapp 웹어플리케이션을생성시에함께생성되는 URL http://localhost:8080/jspbook http://localhost:8080/myapp 위 URL 로접근하면 jspbook 및 myapp 폴더밑의 index.html 또는 index.jsp 파일을접근 index.html, index.jsp: 파일명까지정확하게입력하지않아도폴더명만으로도찾아지는디폴트파일 5/35 제 3 장

1. 웹어플리케이션개념및폴더구조 웹어플리케이션폴더와 URL 간의매핑 중요메소드 2 개 request.getcontextpath() 웹어플리케이션의경로를리턴 application.getrealpath("/") 웹어플리케이션의하드디스크상실제경로를리턴 [ 예제 3.1] jspbook\ch03\path.jsp 01 <%@ page contenttype="text/html;charset=utf-8" %> 02 <html> 03 <head><title>context의경로 </title></head> 04 <body> 05 현재수행 JSP의 context ( 웹어플리케이션 ) 경로 : <%= request.getcontextpath() %> <br/> 06 현재수행 JSP의 context 실제경로 : <%= application.getrealpath("/") %> 07 </body> 08 </html> 6/35 제 3 장

1. 웹어플리케이션개념및폴더구조 웹어플리케이션폴더와 URL 간의매핑 jspbook/test 폴더밑의 testjsp.jsp 파일접근 URL http://localhost:8080/jspbook/test/testjsp.jsp jspbook/images 폴더밑의 apple.bmp 파일접근 URL http://localhost:8080/jspbook/images/apple.bmp 7/35 제 3 장

1. 웹어플리케이션개념및폴더구조 웹어플리케이션의폴더구조 일반적인웹어플리케이션의구조에는반드시 WEB-INF 폴더와 web.xml 파일이그안에존재한다. 하지만간단한웹어플리케이션인경우에는 WEB-INF 폴더및 web.xml 생략이가능하다. 영화제작과비교하면영화를만드는데에있어서뒤에서일하는스텝들과같은역할을하는파일및자원들은모두 WEB-INF 폴더내에두어야하며 WEB-INF 폴더내의파일및자원들은웹브라우저인클라이언트에서절대접근할수없다. 8/35 제 3 장

1. 웹어플리케이션개념및폴더구조 웹어플리케이션의폴더구조 폴더또는파일 / 웹어플리케이션폴더 / 설명 웹어플리케이션의루트 (ROOT) 폴더이다. 웹어플리케이션과관련된모든 HTML, JSP, Servlet, Java 클래스, 이미지파일들이이폴더밑에저장된다. 웹어플리케이션의환경설정, 관련 Serlvet 및 Utility 클래스와 JavaBeans 와 / 웹어플리케이션폴더 /WEB-INF 라이브러리들을위치시키는폴더이다. 이폴더에웹어플리케이션배치정의 자인 web.xml 이위치한다. 이곳에위치한파일은클라이언트가직접적으로 접근할수없다. / 웹어플리케이션폴더 /WEB-INF/web.xml 웹어플리케이션배치정의자역할을하는파일이다. / 웹어플리케이션폴더 /WEB-INF/classes Servlet 및 JavaBeans 클래스를포함한여러클래스들이위치하는폴더이다. / 웹어플리케이션폴더 /WEB-INF/lib / 웹어플리케이션폴더 /WEB-INF/tld / 웹어플리케이션폴더 /images 라이브러리역할을하는 jar 파일이위치하는폴더이다. JDBC 드라이버나태그라이브러리를구성하는 jar 파일이여기위치한다. 태그라이브러리관련설정파일들이위치한다. 태그라이브러리는 19장에서학습한다. images라는이름자체는 JSP/Servlet 컨테이너와약속이된것은아니지만보통이폴더내에웹어플리케이션과관련된모든이미지파일을위치시킨다. 9/35 제 3 장

2. JSP 의처리과정및 Servlet 과의관계 JSP 파일의 Servlet 파일로의자동변환 2 장에서만든다음과같은파일이있는지확인하고브라우저에서실행해보자. Tomcat 설치폴더 \webapps\jspbook\ch02\helloworld.jsp 그다음아래경로및파일을탐색기에서확인해보자. Tomcat 설치폴더 \work\catalina\localhost\jspbook\org\apache\jsp\ch02\helloworld_jsp.java Tomcat 설치폴더 \work\catalina\localhost\jspbook\org\apache\jsp\ch02\helloworld_jsp.class 10/35 제 3 장

2. JSP 의처리과정및 Servlet 과의관계 JSP 파일의 Servlet 파일로의자동변환 JSP 파일은실행이될때일단 Servlet 인 Java 소스파일로변환되고다시클래스파일로컴파일됨 이클래스파일이 JSP/Servlet 컨테이너인 Tomcat 내에서실행되어그결과가최종적으로웹브라우저로전달 11/35 제 3 장

2. JSP 의처리과정및 Servlet 과의관계 JSP 파일의 Servlet 파일로의자동변환 개발자에게코딩하기복잡한 Servlet 대신에스크립트언어인 JSP 로작성하게하고 JSP/Servlet 컨테이너인 Tomcat 이내부에서 JSP 파일을 Servlet 으로변환및컴파일하여클래스파일을메모리에적재한후실행하여응답한다. 01 02 03 04 05 06 07 jspbook\ch02\helloworld.jsp <%@ page contenttype="text/html;charset=utf-8" %> <html> <body> <% out.println("hello World!"); %> <br/> <% out.println(" 안녕하세요."); %> </body> </html> 12/35 제 3 장

2. JSP 의처리과정및 Servlet 과의관계 JSP 파일의 Servlet 파일로의자동변환 Tomcat 설치폴더 \work\catalina\localhost\jspbook\org\apache\jsp\ch02\helloworld_jsp.java package org.apache.jsp.ch02; import javax.servlet.*; import javax.servlet.http.*; import javax.servlet.jsp.*; public final class helloworld_jsp extends org.apache.jasper.runtime.httpjspbase implements org.apache.jasper.runtime.jspsourcedependent {... 중간생략... public void _jspinit() {... 중간생략... } public void _jspdestroy() { } public void _jspservice(httpservletrequest request, HttpServletResponse response) throws java.io.ioexception, ServletException {... 중간생략 } 13/35 제 3 장

2. JSP 의처리과정및 Servlet 과의관계 JSP 파일의 Servlet 파일로의자동변환 Tomcat 설치폴더 \work\catalina\localhost\jspbook\org\apache\jsp\ch02\helloworld_jsp.java ( 계속 ) try { }... 중간생략... out.write("\r\n"); out.write("<html>\r\n"); out.write("<body>\r\n"); out.println("hello World!"); out.write(" <br/>\r\n"); out.println(" 안녕하세요."); out.write("\r\n"); out.write("</body>\r\n"); out.write("</html>\r\n"); } catch (Throwable t) {... 중간생략... } finally { _jspxfactory.releasepagecontext(_jspx_page_context); } } JSP 파일에작성한내용이이곳에존재함. out 객체의 write 메소드와 println 메소드가 JSP 파일의내용을출력시켜주는역할을수행 14/35 제 3 장

2. JSP 의처리과정및 Servlet 과의관계 JSP 파일재요청시의동작과정 변환및컴파일과정은해당 JSP 를웹브라우저에서맨처음요청했을때에만이루어지는과정 한번이라도요청했던 JSP 파일을다시임의의사용자가재요청하면이미메모리에적재된클래스를재실행 JSP 로작성된웹페이지의대부분의응답은하드디스크에대한접근없이바로메모리에서응답을주기때문에대체로평균응답시간이매우짧다. 15/35 제 3 장

2. JSP 의처리과정및 Servlet 과의관계 JSP 파일수정후같은 JSP 재요청시의동작과정 JSP 의장점 : JSP 를수정하면 Tomcat 이자동으로변환및컴파일수행 클래스파일이 JSP 파일보다이후에만들어진최신클래스파일인지반드시확인하여수행결과를웹브라우저로보내준다 16/35 제 3 장

2. JSP 의처리과정및 Servlet 과의관계 종합적인 JSP 파일처리과정 17/35 제 3 장

3. Servlet 의이해 Servlet 의생성배경및장점 JSP 은 Servlet 을기반으로한기술 JSP 는 Servlet 을대체하는기술이아니라상호보완적인기술 Servlet 은기본적으로 Java 언어기반이므로 Java 언어에대한프로그램실력을쌓는것이중요 18/35 제 3 장

3. Servlet 의이해 Servlet 의생성배경및장점 [Servlet 의장점 ] Java 를기반으로하므로 Java API 를모두사용할수있다. 쓰레드를기반으로하므로웹어플리케이션서버자원을효율적으로활용할수있다. 웹어플리케이션에서효율적인자료공유방법을제공한다. 비즈니스로직과프리젠테이션로직을분리할수있다. 컨트롤러와뷰의역할분담으로인해웹디자이너와개발자간의효율적인업무분담이가능하다. 유지보수가수월하다. 기능확장이용이하다. Servlet 컨텍스트리스너및필터 Servlet 등고급프로그래밍기법을통해보다효과적인웹어플리케이션설계가가능해진다. 19/35 제 3 장

3. Servlet 의이해 Servlet 동작과정과생명주기 20/35 제 3 장

Servlet 동작과정과생명주기 서블릿에대한사용자요청처리과정 web.xml 파일을참조해 URL 매핑 (URL Mapping) 을확인 해당 Servlet 인스턴스로부터스레드를생성 service() 메소드호출 3. Servlet 의이해 즉, 모든사용자요청에대해개별적인 service() 메소드가호출 GET 또는 POST 요청을구분하여 doget() 또는 dopost() 메소드가호출됨 따라서 Servlet 개발자는 doget() 또는 dopost() 메소드에대부분의필요한기능을구현한다. Servlet 구조 21/35 제 3 장

Servlet 동작과정과생명주기 3. Servlet 의이해 Servlet 은컴파일과정이필요하고특정클래스를상속받아구현 javax.servlet.http.httpservlet 클래스를상속하여구현 javax.servlet.http.httpservlet 을상속받은 MyServlet 동작구조 개발자가구현해야할부분은 doget() 또는 dopost() 메소드에작성 하지만, doget() 메소드에서다시 dopost() 를호출하고 dopost() 내부에만관련처리과정을코딩하는편이편하다. 22/35 제 3 장

클라이언트요청 #1 - GET 방식 단순히서버에있는정보를가져오기위해사용 특징 3. Servlet 의이해 HTML, 이미지등을웹브라우저에서가져오기위한일반적방식 서버로의데이터전달은 QUERY_STRING 환경변수를통해서가능 QUERY_STRING: 요청 URL 에서? 이후의값들. 속성 = 값 형태로사용해야하며 & 는여러속성값을전달할때연결해주는문자열이다. 클라이언트에서서버로전달할수있는데이터크기 (QUERY_STRING ) 는최대 240Byte 까지가능하다. 요청 URL 에값들이노출되기때문에보안문제가생길수있다. 23/35 제 3 장

클라이언트요청 #2 - POST 방식 클라이언트에있는정보를서버로올리기위해사용 특징 3. Servlet 의이해 예를들어 HTML 폼에입력한내용을서버에전달할때사용 서버에전달할수있는데이터크기는제한이없다 URL에전달하려는정보값이표시되지않는다. 그래서로그인정보를전달할때에는 POST 방식을사용한다. 24/35 제 3 장

4. 첫번째 servlet 프로그램 -helloworldservlet 컴파일을위한환경설정 일반적인자바프로그램의라이브러리들이위치한곳 C:\Program Files\Java\jdk1.6.0_13\jre\lib 위폴더의 rt.jar 에대부분의표준라이브러리들이위치 위폴더에있는.jar 및.class 들은 CLASSPATH 지원없이 javac 프로그램자체적으로자동으로검색하여필요한내용을참조 Servlet 프로그램이활용하는라이브러리들이위치한곳 C:\apache-tomcat-6.0.18\lib 위폴더의 servlet-api.jar 파일에대부분의라이브러리들이위치 Servlet 소스코드를 javac.exe 로컴파일하기위해서는 CLASSPATH 환경변수에등록필요 컴파일시에 CLASSPATH 환경변수값설정옵션 : -cp javac -cp %CLASSPATH%;%CATALINA_HOME%\lib\servlet-api.jar HelloWorldServlet.java 기존의 CLASSPATH 환경변수들도그대로설정 TOMCAT 이설치된폴더 (2 장에서등록한환경변수 ) 25/35 제 3 장

4. 첫번째 servlet 프로그램 -helloworldservlet 컴파일을위한환경설정 컴파일된 class 파일이위치해야하는곳 \ 웹어플리케이션폴더 \WEB-INF\classes 컴파일시에컴파일된 class 파일이위치해야하는곳지정옵션 : -d 웹어플리케이션폴더가 jspbook일때다음과같이컴파일 javac -d %CATALINA_HOME%\webapps\jspbook\WEB-INF\classes HelloWorldServlet.java cp 와 d 를함께사용하여 javac 명령을새로구성한배치화일 [ 예제 3.2 ] Java 설치폴더 \bin\sjc.bat 01 - javac -cp %CLASSPATH%;%CATALINA_HOME%\lib\servlet-api.jar -d %CATALINA_H OME%\webapps\jspbook\WEB-INF\classes %1 sjc.bat 파일을실행시킬때인자로들어오는 Java 파일명으로자동으로대체됨 26/35 제 3 장

4. 첫번째 servlet 프로그램 -helloworldservlet Servlet 등록및 URL 매핑 Servlet 을작성하여실행하려면반드시 JSP/Servlet 컨테이너에등록을시키고관련 URL 을매핑하는작업필요 웹어플리케이션의배치정의자역할을수행하는 web.xml 에기록 엘리먼트 설명 <servlet> 웹어플리케이션내에서지칭하기위한 Servlet 이름과실제 Servlet 클래스 이름을매핑하는역할을한다. <servlet-name>servlet 이름 </servlet-name> 웹어플리케이션내에서지칭하는 Servlet 이름을명기한다. <servlet-class> 클래스이름 <servlet-class> 실제 Servlet 클래스이름을명기한다. 확장자 class 는포함하지않는다. </servlet> <servlet> 엘리먼트의종료태그 <servlet-mapping> Servlet 을접근하기위한 URL 을정한다. <servlet-name>servlet 이름 </servlet-name> URL 매핑을원하는 Servlet 이름을명기한다. <url-pattern>url</url-mapping> </servlet-mapping> Servlet 을접근하기위한 URL 을명기한다. 보통 "/" 으로시작되며 "/" 의의 미는웹어플리케이션의루트를의미한다. <servlet-mapping> 엘리먼트의종료태그 27/35 제 3 장

4. 첫번째 servlet 프로그램 -helloworldservlet Servlet 등록및 URL 매핑 컴파일한서블릿을 http://localhost:8080/jspbook/helloservlet URL 로접근하기위한서블릿매핑방법 28/35 제 3 장

4. 첫번째 servlet 프로그램 -helloworldservlet Servlet 등록및 URL 매핑 컴파일한서블릿을 http://localhost:8080/jspbook/servlets/helloservlet URL 로접근하기위한서블릿매핑방법 <url-pattern> 태그값에 /servlets/helloservlet 입력 [ 실습 ] 단계 1 jspbook 폴더밑에 WEB-INF 폴더생성 29/35 제 3 장

4. 첫번째 servlet 프로그램 -helloworldservlet [ 실습 ] 단계 2 WEB-INF 폴더내에 classes 폴더와 java_sources 폴더생성 classes 폴더명은정확하게기입 java_sources 폴더명은변경해도상관없음 30/35 제 3 장

4. 첫번째 servlet 프로그램 -helloworldservlet [ 실습 ] 단계 3 서블릿코딩 [ 예제 3.2] jspbook\web-inf\java_sources\helloservlet.java 01 02 03 04 05 06 07 08 09 10-11 12 13 14 15 16 17 18 19 20 import javax.servlet.*; import javax.servlet.http.*; import java.io.*; public class HelloWorldServlet extends HttpServlet { public void init() { // Servlet 객체최초생성시한번만호출 System.out.println("Init!!!"); } public void doget(httpservletrequest request, HttpServletResponse response) throws IOException, ServletExce ption { // Servlet 요청시매번호출 System.out.println("doGet!!!"); response.setcontenttype("text/html"); PrintWriter out = response.getwriter(); out.println("<html><body bgcolor=\"yellow\">hello Servlet!</body></html>"); } public void destroy() { // Servlet이메모리에서삭제될때한번만호출 System.out.println("destroy!!!"); } } 31/35 제 3 장

4. 첫번째 servlet 프로그램 -helloworldservlet [ 실습 ] 단계 4 컴파일 > cd C:\apache-tomcat-6.0.18\webapps\jspbook\WEB-INF\java_sources > sjc HelloWorldServlet.java WEB-INF 폴더밑의 classes 에서블릿클래스가생성되었는지확인 32/35 제 3 장

4. 첫번째 servlet 프로그램 -helloworldservlet [ 실습 ] 단계 5 web.xml 에서블릿등록 [ 예제 3.2 ] jspbook\web-inf\web.xml 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 <?xml version="1.0" encoding="utf-8"?> <web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" xsi:schemalocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.5"> <description> JSPBOOK Examples. </description> <display-name>jspbook Examples</display-name> <servlet> <servlet-name>helloservlet</servlet-name> <servlet-class>helloworldservlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>helloservlet</servlet-name> <url-pattern>/helloservlet</url-pattern> </servlet-mapping> </web-app> 33/35 제 3 장

4. 첫번째 servlet 프로그램 -helloworldservlet [ 실습 ] 단계 5 웹브라우저에서실행 http://localhost:8080/jspbook/helloservlet 첫번째 Servlet 인 helloservlet 수행확인 34/35 제 3 장

4. 첫번째 servlet 프로그램 -helloworldservlet [ 실습 ] 단계 6 cmd 창에서출력결과확인 init() 메소드와 doget() 메소드수행확인 브라우저에서새로고침할때마다 cmd 창확인 새로고침할때마다 doget() 메소드수행확인 35/35 제 3 장