서블릿 이해하기 JSP 기반의 서블릿과 서블릿 소스 코드를 이해한다. 간단한 서블릿 프로그램을 제작할 수 있다.

Slides:



Advertisements
Similar presentations
2008 년 11 월 20 일 실습.  실험제목 ◦ 데이터베이스 커넥션 풀  목표 ◦ 데이터베이스 커넥션 풀의 사용.
Advertisements

12 장 자바 애플릿. 2 Applet 개요 Applet 프로그램 – 웹 페이지에 포함되어 구동 된다. 웹 브라우저나 애 플릿뷰어 (appletviewer) 에서 실행되는 프로그램 – 웹 브라우저 내에 Applet 을 해석하여 실행할 수 있 도록 Applet 구동용 인터프리터가.
컴퓨터와 인터넷.
목 차 C# 언어 특징 .NET 프레임워크 C# 콘솔 프로그램 C# 윈도우 프로그램 실습 프로그래밍세미나 2.
Chapter 16 : Struts 프레임워크 2. chapter 16 : Struts 프레임워크 2.
CHAP 22. 블루투스.
4 서블릿의 라이프 사이클.
Power Java 제3장 이클립스 사용하기.
4강. Servlet 맛보기 Servlet 문서 작성 하기 web.xml에 서블릿 맵핑 어노테이션을 이용한 서블릿 맵핑
5강. Servlet 본격적으로 살펴보기-I 프로젝트 만들기 doGet() doPost()
최윤정 Java 프로그래밍 클래스 상속 최윤정
제 08 장 자바 빈즈 학기 인터넷비즈니스과 강 환수 교수.
Ch.07-5 xml-rpc 사용하기 김상엽.
Network Lab. Young-Chul Hwang
2. JSP의 환경설정 제 2장 JSP의 환경설정 웹 애플리케이션과 디렉토리 구성 JDK 설치하기 JSP Container
3장. 웹 어플리케이션과 JSP 및 Servlet의 이해 제3장.
Internet Computing KUT Youn-Hee Han
PHP입문 Izayoi 김조흔.
8.1 인터페이스 개요와 인터페이스 정의 8.2 인터페이스의 사용 8.3 인터페이스의 상속 8.4 인터페이스 참조
JSP Programming with a Workbook
4장. 웹로직 서버상에서의 JDBC와 JTA의 운용
Lesson 9. 예외처리.
Java 기초 (Java JDK 설치 및 환경설정)
Java Web Programming 4일차.
Visual Basic .NET 처음 사용하기.
SqlParameter 클래스 선문 비트 18기 발표자 : 박성한.
JSP 내장 객체 JSP에서 기본으로 사용할 수 있는 내장 객체 종류를 알아본다. 내장 객체별 주요 기능과 메서드를 이해한다.
ASP.NET AJAX 비동기 게시판 작성 2007 컴퓨터공학실험( I )
제14장 자바 서블릿.
00. 소개 주교재 참고자료 중간(20) 기말(20) 출석(30) 과제(30) 자바 웹 프로그래밍(개정판)
Servlet 서블릿 기초 FORM 처리 서블릿의 API 세션과 쿠키 com.oreilly.servelet 패키지
6강. Servlet 본격적으로 살펴보기-II
Chapter 03 : 서블릿 ( Servlet ) 개요. chapter 03 : 서블릿 ( Servlet ) 개요.
10장. 예외처리.
제 01 장 인터넷 프로그래밍 개요 학기 인터넷비즈니스과 강 환수 교수.
26강. 포워딩(Forwarding) RequestDispatcher 클래스 HttpServletResponse 클래스
7장 JSP페이지의 내장객체(Implicit Object)와 영역(Scope)
속성과 리스너 초기화 파라미터 외 파라미터에 대해 이해한다. 리스너를 생성해보고 사용에 대해 이해한다.
2장 JSP 개발 환경 설정 이장에서 배울 내용 : JSP 페이지를 작성하기 위한 개발환경을 설정하고, 웹 어플리케이션 개발을 위해 반드시 이해하여야 할 웹 어플리케이션 폴더 구조에 대해 학습한다. 또한 요청된 JSP 페이지가 어떠한 처리과정을 거쳐 응답이 이루어지는가에.
3강. JSP 맛보기 JSP 문서 작성 하기 JSP 아키텍처 Lecturer Kim Myoung-Ho Nickname 블스
자바응용.
2장. JSP 프로그래밍을 위한 환경구성 제2장.
HTTP 프로토콜의 요청과 응답 동작을 이해한다. 서블릿 및 JSP 를 알아보고 역할을 이해한다.
MVC 모델을 이용한 웹 애플리케이션 작성 웹 애플리케이션 개발 순서를 알아본다 웹 애플리케이션의 실행 순서를 이해한다.
Lab 1 Guide: 교재 2장 DrawX ( 쪽)
Chapter6 : JVM과 메모리 6.1 JVM의 구조와 메모리 모델 6.2 프로그램 실행과 메모리 6.3 객체생성과 메모리
8장 쿠키와 세션 한빛미디어(주).
ASP.NET AJAX / AJAX Control Toolkit 응용 2008 컴퓨터공학실험( I )
웹디자인
7장. JSP페이지의 내장객체(Implicit Object)와 영역(Scope)
1. JSP를 시작하며 인천대학교 컴퓨터공학과 성 미 영
자바 5.0 프로그래밍.
12장 쿠키와 세션 이장에서 배울 내용 : 쿠키와 세션은 웹 페이지 간에 정보를 유지할 때 사용된다. 쿠키와 세션은 사용되는 형태가 비슷하나, 쿠키는 웹 브라우저(클라이언트) 쪽에 저장되고, 세션은 웹 서버 쪽에 저장된다. 이 번장에서는 이들에 대해 학습한다.
14강. 세션 세션이란? 세션 문법 Lecturer Kim Myoung-Ho Nickname 블스
CHAP 21. 전화, SMS, 주소록.
웹(WWW).
12강. 컨트롤러 컨트롤러 클래스 제작 요청 처리 메소드 제작 뷰에 데이터 전달
.Net Web Application 2007 컴퓨터공학실험(Ⅰ)
3장 JSP프로그래밍의 개요 이장에서 배울 내용 : JSP페이지의 기본적인 개요설명과 JSP페이지의 처리과정 그리고 웹 어플리케이션의 구조에 대해서 학습한다.
JSP Programming with a Workbook
세션에 대해 알아보고 HttpSession 에 대해 이해한다 세션 관리에 사용되는 요소들을 살펴본다
MIDP 네트워크 프로그래밍 ps lab 김윤경.
1장 웹 프로그래밍의 개요 이장에서 배울 내용: 월드 와이드 웹(World Wide Web, WWW)기반에서 동작되는 웹 프로그래밍에 대해 학습하고 , 이러한 웹 기반에서 동작되는 웹 어플리케이션이 어떠한 방식으로 발전해 왔는지 알아본다. 또한 이러한 웹 어플리케이션의.
9 브라우저 객체 모델.
Android -Data Base 윤수진 GyeongSang Univ. IT 1.
6 쿠키와 세션.
7 생성자 함수.
6 객체.
JAVA 프로그래밍 16장 JNLP.
20 XMLHttpRequest.
Presentation transcript:

