본문 바로가기
○ WEB/19.07 BoostCourse_DB연결 웹앱

[웹기초 BE_Servlet] 서블릿과 JSP란? 차이점은?

by 0ver-grow 2019. 7. 11.
반응형

https://gmlwjd9405.github.io/2018/11/04/servlet-vs-jsp.html

 

[Web] Servlet과 JSP의 차이와 관계 - Heee's Development Blog

Step by step goes a long way.

gmlwjd9405.github.io

하는 일, 기능은 동일하나 역할이 다르다.

서블릿

  • 웹 기반 요청에 대한 동적 처리 가능한 서버 사이드 자바 프로그램
  • 자바 코드안에 HTML 코드(하나의 클래스) 존재
  • 웹 개발을 위해 만든 표준
서블릿 JSP
웹 기반 요청에 대한 동적 처리 가능한 서버 사이드 자바 프로그램 JAVA언어 기반의 서버사이드 스크립트 언어
자바 코드안에 HTML 코드(하나의 클래스) 존재 HTML 코드 안에 java 코드
웹 개발을 위해 만든 표준 서블릿을 보완하고 기술을 확장한 스크립트 방식 표준        (서블릿의 모든 기능 + 추가 기능)
data processing(Controller_다른 자바 클래스에 데이터를 넘겨주는 부분) 좋음 Presentation(View_보여지는 부분) 좋음
DB와의 통신, Business Logic 호출, 데이터 리딩 체크 작업 유용 요청 결과를 나타내는 HTML 작성시 유용
개발 생산성 저하 _ 서블릿 수정시, 자바코드를 컴파일(.class파일 생성)한 후 동적인 페이지를 처리하기에 전체 코드를 업데이트하고 다시 컴파일한 후 재배포 작업 필요 쉬운 배포 _ JSP 수정시 WAS가 알아서 처리하기에 재배포 불필요
   

 

JSP만을 사용한 모델


- JSP가 사용자의 요청을 받아 Java Bean(DTO,DAO)을 호출하여 적절한 동적 페이지를 생성

- 동작 과정

  • JSP로 작성된 프로글매은 내부적으로 WAS에서 서블릿파일로 변환 
  • JSP 태그를 분해, 추출하여 순수한 HTML 웹 페이지로 변환
  • 클라이어언트로 응답

- 특징

  • 개발 속도가 빠름
  • 배우기 쉬움
  • 프레젠테이션 로직(View)과 비즈니스 로직(Controller) 혼재
  • JSP 코드가 복잡해 유지 보수 어려워져

 

JSP, 서블릿 모두 이용한 모델 (MVC 아키텍쳐)


  • JSP와 Servlet을 모두 사용하여 프레젠테이션 로직(View)과 비즈니스 로직(Controller)을 분리한다.
  • View(보여지는 부분)는 HTML이 중심이 되는 JSP를 사용
  • Controller(다른 자바 클래스에 데이터를 넘겨주는 부분)는 Java 코드가 중심이 되는 Servlet을 사용
  • Model은 Java Beans로, DTO와 DAO를 통해 Mysql과 같은 Data Storage에 접근
  • 구체적인 MVC 패턴은 MVC-Architecture 참고
반응형