Servlet와 JSP의 개념
- 기능의 차이는 없고 역할의 차이만 있다.(하는 일은 동일)
Servlet 이란
- 웹 기반의 요청에 대한 동적인 처리가 가능한 Server Side에서 돌아가는 Java Program
- Java 코드 안에 HTML코드(하나의 클래스)
gmlwjd9405.github.io/2018/10/28/servlet.html
- 자바 코드안에 HTML태그가 삽입되어있고, 확장자는 .java
- HTML태그로 문자열(“”) 스크림으로 처리해야한다.
JSP 란
- Java 언어를 기반으로 하는 Server Side 스크립트 언어
- HTML 코드 안에 Java코드
- Servlet의 모든 기능 + 추가적인 기능
gmlwjd9405.github.io/2018/11/03/jsp.html
- HTML 코드안에 JAVA코드가 삽입
- 자바코드를 <% %> 태그안에 처리해주어야 한다.
Servlet과 JSP의 차이
- Servlet
- Java 코드 안에 HTML코드(하나의 클래스)
- data processing(Controller)에 좋다.
- JSP
- HTML 코드 안에 Java코드
- presentation(View)에 좋다(요청 결과를 나타내는 HTML 작성에 유용)
- JSP가 수정된 경우 재배포할 필요없이 WAS가 알아서 처리한다.(쉬운배포)
Servlet과 JSP의 관계
- JSP만을 이용하는 모델
- JSP가 사용자의 요청을 받아 Java Bean(DTO, DAO)을 호출하여 적절한 동적인 페이지를 생성한다.
- 동작과정
- JSP로 작성된 프로그램은 내부적으로 WAS에서 Servlet 파일로 변환
- JSP 태그를 분행하고 추출하여 다시 순수한 HTML 웹 페이지로 변환
- 클라이언트로 응답
- 특징
- 개발 속도가 빠르다.
- 배우기 쉽다.
- 프레젠테이션 로직(View)과 비즈니스 로직(Controller)이 혼재한다.
- JSP 코드가 복잡해져 유지 보수가 어려워진다.
JSP와 Servlet을 모두 이용하는 모델(MVC Architecture)
- JSP와 Servlet을 모두 사용하여 프레젠테이션 로직(View)와 비즈니스 로직(Controller)을 분리한다.
- View(보여지는 부분)는 HTML이 중심이 되는 JSP를 사용
- Controller(다른 자바 클래스에 데이터를 넘겨주는 부분)는 Java 코드가 중심이 되는 Servlet을 사용
- Model은 Java Beans로, DTO와 DAO를 통해 Mysql과 같은 Data Storage에 접근
- 구체적인 MVC 패턴은 MVC-Architecture 참고
관련된 Post
- Web Service의 기본동작과정 및 Servlet
gmlwjd9405.github.io/2018/10/28/servlet.html
- JSP의 개념과 기본 문법에 대한 설정
gmlwjd9405.github.io/2018/11/03/jsp.html
- Web Server와 WAS의 개념과 차이
gmlwjd9405.github.io/2018/10/29/web-application-structure.html
- Web Application Structure와 web.xml 설정 내용, 역할 및 간단한 예시
gmlwjd9405.github.io/2018/10/27/webserver-vs-was.html
참조 :
gmlwjd9405.github.io/2018/11/04/servlet-vs-jsp.html
'Web > 기초' 카테고리의 다른 글
[WEB기초] CGI(공용 게이트웨이 인터페이스) (0) | 2020.12.12 |
---|---|
[WEB기초] J2SE, J2EE의 차이 (0) | 2020.12.12 |
[WEB기초] 톰켓(Tomcat)과 일반 웹서버(Web Server)의 차이 (0) | 2020.12.12 |
[WEB기초] 재스퍼(Jasper), 카탈리나(Catalina) (0) | 2020.12.12 |
[WEB기초] HTTP, AJAX, Web Socket (0) | 2020.12.12 |