서블릿 이해하기 JSP 기반의 서블릿과 서블릿 소스 코드를 이해한다. 간단한 서블릿 프로그램을 제작할 수 있다. 한빛미디어(주)

서블릿 개요 Section 01 서블릿 개요 자바 플랫폼에서 컴포넌트 기반의 웹애플리케이션 개발기술 JSP는 서블릿 기술에 기반함. JSP의 프리젠테이션 문제를 해결하기 위해 JSP가 등장 이로 인해 웹 애플리케이션의 유지보수 어려움 심각. JSP 모델2 가 주목받으며 다시 서블릿에 대한 중요성 부각.

서블릿 개요 Section 01 서블릿 변천 프로그램에서 HTML 핸들링 컨텐츠와 비즈니스 로직이 분리되지 않음 ① 서블릿 문제점 대두 ② JSP 등장 ③ JSP 스크립트 기술의 한계 ④ MVC 패턴 주목받기 시작 프로그램에서 HTML 핸들링 컨텐츠와 비즈니스 로직이 분리되지 않음 개발과 관리의 어려움 HTML에서 프로그램 핸들링이 가능  JSP 스크립팅 기술 HTML에서 프로그램 핸들링 컨텐츠 관리는 쉬워졌지만 프로그램 관리는 이전보다 더 복잡해짐 애플리케이션 구성 요소 단위로 역할 분담 모델: 자바 클래스(DAO, DO) 뷰: JSP, JSTL 컨트롤러: 서블릿

