Introduction to Servlets

Slides:



Advertisements
Similar presentations
SMART MANAGED INSTRUCTION WITH SNS 도지원 강동하 나지범 박창현 최병찬 SixSignal Capstone Design 2012.
Advertisements

Web Based Data Warehouse Query Tool 이화여자대학교 2002 년 컴퓨터학과 졸업프로젝트 14 조.
웹 서버 구축 숭의여대 인터넷정보과 최지영. 웹 ? 웹사이트 ? 웹서버 ? 웹서비스 ? IIS? 아파치 ?
2009년 IT인재개발원 [연수생 모집요강]
11장. 프로토콜 핸들러 AI &HC I LAB 김 성 현.
4 서블릿의 라이프 사이클.
Spring MVC ㅇ 스프링 MVC 구성요소 설명 DispatcherServlet 클라이언트의 요청을 컨트롤러에게 전달하고
웹사이트 구축 제안서 ㈜미래시스템 광주광역시 서구 치평동 (3층)층
APPEON SOLUTION INTRODUCTION.
Network Lab. Yong bae, Kim
Understanding of Socket and File I/O
Internet Computing KUT Youn-Hee Han
Python Bottle Web Framework
어서와 Java는 처음이지! 제1장 기초 사항 IT응용시스템공학과 김형진 교수.
2 서블릿의 기초.
3장. 웹 어플리케이션과 JSP 및 Servlet의 이해 제3장.
1. JSP(Java Server Pages) 소개
9 표준 액션.
자바 서버 API와 서블릿 데이타베이스 실험실 이찬섭, 박용문.
Chapter 01 : Java EE 개요. chapter 01 : Java EE 개요.
Internet Computing KUT Youn-Hee Han
5 익셉션 처리.
11 필터와 래퍼.
Introduction to Web Service Computing
DB와 WEB 연동(1) [2-Tier] Java Applet 이용
1. JSP(Java Server Pages) 소개
메소드 호출과 힙 원격 메소드 호출 서블릿 엔터프라이즈 자바 빈즈
Power Java 제4장 자바 프로그래밍 기초.
3 JSP의 기초.
7 JSP의 기초.
4 쿠키와 세션.
1강 01장. 웹과 자바.
Chapter 01 : Java EE 개요. chapter 01 : Java EE 개요.
ASP 정 보 보 호 학 과 양 계 탁.
NTAS 소개 (Network Transaction Application Server)
임베디드 프로그래밍 Lecture #
Java Web Programming 4일차.
강의 보조자료 & Homework #2 - 로그인과 이미지 카운터 만들기 -
웹서버와 설치에 필요한 것 WWW ( world wide web ) TCP/IP 프로토콜을 이용하는 클라이언트/서버 환경
9강. JSP 본격적으로 살펴보기-I JSP 태그의 개념 이해 JSP 동작 원리 JSP 내부 객체
제14장 자바 서블릿.
웹 애플리케이션 로깅 및 오류 처리 기법 웹 애플리케이션 로깅의 필요성을 이해한다 로깅의 분류 및 구현 방안을 학습한다
Network Programming(1)
Html(front end) & jsp(back end)
JDBC (Java Database Connectivity)
Open API - Naver (Application Programming Interface )
1강. 웹프로그래밍 웹프로그래밍이란? JAVA웹 웹프로그램의 동작 필요한 학습 Lecturer Kim Myoung-Ho
03. 안드로이드를 위한 Java 문법 제목. 03. 안드로이드를 위한 Java 문법 제목.
CGI (Common Gateway Interface)
3. Spring 프레임워크의 IoC 컨테이너 개념
교육지원 시스템 개발 ProjectTeam (매경 2조).
NTAS 소개 (Network Transaction Application Server)
CGI (Common Gateway Interface)
2장. 홈페이지를 만들기 전에 홈페이지 제작 목적과 제작 과정 홈페이지 제작 관련 기술들 홈페이지 제작에 필요한 준비물
myfood.com 상명대 맛집 홈페이지 구축 제안서
Spring DI 이해 및 활용.
3장. 웹로직 서버에서의 서블릿과 JSP의 운용 3-1. 서블릿, JSP를 실행하기 전의 환경 설정
Internet Computing KUT Youn-Hee Han
Ⅳ. 컴퓨터와 생활.
Chapter 08 : 서블릿 고급3. chapter 08 : 서블릿 고급3 학습목표 서블릿 속성과 Scope ServletContext HttpSession HttpServletRequest Filter API 요청 필터 응답 필터 url-pattern 8 가지.
리스너와 서블릿 필터 초기화 파라미터 관리 개념을 이해한다 리스너 구조를 이해하고 프로그래밍 기법을 배운다
Internet Computing KUT Youn-Hee Han
커뮤니티사이트 : 새로운 기준으로의 도발.
JSP와의 첫 만남 간간한 JSP 프로그램을 작성하면서 앞으로 학습에 필요한 과정을 익힌다.
ASP 기초개념 ASP란? ActiveX 서버 컴포넌트.
Introduction to JSP & Servlet
제 17 장 MVC 모델과 구현 학기 인터넷비즈니스과 강 환수 교수.
Architecture.
웹 프로그래밍 기술 요약 Yang-Sae Moon Department of Computer Science
Java의 정석 제 7 장 객체지향개념 II-3 Java 정석 남궁성 강의
Presentation transcript:

