본문 바로가기
Java Spring/MVC

[Spring] Servlet과 Servlet Container

by GGShin 2022. 6. 24.

Spring을 학습하다 보니 모르는 용어, 어려운 용어들이 아주 넘쳐나고 있습니다 ㅎㅎ

하나하나 차근차근 이해해나가는 것이 목표입니다!

정말 많이 듣지만 잘 와닿지 않았던 servlet, servlet container, Tomcat 등 한 번 간단하게 정리해보았습니다.

 

Web server

먼저, Servlet을 이해하려면 Web server에 대한 이해가 선행되어야 합니다.

웹 서버는 HTTP 또는 HTTPS를 통해 웹 브라우저에서 요청하는 HTML 문서나 오브젝트(이미지 파일 등)을 전송해주는 서비스 프로그램 입니다. (출처: 위키백과) 다만, 정적인 페이지만을 client에게 줄 수 있습니다.

 

Servlet과 Servlet container

Web server만으로는 user input에 따라 바뀌게 되는 동적인(dynamic, runtime에 build되는) 페이지를 전달할 수 없습니다. 

동적인 페이지를 만들기 위해서는 필요한 것이 바로 Servlet입니다. 

동적인 페이지 요청이 들어올 경우에는, web server에서 helper application(= web container = servlet container)로 넘어가게 됩니다. Tomcat이나 Glass fish 등의 프로그램들이 바로 이 Web container(Servlet container)들 입니다!

Servelet Container는 servlet의 생명주기를 관리하고, URL과 특정 servlet을 mapping하며 URL 요청이 올바른 접근 권한을 갖도록 보장합니다. 

 

Servlet은 request를 받아 processing한 다음에 response를 만들어 내는 역할을 하는 Java 파일인데요, HttpServlet을 extends하고 있으며 Servlet container에서 관리 됩니다. 

Servlet container에는 Deployment descriptor(web.xml)라는 파일이 있는데, 이 파일 안에

어떤 servlet이 어떤 요청을 처리할 것인지를 적어두어 요청의 종류에 따라서 적절한 servlet이 동작할 수 있도록 해줍니다!

(web.xml을 사용하지 않고 servlet에 @WebServlet 어노테이션을 붙여서 관리할 수도 있다고 합니다.)

 

 

한번 동적인 request가 client로부터 들어왔을 때의 처리 흐름을 이해하기 위해 영상으로 만들어보았습니다.

 

 

 

 

추가적으로 보충할 내용이 생기면 항상 업데이트 하도록 하겠습니다.

감사합니다☺️

 

 

 

https://ko.wikipedia.org/wiki/%EC%9B%B9_%EC%84%9C%EB%B2%84

 

웹 서버 - 위키백과, 우리 모두의 백과사전

 

ko.wikipedia.org

https://www.programcreek.com/2013/04/what-is-servlet-container/

 

What is Servlet Container?

In this post, I write a little bit about the basic ideas of web server, Servlet container and its relation with JVM. I want to show that Servlet container is nothing more than a Java program. 1. What is a Web Server? To know what is a Servlet container, we

www.programcreek.com

https://docs.oracle.com/javaee/5/tutorial/doc/bnafe.html

 

What Is a Servlet? - The Java EE 5 Tutorial

What Is a Servlet? A servlet is a Java programming language class that is used to extend the capabilities of servers that host applications accessed by means of a request-response programming model. Although servlets can respond to any type of request, the

docs.oracle.com

 

https://www.youtube.com/watch?v=7TOmdDJc14s 

https://ko.wikipedia.org/wiki/%EC%9B%B9_%EC%BB%A8%ED%85%8C%EC%9D%B4%EB%84%88

 

웹 컨테이너 - 위키백과, 우리 모두의 백과사전

위키백과, 우리 모두의 백과사전. 웹 컨테이너(web container, 또는 서블릿 컨테이너)는 웹 서버의 컴포넌트 중 하나로 자바 서블릿과 상호작용한다. 웹 컨테이너는 서블릿의 생명주기를 관리하고,

ko.wikipedia.org

 

반응형

'Java Spring > MVC' 카테고리의 다른 글

[Spring] Spring JDBC 사용하기  (0) 2022.07.02
[Spring] H2 in-memory DB 사용하기  (0) 2022.06.28
[Spring] Spring MVC framework 알아보기  (4) 2022.06.24
[Spring] 계층 이해하기  (0) 2022.06.23
[Spring] AOP 사용하기  (2) 2022.06.18