서블릿 개요 Section 01 서블릿 컨테이너 자바가상머신을 내장한 서블릿 운영환경. JSP는 서블릿으로 변환되어 실행 따라서 대부분 별도의 실행환경 없이 서블릿 컨테이너에 통합됨. 자체 웹 서버 기능도 있으나 웹 서버와 분리하기도 함. 대표적으로 apache tomcat이 있음.

서블릿 개요 Section 01 서블릿 컨테이너 서블릿 동작 원리

서블릿 개요 Section 01 서블릿 장점 쓰레드를 기반으로 하므로 웹 애플리케이션 운영에 효율적이다. 자바를 기반으로 하므로 자바 API를 모두 사용할 수 있다. 운영체제나 하드웨어에 영향을 받지 않는다. 한 번 개발된 애플리케이션은 다양한 서버 환경에서도 실행이 가능하다. 웹 애플리케이션에서 효율적인 자료 공유 방법을 제공한다.

서블릿 개요 Section 01 웹 애플리케이션 개발 시 서블릿 이점 컨텐츠와 비즈니스 로직을 분리할 수 있다. 컨트롤러와 뷰의 역할 분담 웹 디자이너와 개발자간의 원활한 공동작업이 가능해진다. 유지보수가 수월하다. 기능의 확장이 용이하다. 프로그래머가 HTML, 자바스크립트 스타일시트 등 복잡한 기술을 모두 알아야 할 필요가 없다.

서블릿 구조와 생명주기 Section 02 서블릿 구조 서블릿 API 서블릿은 자바 클래스로 제작됨. javax.servlet.GenericServlet과 javax.servlet.http.HttpServlet API 구조에 대한 이해 필요

서블릿 구조와 생명주기 Section 02 서블릿 구조 서블릿 API 구조

서블릿 구조와 생명주기 Section 02 서블릿 구조 HttpServlet 구조 일반적으로 서블릿은 javax.servlet.http.HttpServlet 을 상속 service() 메서드는 컨테이너에서 호출 doGet(), doPost() 메서드를 오버라이드해서 처리에 필요한 기능을 구현 클라이언트 doGet( ) javax.servlet.GenericServlet javax.servlet.http.HttpServlet MyServlet extends HttpServlet service( ) 요청(request) 응답(response) doPost( )

서블릿 구조와 생명주기 Section 02 서블릿 구조 GET 방식과 POST방식 GET 방식 POST 방식 서버에 있는 정보를 가져오기 위해 설계됨. 240바이트까지 전달할 수 있음. QUERY_STRING 환경변수를 통해 전달. 형식 : http://xxx.xxx.co.kr/servlet/login?id=hj&name=hong URL노출로 보안성이 요구되는경우엔 사용할 수 없음. 검색엔진에서 검색단어 전송에 많이 이용함. POST 방식 서버로 정보를 올리기 위해 설계됨. 데이터크기의 제한은 없다. URL에 파러미터가 표시되지 않는다.

서블릿 구조와 생명주기 Section 02 서블릿 구조 서블릿 로딩 init() 메서드 요청 처리 service() 메서드 service() 메서드가 컨테이너에 의해 호출되며 사용자 처리 수행 doGet(), doPost() 메서드 서블릿 종료 destroy() 메서드

서블릿 구조와 생명주기 Section 02 서블릿 구조 서블릿 생명 주기 초기화 이벤트 요 청 종 료 응 답 쓰레드를 통한 요 청 종 료 응 답 쓰레드를 통한 동시 실행 최초 요청/ 컨테이너 시작 모든 요청과 응답 실행 시기 기 능 init() service() destroy() doGet()와 doPost()로 분기 실행 메서드 컨테이너 종료/ 애플리케이션 종료

서블릿 프로그래밍 교재 : 105 ~ 115 페이지 예제 개요 HelloWorld 메시지를 출력하는 간단한 서블릿 프로그램 작성 이클립스에서 서블릿 개발 과정 및 설정 과정 이해

