-
서블렛(Servlet)이란?Spring Framework 2022. 1. 9. 00:01반응형
서블렛(Servlet)이란?
자바를 지원하는 웹이나 애플리케이션에서 실행되는 자바 프로그램으로 웹 서버에서 얻은 요청을 처리하고 응답을 생성하여 보냅니다.
즉 서버측에서 작동하며, 클라이언트가 보내는 요청을 처리하여 다시 클라이언트에게 전송하는 자바 프로그램입니다.
서블릿을 사용하는 이유
일반적으로 웹 서버는 정적인 페이지만을 제공합니다.
정적인 페이지란 100명의 사용자가 있으면 100명의 사용자가 모두 같은 페이지를 보게 됩니다.
하지만 동적인 페이지를 제공하기 위해서 웹서버는 다른 곳에 도움을 요청하여 동적인 페이지를 작성해야 합니다.
동적인 페이지란 100명의 사용자가 있으면 100명의 사용자가 다른 페이지를 볼 수 있습니다.
예를 들자면 평소에 우리가 로그인을 했을 때 "~~ 님 반갑습니다"라는 문구가 담긴 페이지를 볼 수 있었고 이는 사용자가 같은 도메인에서 다른 페이지를 볼 수 있는 동적인 페이지입니다.
사용자의 동적 데이터를 제공하기 위해서 CGI(Common Gateway Interface)가 나타났습니다.
CGI는 서버와 데이터베이스의 미들웨어(연결해주는 역할)를 하였습니다.
CGI는 기술을 의미하는 것은 아니며 웹 서버와 외부 프로그램 사이에서 정보를 주고받는 방법이나 규약을 말합니다.
여러 연어를 통하여 CGI를 구현할 수 있습니다.
하지만 CGI는 서버에서 Process단위로 실행이 되었고 클라이언트의 요청 하나에 하나의 Process가 생성되었습니다.
요청이 늘어나게 되면 Process가 계속 증가하였고 서버 부하를 줄이기 위해서 스레드 단위로 동작하는 Java Servelt이 고안됩니다.
서블렛(Servelt)의 구조
Sevelt Architecture 1. 클라이언트는 웹 서버에 요청을 보냅니다.
2. 웹 서버가 요청을 받습니다.
3. 웹 서버는 해당 서블릿에 요청을 전달합니다.
4. 서블릿은 요청을 처리하고 출력 형태로 응답을 생성합니다.
5. 서블릿은 응답을 웹 서버로 다시 보냅니다.
6. 웹 서버는 응답을 클라이언트에 보내고 클라이언트 브라우저는 이를 화면에 표시합니다.
서블릿(Servlet) 동작 방식
서블릿 동작 방식 1. 사용자가 Container로 요청(HTTP Request)을 보냅니다.
2. Container는 HTTPServletRequest, HttpServletResponse 객체를 생성합니다.
3. web.xml은 사용자가 요청한 URL을 분석하여 어떤 서블릿에 대해 요청한 것인지 찾습니다.
4. 해당 서블릿에서 service 메소드를 호출한 후 클라이언트의 POST, GET 여부에 따라 doPost(), doGet() 메서드를 호출합니다.
5. 동적 페이지를 생성한 후 HttpServletResponse객체에 응답을 보냅니다.
6. 응답이 종료되면 두 객체를 소멸시킵니다.
출처
https://www.geeksforgeeks.org/introduction-java-servlets/
Introduction to Java Servlets - GeeksforGeeks
A Computer Science portal for geeks. It contains well written, well thought and well explained computer science and programming articles, quizzes and practice/competitive programming/company interview Questions.
www.geeksforgeeks.org
https://techdifferences.com/difference-between-cgi-and-servlet.html
Difference Between CGI and Servlet (with Comparison Chart) - Tech Differences
The difference between CGI and Servlet is that CGI programs can be designed in the native OS and kept in particular directory. On the other hand, the servlet is a web component which is generally written in Java and run in java virtual machine.
techdifferences.com
https://velog.io/@han_been/Servlet
Servlet
About Servlet.. Servlet이란? > - WebProgramming에서 Client의 요청을 처리 > - 그 결과를 다시 Client에게 전송하는 자바 프로그래밍 기술 > - Servlet 클래스의 구현 규칙을 따른다. Servlet이 해야하는 일 >
velog.io
서블릿 컨테이너(Servlet Container) 란?
서블릿들을 위한 상자(Container) 입니다.
velog.io
'Spring Framework' 카테고리의 다른 글
Thymeleaf란? ( + Thymeleaf 사용법, 문법 맛보기) (0) 2022.01.13 ThymeLeaf vs Mustache vs Groovy vs FreeMarker (0) 2022.01.12 템플릿엔진이란? (0) 2022.01.07 MVC 패턴이란? (스프링 MVC) (0) 2022.01.04 스프링부트 Welcome Page 만들기(스프링부트 hello 출력하는 페이지 만들기) (0) 2021.12.31