Introduction to Servlets weqwe Data Warehousing Lab 2002.10.14

목차 Servlet 개요 Servlet의 장점과 CGI와의 비교 Servlet기초 간단한 예제들 WEF-INF directory Serverlt lifecycle Data Warehousing Lab 2002.10.14

1. Servlet 개요 1.1 정의 Request/Response 를 지향하는 service기능을 향상시키기 위한 server side에서 돌아가는 모듈 Web Application Server에 의해서 관리 동적 contents 생성 위한 web component 플랫폼에 독립적인 java class파일로 되어 있다. servlet engine : - java가 탑재된 container, - servlet 의 기능을 제공하는 web server의 확장. Servlet container : - servlet의 lifecycle을 관리 - client의 요청있을 경우 servlet실행시켜 rquest에 대한 response를 처리하는 server module Web application을 구현할 수 있는 방법으로는 cgi, perl, asp, servlet등 여러 가지 방법이 있는데 그 중에서 java언어를 이용한 servlet에 대해서 알아보겠다. 여기서 service라 함은 osi7 layer에서 애플리케이션 레벨의 프로토콜인 ftp, dhcp, http,등을 말한다. Server container: 웹서버 혹은 웹 애플리케이션 서버의 일부분이라고 보면 된다. Data Warehousing Lab 2002.10.14

1.2 http request, response HTTP는 매우 간단, 지속성 없는 protocol Data Warehousing Lab 2002.10.14

1.3 servlet request, response 처리 절차 http request 로딩 여부확인 Client Server Servlet Engine http response 메모리에 없음 메모리에 존재 일반적으로 서블릿은 http를 이용하는 방식이 가장 많이 쓰인다. http servlet을 구현하기 위해서는 httpservlet이라는 클래스를 상속받아 사용한다. 다음의 그림을 보면 http servlet이 어떻게 동작되는지 알 수 있다. 클라이언트가 웹 브라우저를 통하여 servlet을 호출한다. Was가 request를 받아 해당 servlet이 로딩되어 있는지 검토한 후 최초의 request로 servlet클래스가 로딩되지 않았으면 servlet클래스를 로딩하고 servlet클래스가 이미 로딩되어 있다면 과정 생략. Serlvet이 결과를 was에 html형태로 output을 보내준다. Was가 결과값을 클라이언트에 response한다. Servlet 로딩 Init Service output Data Warehousing Lab 2002.10.14

1.4 servlet API Servlet Interface GenericServlet Abstract Class 2개의 package: javax.servlet javax.servlet.http Servlet Interface 상속 GenericServlet Abstract Class 상속 Genericservlet은 http이외의 프로그램 개발 시에 사용, httpservlet은 http를 이용한 프로그램 개발시에 사용한다. HttpServlet Abstract Class <Servlet Interfact 상속 구조> Data Warehousing Lab 2002.10.14

Servlet interface 의 methods void init(ServletConfig config) void init(ServletConfig config) Servlet에 관한 구성정보 ServletConfig getServletConfig) Servlet개발자,명칭등의 정보 String getServletInfo() 서블릿이 생성된 후 초기에 한 번 호출된다. 클라이언트가 요청할때마다 service메소드가 불려진다. Servlet container에 의해서 호출되며 서블릿의 service가 종료되어 완전히 메모리에서 삭제 되어질대 불려진다. 서블릿에 대한 구성정보를 servletconfig의 객체로 리턴된다. 서블릿에 대한 정보가 리턴된다. void service(ServletRequest req, ServletResponse res) void destroy() Data Warehousing Lab 2002.10.14

