JSP와 Servlet 비교하기

dlsdk2526·2021년 1월 31일
0

1. Servlet

서블릿은 서버에서 웹페이지 등을 동적으로 생성하거나 데이터 처리를 수행하기 위해 자바로 작성된 프로그램이다. 서블릿은 Java코드 안에 HTML태그가 삽입되며 자바언어로 되어있다. 확장자는 .java이다.
서블릿은 자바언어를 웹어플리케이션에 조금 더 개발하기 쉽게 하기 위해 만든 API이며 이 규약에 맞는 라이버러리나 클래스들을 상속 및 구현하여 만든 클래스들을 서블릿이라고 한다.

2. JSP (Java Server Pages)

HTML을 코딩하기 너무 어렵고 불편해서 HTML내부에 Java코드를 삽입하는 형식이다. 서블릿의 단점을 보완하고자 만든 서블릿 기반의 스크립트 기술이다. 서블릿을 이용하게 되면 웹프로그래밍을 할 수 있지만 자바에 대한 지식이 필요하며 화면 인터페이스 구현에 너무 많은 코드를 필요로 하는 등 비효율적인 측면들이 있다. 때문에 서블릿을 작성하지 않고도 간편하게 웹프로그래밍을 구현하게 만든 기술이 JSP이다.

3. Servlet과 JSP의 역할

초기에 자바 웹개발은 서블릿을 이용한 개발이였다. 이후 JSP기술이 발표되면서 JSP형태의 개발이 유행하게 되고 지금 각각의 역할을 나누어 Servlet + JSP 형태의 개발이 이루어지고 있다.

JSP는 JSP기술의 장점을 최대한 활용 할 수 있는 웹어플리케이션 구조에서 사용자에게 결과를 보여주는 프리젠테이션 층을 담당하고 Servlet은 Servlet기술의 장점을 최대한 활용 할 수 있는 사용자의 요청을 받아 분석하고 비지니스 층과 통신하여 처리하고 처리한 결과를 다시 사용자에게 응답하는 컨트롤러 층을 담당한다.

4. MVC 패턴의 JSP와 Servlet

얼마전까지만 하더라도 JSP만 이용한 개발(Model1 방식)이 유행하다 현재는 유지보수단계에서 많은 단점을 느껴 각각의 역할을 나누어 서블릿과 JSP를 동시에 사용하여 개발하는 방식(Model2 방식)으로 개발하고 있어 현재는 Servlet과 JSP를 나누어 사용하고 있다. 그리하여 JSP는 HTML태그 사용이 용이하고 자바코드 사용이 불편하기 때문에 웹어플리케이션에서 사용자에게 결과를 보여주는 View(Client)를 담당하고 Servlet은 자바코드 작성이 편리하기 때문에 주로 화면과 통신하여 자료를 받아 가공하고 가공한 자료를 다시 화면에 전달하는 Controller역할을 하고 있다.

  • JSP와 Servlet 동시에 사용 MVC모델(View는 JSP, Controller는 Servlet을 사용)
  • 프리젠테이션 로직과 비즈니스 로직 분리
    (보여지는 부분은 HTML이 중심이 되는 JSP, 다른 자바클래스에게 데이터를 넘겨주는 부분은 Java코드가 중심이 되는 Servlet이 담당)
  • 유지보수 용이

0개의 댓글