본문 바로가기
language/JSP

JSP(Java Server Pages) vs Servlet(Server+ applet)

by 스파이디웹 2020. 8. 7.
728x90
1. Servlet

 정확한 이해가 필요 할 듯 하다. 서블릿(servlet)은 서버에서 웹페이지 등을 동적으로 생성하거나 데이터 처리를 수행하기 위해 자바로 작성된 프로그램이다. servlet은 Java코드 안에 HTML태그가 삽입되며 자바언어로 되어있다. .java가 확장자이다.
 서블릿의 단어는 Server + Let의 합성어라고 알고 있는 사람도 있고 Server + Applet으로 알고 있는 사람도 있다. 사실 둘다 어려운 느낌이다. 하지만 쉽게 풀어보면 '클라이언트 요청을 처리하고 그 결과를 다시 클라이언트에게 전송하는 servlet 클래스의 구현 규칙을 지킨 자바프로그램'이라고 이해하면 좋을 듯하다.
 서블릿(servlet)은 자바언어를 웹어플리케이션에 조금 더 개발하기 쉽게 하기 위해 만든 API(라이브러리, 클래스 들)이며 이 규약에 맞는 라이브러리나 클래스들을 상속 및 구현하여 만든 클래스들을 서블릿이라고 한다.

-서블릿 클래스 컴파일
서블릿 클래스 소스 파일 ⇒ 컴파일 ⇒ 서블릿 클래스 파일 생성 ⇒ 브라우저 리퀘스트 ⇒서블릿 클래스 파일 실행 ⇒ 서블릿 클래스 파일로부터 인스턴스화 ⇒ 서블릿 클래스 인스턴스 실행

-서블릿 클래스와 URL

서블릿을 호출할 때 URL은 아래와 같은 구조를 가집니다.

http://서버명/애플리케이션명/URL 패턴


Servlet 예제

 

2. JSP(Java Server Pages)

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

 조금더 알아보자면 JSP(Java Server Pages)는 서블릿 기반의 '서버 스크립트 기술'이다.
여기서 스크립트 기술이란 ASP, PHP 처럼 미리 약속된 규정에 따라 간단한 키둬드를 조합하여 입력하면, 실행 시점에 각각의 키워드에 매핑이 되어 있는 어떤 코드로 변환 후에 실행되는 형태이다.

JSP는 Java소스로 사용하여 웹페이지에 접근하고 페이지 전환을 통하여 웹브라우저에 전달한다.

-jsp파일 컴파일 순서
JSP 파일 ⇒ servlet 파일 ⇒ 클래스 파일 ⇒ 실행


jsp예제


3. JSP와 Servlet의 차이 및 비교

Servlet

JSP

~ 자바코드로 구현하고 컴파일하고 배포해야 한다.
~ HTML태그로 문자열("")스크림으로 처리해야 한다.
~ 코드가 수정되면 다시 컴파일하고 배포해야 한다.

~ 키워드가 태그화 되어 서블릿에 비해 배우기 쉽다.
~ 자바코드를 <%%>태그 안에 처리해주어야 한다.
~ HTML처럼 태그를 사용하여 자바코드도 사용이 가능하다.


4. Servlet과 JSP의 역할

 내 용만 보게 된다면 서블릿이나 JSP나 만드는 방법에 차이가 있을 뿐 동일한 역할을 한다는 것을 알수 있다. 초기에 자바 웹개발은 서블릿을 이용한 개발이였다. 이후 JSP기술이 발표되면서 JSP형태의 개발이 유행하게 되고 지금에 와서 각각의 역할을 나누어 Servlet+JSP형태의 개발이 이루어지고 있다.

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

 

728x90

댓글