[JSP] JSP와 Servlet 의 개념과 차이

백준호·2022년 11월 5일
0
웹프로그래밍에 대한 정보를 찾던 중 우연한 계기로 JSP & Servlet 책을 접하게 됐다. 이 책은 웹프로그래밍의 기초, 설치방법, java, db, jsp, servlet의 개념과 예시 뿐만아니라 jstl과 el, 웹페이지 구축, 계층형 계시판 구현하기 등의 포괄적인 내용을 알기 쉽게 설명하고 있다.

책을 읽으며 가장 기억에 남는 부분은 JSP페이지의 동작구조였다. 책에서는 JSP파일 동작방식을 한마디로 jsp페이지는 서블릿으로 변환이 되어 요청에 대한 응답을 생성한다'라고 요약한다. (간단하게 말하자면) JSP가 웹서버를 지나 JSP컨테이너에서 파싱하고(처음들어온 것이라면) 서블릿 파일을 생성한다. 그 후 서블릿파일은 실행 가능한 클래스 파일로 변환되고, 클래스 파일은 다시 웹서버에 넘겨져 응답내용을 HTML형태로 페이지를 실행시켜주는 것이다.

JSP는 Servlet과 별반 다를 바 없다는 말을 들어 보았을 것이다. 두가지 모두 자바로 웹 어플리케이션을 만들기 위한 도구이며, 원리가 흡사하다. 차이점을 발해보자면 아래와 같다.

JSP

  • 확장자가 .jsp인 파일
  • Java Server Page
  • html 문서 안에 스클립트릿등을 통해 자바 언어를 삽입해 사용할 수 있도록 함

Servlet(서블릿)

  • 확장자가 .java인 파일인 일반적인 클래스와 동일한 개념
  • java코드 안에 Html 코드를 삽입해 쓸 수 있음
  • 웹을 다룰 수 있도록 해주는 "HttpServlet" 클래스를 상속받은 클래스를 의미함

즉 JSP는 Servlet을 보완하고 기술을 확장한 스크립트 방식의 표준이라 할 수 있다. 모델을 만들 때 JSP만 사용하게 된다면 JSP 코드가 복잡해져 지저분해지고, 유지 보수가 어려워지는 단점이 있다. 이와 같은 한계를 극복할 수 있는게 Servlet과 JSP를 모두 사용하는 MVC 모델이라 할 수 있다.


- MVC모델은 JSP와 Servlet을 모두 사용하여 프레젠테이션 로직(View)과 비즈니스 로직(Controller)을 분리해 만든다.
  • View는 HTML이 중심이 되는 JSP를 사용하고, Controller(다른 자바 클래스에 데이터를 넘겨주는 부분)는 Java 코드가 중심이 되는 Servlet을 사용한다. 그리고 Model부분은 Java Beans로, DTO와 DAO를 통해 Mysql과 같은 DataBase에 접근한다.

더 자세한 설명은 스프링 MVC모델 설명 에서 볼 수 있다.

profile
남들이 다 아는 걸 모를 수는 없지!

0개의 댓글