본문 바로가기
IT ▶/Java & Web

[웹 프로그래밍 개념] 서블릿이란? (Servlet 구조 및 처리과정)

by Jordan_ 2020. 6. 17.
728x90
반응형

 

 

 

 

 

1> 서블릿 (Servlet) : 웹서버에서 동작하는 서비스 페이지로 웹브라우저에서 클라이언트 요청에 따라 서버가 실행하는 자바 프로그램

 

 

- 서블릿 파일은 웹서버 內 위치

  

 

- 웹서버가 설치된 컴퓨터 주소 (도메인)

 

 

https://test.com:80/test/123.jsp

 

 

80 : 포트번호로 컴퓨터 도착 이후 해당 서비스를 처리하는 서버를 찾기위한 정보입니다.

 

 

test : 컴퓨터와 서버까지 찾은 다음에는 해당 어플리케이션에 요청합니다.

  

 

123.jsp : 클라이언트가 요청한 최종 문서입니다.

 

 

  

 

2> web.xml 파일

 

 

- 웹 어플리케이션 서비스 처리에 대한 정의된 환경설정 파일

 

- 웹서버 구동 시 web.xml 파일 읽기

 

- 이클립스에서 아파치 톰캣 서버를 생성하게 되면 아래와 같이 서버 디렉토리의 web.xml 파일을 확인 할 수 있습니다.

 

 

 

 

 

- 소스 상에서 webapp/WEB-INF 경로에 보통 web.xml 파일이 위치해있습니다.

 

 

 

 

3> 서블릿 디렉토리

 

 

- 서블릿 프로그램 실행 관련 클래스 파일이 있는 디렉토리

 

- 서블릿 디렉토리 경로 : /WEB-INF/classes

 

 

 

728x90

 

 

 

4> 서블릿 클래스 계층 구조

 

 

Servlet (Interface) – GenericServlet - HttpServlet

 

 

1. Servlet 인터페이스 : 서블릿 프로그램 메소드 구현 (생명주기)

 

Init(), service(), destroy(), getServletConfig(), getServletInfo()

 

 

2. GenericServlet 클래스 : Servlet 인터페이스 상속하여 C-S 환경에서 필요한 기능 구현한 추상클래스

 

 

3. HttpServlet 클래스 : GenericServlet 클래스 상속하여 Http 프로토콜 동작을 수행하도록 구현한 클래스

 

Http 프로토콜 기반으로 브라우저 요청을 전달받아 처리하는 역할

 

 

EX) public class TestServlet extends HttpServlet {

 

// Http 프로토콜 서비스 처리를  위해 HttpServlet 클래스 상속 필요

 

}

 

 

 

5> 서블릿 처리 Process

 

 

Client(요청) -> Web Server -> Servlet 컨테이너 -> 요청 -> 메모리 로딩 -> 객체 생성 -> init() -> service()

 

 

1. 서블릿 객체 생성 : 클라이언트에서 웹브라우저 통해 요청을 하면 웹서버는 요청 정보의 헤더에서 URI 분석

 

2. 요청 페이지가 서블릿이면 서블릿 컨테이너로 전달

 

3. 서블릿 컨테이너는 서블릿 실행 (WEB-INF/classes, WEB-INF/lib)

 

 

- Init() : 초기화 작업 메소드 (처음 서블릿 요청 때만 수행)

 

- Service() : 서블릿 처리 작업 메소드

 

- Destroy() : 메모리 자원 해제 작업 메소드 (서버 중지로 인한 서비스 중지 시 서블릿 객체 삭제)

 

 

 

 

6> web.xml 내 서블릿 선언

 

 

- 웹서버에 서블릿 등록

 

<servlet>    // HttpServlet 상속받고 있는 클래스 web.xml 등록할 때 사용              

<servlet-name> 서블릿 명 </servlet-name>              

<servlet-class> 실제 서블릿 클래스명 </servlet-class>    // web 서버가 서블릿을 찾아가는 정보

</servlet>

 

 

-   서블릿 요청 시 실행할 URI 지정

 

<servlet-mapping>      

<servlet-name> 서블릿 명 </servlet-name>       

<url-pattern>/test/*</url-pattern>

</servlet-mapping>            

<session-config>        

<session-timeout>5</session-timeout>       

</session-config>

 

 

 

7> 어노테이션 (Annotation) : 주석문과 같이 소스의 @ 기호로 사용되어 컴파일러 정보를 알려주고 내용 설정하는 기능

 

 

@Override : 해당 어노테이션이 선언된 메소드는 상속받은 메소드를 재정의하는 기능

 

@SuppressWarning : 해당 어노테이션이 선언된 메소드는 컴파일러 경고를 무시하는 기능

 

 

 

 

 

아래는 웹 기본적인 개념 참고하시기 바랍니다!!

 

 

 

[웹 프로그래밍 개념] 웹 Web 이란? (서블릿, JSP, 컨테이너, HTTP)

 

[웹 프로그래밍 개념] 웹 Web 이란? (서블릿, JSP, 컨테이너, HTTP)

1> 웹 (Web) : 클라이언트가 서버에 정보를 요청하면 응답하는 콘텐츠 - 정적 웹 : 웹서버에 잇는 웹 문서를 클라이언트에 제공 (HTML, GIF, JPG, PDF, PPR 등) - 동적 웹 : 요청 시마다 다른 웹 문서를 클라�

lovefor-you.tistory.com

 

 

감사합니다.!!!

 

 

 

728x90
반응형