1. Servlet이란?
Servlet은 자바 기반의 웹 프로그래밍 기술로, 자바 언어의 모든 기능을 사용할 수 있습니다. Java 코드 안에 HTML 태그가 삽입되며 자바 언어로 되어 있으며 .java가 확장자입니다.
브라우저는 기본적으로 HTML 형식의 문서 만을 표시할 수 있으며, 따라서 사용자의 요구에 맞는 동적인 웹 페이지의 표시에는 큰 한계점이 있습니다.
그러므로 웹 서버 측에서 사용자의 요구에 따라 자동으로 변환된 HTML 형식의 페이지를 생산해 전송해 줄 수 있는 여러 기술이 개발되었고, 그중 자바 진영의 기술이 Servlet입니다.
스레드 기반의 빠른 처리 속도를 보여주지만, 프로그램 내에서 HTML 태그를 작성하는 것이 화면 인터페이스 구현에 너무 많은 코드를 필요하다는 단점과 유지 보수 측면에서 많은 문제가 있습니다.
2. JSP란?
HTML 내부에 Java 코드를 삽입하는 것이 JSP입니다. Servlet 기반의 스크립트 언어로 현재 가장 대표적인 웹 프로그래밍 기술입니다. Servlet의 장점은 그대로 가져오면서 단점을 보완했습니다.
JSP는 Web Programming 언어 중 하나인데, 다른 언어로는 CGI, ASP, PHP가 있습니다. 하지만 JSP가 다른 언어보다 많이 쓰이는 이유는 서버 페이지를 쉽게 작성할 수 있고, Servlet과 함께 구동함으로써 Servlet의 기능을 사용할 수 있고 Java Beans, EJB 같은 기술로 보다 강력한 객체 지향적 지원이 가능합니다.
3. Servlet의 특징
Servlet의 특징은 크게 4가지가 있습니다.
1) 강력한 이식성
-JVM을 이용한 Java 언어의 특성상 어떤 운용체제에서도, 어떤 JSP 컨테이너에서도 사용이 가능하므로 한 번 작성한 코드를 별다른 수정 없이 다른 플랫폼으로 얼마든지 이식이 가능합니다.
2) 서버 지원의 효율적인 사용
-수많은 사용자가 접속할 경우 프로세스 생성에 너무 많은 서버 자원을 필요로 하게 되는데 이러한 문제점을 JSP는 Thread 기반의 아키텍처를 사용하여 서버 자원을 효율적으로 관리합니다.
3) 간편한 MVC 패턴 적용
-MVC(Model-View-Controller) 패턴은 웹 개발에서 많이 사용되고 있으며, 이러한 MVC 패턴을 JSP(View)와 Java Beans(Model) 그리고 Servlet(Controller)을 이용해 쉽게 구현할 수 있습니다.
4) JSTL, 커스텀 태그 등을 이용한 개발 용이성
-JSP의 문제점은 문서 내에 Java 형식의 문법과 태그 형식의 HTML 문법이 같은 페이지 내에 존재하기 때문에 JSP 문서의 코드 양이 많아질수록 가독성이 떨어집니다.
하지만 JSP 2.0 이후로 JSTL과 커스텀 태그에 대한 지원이 강화됨으로써 Java 형식의 문법을 태그 라이브러리 파일로 만들어서 태그만으로 구성할 수 있게 만드는 기능이 강력해졌습니다.
4. Servlet과 JSP의 차이점
Servlet과 JSP는 기능의 차이는 없으며 역할의 차이만 있습니다.