HttpServlet 클래스 이용하기 Section 04 HttpServletRequest 클래스 HttpServlet 클래스의 doGet(), goPost() 메서드 호출시 파라미터로 전달됨. 사용자요청과 관련된 정보를 제공. HTML 폼 입력값을 가져온다. 쿠키, 세션정보에 접근할 수 있다. 클라이언트 IP주소를 알수 있다.

HttpServlet 클래스 이용하기 Section 04 HttpServletRequest 클래스 HttpServletRequest 클래스 주요 메서드 현재 jsp 로 전달되는 내용을 지정한 캐릭터셋으로 변환 html form에서 한글 입력 시 정상적으로 처리하려면 반드시 필요 setCharacterEncoding( ) 현재 서버의 프로토콜을 문자열 형태로 알려줌 getProtocol( ) 클라이언트의 IP 주소를 알려줌 getRemoteAddr( ) 현재 세션 객체를 가져옴. getSession( ) 현재 요청이 GET, POST인지 가져 옴 getMethod( ) 모든 쿠키값을 javax.servlet.http.Cookie의 배열형태로 가져옴 getCookies( ) 문자열 name과 같은 이름을 가진 파라미터의 값을 배열 형태로 가져옴. checkbox, multiple list 등에 주로 사용 getParameterValues(name) 문자열name과 같은 이름을 가진 파라미터의 값을 가져옴 getParameter(name) 현재 요청에 포함된 파라미터 이름을 Enumeration 형태로 전달 getParameterNames( ) 설 명 메서드

HttpServlet 클래스 이용하기 Section 04 HttpServletRequest 클래스 HttpServlet 클래스의 doGet(), goPost() 메서드 호출 시 파라미터로 전달 사용자 응답을 처리하기 위한 클래스 MIME Type 설정 HTTP 헤더 정보 설정 페이지 전환

HttpServlet 클래스 이용하기 Section 04 HttpServletResponse 클래스 HttpServletResponse 클래스 주요 메서드 클라이언트 요청을 다른 페이지로 보냄 sendRedirect(url) 에러 코드를 세팅하고 메시지를 보냄 sendError(status,msg) 문자열 name의 이름으로 date에 설정된 밀리세컨드 시간값을 헤더에 설정 setDateHeader(name, date) 문자열name의 이름으로 문자열 value 값을 헤더로 세팅 setHeader(name,value) 문자열 형태의 type 에 지정된 MIME Type 으로 ContentType 을 설정 setContentType(type) 설 명 메서드

계산기 서블릿 구현 교재 : 118 ~ 127 페이지 예제 개요 3장에서 만들어본 계산기를 서블릿 버전으로 개발 계산기능을 별도의 클래스로 분리하고 서블릿과 연동하는 구조 이해 [예제 4-2] ~ [예제 4-5]

JSP와 서블릿 관계 Section 05 JSP 서블릿 컴파일 과정 JSP 파일의 서블릿 변환 과정

JSP와 서블릿 관계 Section 05 JSP 서블릿 컴파일 과정 서블릿 코드로 생성된 JSP 이클립스 workspace 폴더에 생성된 파일 확인

JSP와 서블릿 관계 Section 05 변환된 소스 클래스 관계 서블릿 코드로 생성된 JSP package org.apache.jsp; import javax.servlet.*; import javax.servlet.http.*; import javax.servlet.jsp.*; import org.apache.jasper.runtime.*; public class HelloWorld_jsp extends HttpJspBase { }

JSP와 서블릿 관계 Section 05 변환된 소스 클래스 관계 JSP 소스가 변환된 부분 _jspService() 메서드에 JSP 소스 코드가 변환되어 위치함 public void _jspService(HttpServletRequest request, HttpServletResponse response) throws java.io.IOException, ServletException { … … … out.write("\r\n\r\n"); out.write("<HTML>\r\n"); out.write("<HEAD>"); out.write("<TITLE>Hello World"); out.write("</TITLE>"); out.write("</HEAD>\r\n\r\n"); out.write("<BODY>"); out.write("<H2>Hello World : 헬로월드"); out.write("</H2>\r\n오늘의 날짜와 시간은 : "); out.print( new java.util.Date() ); … 이하중략 }