책을 읽으며 가장 기억에 남는 부분은 JSP페이지의 동작구조였다. 책에서는 JSP파일 동작방식을 한마디로 jsp페이지는 서블릿으로 변환이 되어 요청에 대한 응답을 생성한다'라고 요약한다. (간단하게 말하자면) JSP가 웹서버를 지나 JSP컨테이너에서 파싱하고(처음들어온 것이라면) 서블릿 파일을 생성한다. 그 후 서블릿파일은 실행 가능한 클래스 파일로 변환되고, 클래스 파일은 다시 웹서버에 넘겨져 응답내용을 HTML형태로 페이지를 실행시켜주는 것이다.
JSP는 Servlet과 별반 다를 바 없다는 말을 들어 보았을 것이다. 두가지 모두 자바로 웹 어플리케이션을 만들기 위한 도구이며, 원리가 흡사하다. 차이점을 발해보자면 아래와 같다.
- 확장자가 .jsp인 파일
- Java Server Page
- html 문서 안에 스클립트릿등을 통해 자바 언어를 삽입해 사용할 수 있도록 함
- 확장자가 .java인 파일인 일반적인 클래스와 동일한 개념
- java코드 안에 Html 코드를 삽입해 쓸 수 있음
- 웹을 다룰 수 있도록 해주는 "HttpServlet" 클래스를 상속받은 클래스를 의미함
즉 JSP는 Servlet을 보완하고 기술을 확장한 스크립트 방식의 표준이라 할 수 있다. 모델을 만들 때 JSP만 사용하게 된다면 JSP 코드가 복잡해져 지저분해지고, 유지 보수가 어려워지는 단점이 있다. 이와 같은 한계를 극복할 수 있는게 Servlet과 JSP를 모두 사용하는 MVC 모델이라 할 수 있다.
더 자세한 설명은 스프링 MVC모델 설명 에서 볼 수 있다.