Servlet 수행방법 GenericServlet의 상속클래스 request Web application Service() server client Service() response <GenericServlet의 request 처리 방법> HttpServlet의 상속클래스 request(Get방식) Web application server client Service() doGet() response HttpServlet의 상속클래스 request(Post방식) Web application server Service() client doPost() response <HttpServlet의 request 처리 방법> Data Warehousing Lab 2002.10.14

2. Servlet의 장점과 CGI 비교 A server server A A 2.1 multi thread and multi process <servlet과 CGI 방식> 2.2 표준 API 코드의 재사용성과 확장성 2.3 객체 지향 언어 Servlet은 java로 이루어진 web programming A server server A A 브라우저 브라우저 브라우저 브라우저 서블릿은 하나의 인스턴스가 생성된 후에 쓰레드로 동작하게 된다. 즉 하나의 프로세스 안에서 여러 개의 멀티 쓰레드가 동작하여 해당 서블릿의 인스턴스를 호출한다는 것이다. 예를 들어 100명의 사용자가 동시에 request를 보냈다면 cgi방식은 100개의 프로세스가 생기지만 서블릿 방식은 하나의 프로세스에서 100개의 쓰레드가 생성된다. 데이터ㅔㅂ이스에 무관한 프로그램을 만든다고 해보자. 서블릿에서는 jdbc라는 표준 api를 이용하여 프로그래밍한다면 데이터베이스와는 독립적인 애플리케이션을 만들 수 있다. Servlet은 자바의 특성상 기존에 나와 있는 객체 지향 언어의 디자인 패턴을 이용하면 소스코드를 많이 수정하지 않아도 바로 적용시킬 수 있다. Cgi는 C언어나 스크립트로 작성된 프로그램의 수정이 전반적으로 이루어져야 할 것이다. Data Warehousing Lab 2002.10.14

3. Servlet 기초 “ Hello World!”를 출력하는 servlet “안녕하세요!”를 출력하는 servlet WEB-INF directory Servlet Lifecycle Data Warehousing Lab 2002.10.14

“Hello World!” 출력 servlet import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class HelloWorldServlet extends HttpServlet{ public void doGet(HttpServletRequest request, HttpServletResponse response)throws IOException, ServletException { response.setContentType("text/html"); PrintWriter out = response.getWriter(); out.println("<html>"); out.println("<head>"); out.println("<title>Hello World!</title>"); out.println("</head>"); out.println("<body>"); out.println("<h1>Hello World!</h1>"); out.println("</body>"); out.println("</html>"); } Data Warehousing Lab 2002.10.14

“안녕하세요!” 출력 servlet import java.io.*; Data Warehousing Lab import javax.servlet.*; import javax.servlet.http.*; public class HelloWorldServlet extends HttpServlet{ public void doGet(HttpServletRequest request, HttpServletResponse response)throws IOException, ServletException { response.setContentType("text/html; charset=EUC-KR"); PrintWriter out = response.getWriter(); out.println("<html>"); out.println("<head>"); out.println("<title>Hello World!</title>"); out.println("</head>"); out.println("<body>"); out.println("<h1>Hello World!</h1>"); out.println("</body>"); out.println("</html>"); } Data Warehousing Lab 2002.10.14

WEB-INF directory Servlet에 관련된 모든 파일들이 존재 해당 servlet클래스를 저장한 후 다음와 같은 URL http://서버주소:포트번호/servlet/servlet class name Ex) web.xml에서 URL mapping <servlet> <servlet-name>: servlet이름을 지정 <servlet-class>: servlet클래스를 지정 <servlet-mapping> <url-pattern>: <servlet-name>에서 지정한 servlet이름과 매핑될 URL을 정의 Data Warehousing Lab 2002.10.14

Servlet Lifecycle Instance Init() Service() Destroy() 객체가 생성될 때 최초에 한번만 호출됨 Service() client에 대한 각각의 thread가 생성되어 service를 호출 Destroy() 객체가 사라짐 서블릿은 클라이언트가 아무리 많이 요청해도 객체를 하나만 생성시키며 각 클라리언트에 대한 수행은 쓰레드가 한다. <Servlet Lifecycle> Data Warehousing Lab 2002.10.14