chapter 03 : 서블릿 ( Servlet ) 개요
학습목표 서블릿 이란? 서블릿 API 계층구조 서블릿의 LifeCycle 메소드 서블릿 요청 서블릿 mapping 서블릿 Architecture HelloServlet.java 실습
정의 특징 서블릿 이란? 웹 응용프로그램을 만드는 자바 기술로서 실행 결과값은 html 로 작성된다. 자바언어로 작성되어 자바의 일반적인 특징을 모두 갖는다. 객체지향적이다. 다른 자바기술과 연동 가능하다. ( JDBC , EJB 등 ) container 라는 특별한 환경에서 실행된다. Container 종류에 상관없이 작동된다. ( 플랫폼 독립적 ) 프로세스 방식이 아닌 스레드 방식으로 실행된다. Server Side에 적합한 자바기술이다. 보안모델 적용이 수월하다. 저장 파일의 확장자는 java 이고 컴파일된 바이트코드가 container 에서 실행된다. 웹 응용프로그램이기 때문에 브라우저를 통해서 요청한다.
서블릿 API 계층구조 API 계층구조 사용자정의 Servlet
Life Cycle 메소드 서블릿 기본 메소드 init() 메소드 서블릿 요청시 맨 처음 단 한번 수행된다. 서블릿의 초기화 작업을 수행한다. 서비스 메소드 doGet , doPost 메소드 서블릿 요청시 매번 수행된다. 실제로 클라이언트의 요청을 수행하는 비즈니스 작업을 수행한다. destroy() 메소드 서블릿이 컨테이너에서 소멸될 때 단 한번 수행된다. 서블릿의 마무리 작업을 수행한다.
서블릿 기본 메소드 Life Cycle 메소드 실습예제 소스작성과 저장.
서블릿 기본 메소드 Life Cycle 메소드 실습예제 컴파일 톰캣 container 실행
Life Cycle 메소드 실습예제 서블릿 기본 메소드 브라우저에서 요청 웹애플리케이션 개발초기에 요청하는 법 http://ip번호:포트번호/context이름/servlet/패키지포함클래스명 http://localhost:8090/webapp/servlet/test.web.HelloServlet
서블릿 기본 메소드 Life Cycle 메소드 실습예제 conf/web.xml 파일 수정
서블릿 기본 메소드 Life Cycle 메소드 실습예제 톰캣 container 재실행 브라우저에서 맨 처음 요청
서블릿 기본 메소드 Life Cycle 메소드 실습예제 브라우저에서 재 요청 반복
서블릿 기본 메소드 Life Cycle 메소드 실습예제 컨테이너가 실행중의 소스변경 작업
초기버전의 요청 문제점 서블릿 mapping 작업 요청이 길다 보안에 취약하다. http://localhost:8090/webapp/servlet/test.web.HelloServlet
서블릿 mapping 서블릿 mapping 작업 각 context에 저장된 web.xml 에서 설정한다. <servlet> 태그와 <servlet-mapping> 태그를 이용한다. 여러 개의 서블릿 mapping 도 가능하다. 주의할 점은 <servlet>태그를 먼저 정의하고 <servlet-mapping> 태그를 정의하여야 한다.
서블릿 mapping 작업 서블릿 mapping
서블릿 mapping 작업 서블릿 요청 http://localhost:8090/webapp/servlet/test.web.HelloServlet http://localhost:8090/webapp/hello
서블릿 Architecture HelloSevlet NO YES Thread 서블릿 mapping 작업 Tomcat Container HelloSevlet 2: HelloServlet 이 메모리에 로드된 적이 있는지 체크한다. 1: http://localhost:8090/webapp/hello 요청 3: HelloServlet 을 메모리에 로드 4: init() 메소드 호출 5: 서비스 메소드 호출 doGet , doPost 6: 결과값 7: 결과값 응답 A : http://localhost:8090/webapp/hello 재요청 NO YES Thread 클라이언트 클라이언트
HelloServlet.java 와 HelloServlet2.java 서블릿 mapping 작업 다수의 서블릿 mapping HelloServlet.java 와 HelloServlet2.java
HelloServlet.java 서블릿 예제 실습 공부한 내용 서블릿 LifeCycle 메소드 서블릿 mapping 서블릿 Architecture HelloServlet.java 서블릿 예제 실습