일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
- Ionic
- Android
- ubuntu
- node.js
- 인공지능
- node
- express
- 자바
- Linux
- 저장소
- Retrofit
- gmaps
- 깃
- commit
- cordova
- Q-Map
- java
- ssh
- EC2
- mean
- 안드로이드
- angularJs
- JSP
- SSH Key
- HTML
- Repository
- rest
- IT 도서
- git
- AWS
- Today
- Total
UroA 개발 블로그
[JSP & Servlet] JSP와 Servlet의 차이 본문
JSP와 Servlet의 차이
Servlet (Server + Applet)
servlet은 톰캣 위에서 동작하는 java 프로그램입니다. java 언어를 기반으로 동적인 contents를 생성하는 기술입니다. 더 정확한 이해를 위해서는 servlet 이 초기화 되는 과정을 보면 됩니다. 서블릿 초기화는 다음과 같은 과정을 거칩니다.
톰캣과 같은 WAS 가 java 파일을 컴파일해서 Class로 만들고 메모리에 올려 Servlet 객체를 만들게 되고 이 Servlet 객체는 doPost, doGet을 통해 요청에 응답합니다. 초기화 과정을 더 자세히 보면 아래와 같습니다.
init, Service, destory 과 같은 callback이 각 시점에 불립니다. init은 서블릿이 메모리에 로드 될때 실행됩니다. destory는 마찬가지로 언로드되기 전에 수행되는 callback입니다. service 메소드는 HTTP Method 타입에 따라 doGet 혹은 doPost를 호출합니다.
기억해야 할 점은, 초기화된 서블릿이 클라이언트의 요청이 있을 때 마다 Thread를 생성해서 병렬적으로 service를 수행한다는 것. 서블릿 객체는 여러개 생성되지 않습니다.
지금가지의 내용을 요약하자면 Servlet은 WAS 를 통해 컴파일 된 후 메모리에 적재되어 클라이언트의 HTTP Get, Post 등의요청을 처리하는 자바 프로그램입니다.
JSP (Java Server Pages)
Servlet은 JAVA 코드 안에 HTML 태그가 섞여 있어 작업에 대한 분리적 측면에서 효율성이 떨어지기 때문에 프로그래밍하기 상대적으로 어렵고 수정하기 어려운 단점이 있습니다. 이러한 불편함을 해결하기 위해 JSP가 등장 하였습니다. (사실 이 JSP 도 내부적으로는 Tomcat 이 Servlet 으로 변환되어 compile 되고 실행됩니다.)
HTML 내부에 Java 코드가 있어 HTML 코드를 작성하기 쉽습니다. (또한 사용자가 직접 태그를 정의해서 사용할 수 있는 사용자 정의 태그를 만들 수 있어 보다 효율적인 웹사이트 구성에 용이합니다.) 단, 로직과 디자인이 한 파일내에 섞여있어 유지보수가 어렵다는 단점이 있습니다
다음은 JSP를 이용하여 개발시 사용되는 모델입니다.
특징
- JSP만 사용하는 모델
- 개발속도가 빠름, 배우기 쉬움,
- 프리젠테이션 로직과 비즈니스로직이 혼재
- JSP 코드가 복잡해져 유지보수가 어려움.
특징
- JSP/Servlet 동시사용 MVC 모델 (View는 JSP로, Controller는 Servlet 을 사용)
- 프리젠테이션 로직과 비즈니스로직 분리 (보여지는 부분은 HTML이 중심이 되는 JSP, 다른 자바 클래스에게 데이터를 넘겨주는 부분은 Java코드가 중심이 되는 Servlet이 담당)
- 유지보수 용이
참고)
- http://anster.tistory.com/128
- 학교 수업자료
'Programming > JSP & Servlet' 카테고리의 다른 글
[JSP] JSP 스크립팅 구성요소 (0) | 2016.04.19 |
---|---|
[JSP & Servlet] Apache(웹서버) 와 Tomcat(WAS) 이해하기 (0) | 2016.04.12 |