Web/Web

[Web] 서블릿(Servlet)이란? JSP와 MVC 패턴으로의 변화

728x90

 

 

 

HttpServletRequest 객체나 WAS에 대해 공부할 때 나온 Servlet이란 무엇일까?

어렴풋이 비즈니스 로직을 처리해서 결과를 전달해준다는 느낌은 오는데, 구체적으로 알아보자

그리고 서블릿을 어떻게 발전시켜 지금의 MVC 구조가 나왔는지도 알아보자!

 

 

 

1. 서블릿(Servlet) 이란?

동적 웹페이지를 만들 때 사용되는 자바 기반의 웹 애플리케이션 프로그래밍 기술
웹 요청과 응답의 흐름을 간단한 메서드 호출만으로도 체계적으로 다룰 수 있게 한다

 

 

1.1. 서블릿의 주요 특징

- 클라이언트의 Request에 대해 동적으로 작동하는 웹 애플리케이션 컴포넌트

- Java 스레드를 이용하여 동작

- MVC 패턴에서 Controller로 이용

- 컨테이너에서 실행

- 보안 기능을 적용하기 쉬움

- 기본적으로 싱글톤(Singleton)

    • 하나의 인스턴스만 만들어서 계속 재활용 → 요청마다 같은 작업을 하는 경우, 인스턴스가 여러 개 있을 필요 ❌

    • 여러 개의 인스턴스 만들도록 설정 가능

 

 

1.2. 서블릿의 동작 과정

1. 클라이언트의 요청

2. WAS에서 HttpServletRequest, HttpServletResponse 객체 생성

3. Web.xml이 어느 서블릿에 대해 요청한 것인지 탐색

4. 해당 서블릿에서 service() 메서드 호출

5. doGet() 또는 doPost() 호출

6. 동적 페이지 생성 후, HttpServletResponse 객체에 응답 전송

7. HttpServletRequest, HttpServletResponse 객체 소멸

 

 

 

 

 

2. JSP와 Servlet

- 서블릿의 단점을 보완하며 등장

 

- JSP (Java Server Pages)HTML 코드에 Java 코드를 넣어 동적 웹페이지를 생성하는 웹 애플리케이션 도구

- JSP가 실행되면, Java Servlet으로 변환되며 웹 애플리케이션 서버에서 동작되면서

   필요한 기능을 수행하고 생성된 데이터를 웹 페이지와 함게 클라이언트로 응답한다

- HTML 코드 작성이 편해지지만, 비즈니스 로직 또한 JSP 파일에 같이 존재 (→ SRP 어긴다 → 유지보수가 어려워진다)

- JSP에 대해 공부한 글 : Web] JSP란? JSP 호출과정 / 기본객체

 

[Web] JSP란? JSP 호출과정 / 기본객체

1. JSP 란? Java Server Page - HTML 코드에 Java 코드를 넣어 동적 웹페이지를 생성하는 웹 애플리케이션 도구 - JSP가 실행되면, Java Servlet으로 변환되며 웹 애플리케이션 서버에서 동작되면서 필요한 기

codesyun.tistory.com

 

 

 

3. MVC의 등장

 

3.1. MVC1

- View와 Controller를 모두 JSP가 담당

    • JSP에 Java 코드와 HTML, CSS 등 코드가 섞여 있다 → 소스가 복잡하여 유지보수가 어렵다

- 설계가 간단하고 개발 속도가 빠른 작은 프로젝트에 적합

 

 

3.2. MVC2와 Spring

- MVC1 패턴의 단점을 보완

- JSP는 View 역할만 하고, Servlet이 Controller 역할을 수행

- MVC2 패턴의 세부적인 구성까지 신경쓰지 않도록 발전된 Framework의 대표적인 것 : Spring Framework

- Spring의 MVC2 패턴

    • 유저의 요청을 받는 DispatcherServlet이 Front Controller의 역할

    • Front Controller : 클라이언트의 모든 요청을 받고, 요청을 분석하여 세부 컨트롤러에 작업을 나눠준다

 

 

 

 

 

 

 

📌  References

- https://velog.io/@falling_star3/Tomcat-%EC%84%9C%EB%B8%94%EB%A6%BFServlet%EC%9D%B4%EB%9E%80

 

[Servlet] 서블릿(Servlet)이란?

서블릿의 개념과 동작 과정, 생명주기(메서드), 인터페이스, 서블릿 컨테이너에 대해 공부하고 정리한 내용입니다.

velog.io

- https://javacpro.tistory.com/43

 

[JSP] JSP (JavaServer Pages ) 란 무엇인가?

JSP (JavaServer Pages ) 란 무엇인가? JSP 란 JavaServer Pages 의 약자이며HTML 코드에 JAVA 코드를 넣어 동적웹페이지를 생성하는 웹어플리케이션 도구이다.JSP 가 실행되면 자바 서블릿(Servlet) 으로 변환되며

javacpro.tistory.com

- https://dev-monkey-dugi.tistory.com/120

 

서블릿, JSP, MVC 패턴의 차이

순서대로 보자면, 발전 순서는 이렇다. 순수 자바로 모든 웹 처리 구현 → 서블릿 → JSP → MVC1 → MVC2 어떤 차이점이 있는지 알아보자. 서블릿 JSP, MVC도 모두 서블릿을 활용한 기술이다. 하지만

dev-monkey-dugi.tistory.com

- https://chanhuiseok.github.io/posts/spring-3/

 

[Spring] Spring의 MVC 패턴과 MVC1과 MVC2 비교

컴퓨터/IT/알고리즘 정리 블로그

chanhuiseok.github.io

 

728x90