jsp 와 servlet 의 차이

FRAMEWORK/SERVLET 2014. 11. 5. 17:35

서블릿은 멀티쓰레딩에 의해 사용자 요구를 처리하고 가공해서 이에 대한 결과를 내보내게 된다. CGI가 클라이언트 프로세스로 처리하는데 반해 서블릿은 클라이언트를 쓰레드로 처리한다. 그래서 많은 클라이언트의 요구를 효과적으로 처리할 수 있다. 서블릿 객체는 쓰레드가 여러 개 돌아가면서 처리하기 때문에 서블릿 메소드들은 반드시 멀티쓰레드에 대한 고려를 해야한다.

 JSP와 서블릿은 자바 기반으로 만들어진 웹 프로그래밍 언어이다. 서블릿이 자바 코드에 의존적이라면 JSP는 덜 의존적이라 프로그래밍하기가 더 쉽고 편하다. JSP와 서블릿은 같은 처리 구조를 가진다. 엄밀히 말하면, JSP는 페이지 요청이 있을 시에는 최초에 한 번 자바 코드로 변환된 후 서블릿 클래스로 컴파일된다. 결론적으로 JSP는 실행시 서블릿으로 변환된다. 단 한번만 서블릿으로 변경되며 코드를 수정하기 전까지 재 변환 작업이 일어나지 않기 때문에 수행 속도는 JSP나 서블릿간에 별차이가 없다.
 
 서블릿과 JSP는 상호 연계되어 JSP에서 정적인 부분을 담당하고, 서블릿은 보다 동적인 처리를 위한 부분으로 사용되어 보다 효율적인 웹사이트를 구성할수 있다. JSP는 주로 사용자용 뷰(view)의 구현에 사용되고 서블릿은 사용자의 뷰와 프로그램 로저 사이를 제어해주는 역활을 주로 사용한다.

서블릿은 서버에서 실행되는 작은 프로그램이다. 이 용어는 웹 페이지와 함께 별도의 파일로 보내지는 작은 프로그램인 자바 애플릿의 맥락에서 만들어진 신조어이다. 자바 애플릿들은 사용자를 위해 간단한 계산업무를 수행하거나 사용자의 반응에 기반하여 이미지를 위치시키는 등과 같은 서비스를 위해 대개 클라이언트에서 실행되도록 만들어진다.

그러나, 사용자의 입력에 따라 데이터베이스와 연계되는 프로그램들은 서버에서 실행될 필요가 있다. 보통, 이러한 것들은 CGI를 이용하여 구현된다. 그러나, 서버에서 실행되는 자바 가상머신을 이용하면, 그러한 프로그램들을 자바 언어로 구현할 수 있다. 서버에 있는 자바 서블릿의 장점은 CGI 응용프로그램보다 더 빠르게 실행될 수 있다는 것이다. 서블릿은 각 사용자의 요청마다 별도의 프로세스가 생기는 대신, 단 하나의 데몬 프로세스 내에서 스레드로 호출되는데, 이는 각 요구에 따른 시스템 오버헤드가 적다는 것을 의미한다.


결국,
jsp 나 servlet 이나 결론적으로는 같음.
단, jsp는 서버에서 서블릿으로 변환되어 - 처음 한번만 - 실행됨
jsp 가 view단을 처리하기에 편리함. 서블릿의 경우엔 모두 프로그램적으로 처리해야함(out.println("<html>"); 이런 식으로)

MVC는 각각의 효율성을 봐서 V를 jsp, C를 서블릿에 맡긴 것.


출처 - http://lonelycat.tistory.com/467

'FRAMEWORK > SERVLET' 카테고리의 다른 글

RequestDispatcher forward method  (0) 2014.11.05
RequestDispatcher include method  (0) 2014.11.05
서블릿이란  (0) 2014.11.05
서블릿  (0) 2014.11.05
: