JSP는 왜 사용하는가?
MVC 아키텍처에서 뷰를 독립적으로 관리하기 위한 방법은 JSP를 사용하는 것이다.
만약 서블릿에서 out.prinln()으로 html을 작성한다면? 근데 또한 수백줄의 html파일을 작성해야 하는 것이라면??
끔찍하다. 서블릿의 함수형태로 작성하는 것은 너무 비효율적인 방법이다. 또한 뷰와 컨트롤러 모델을 분리하기도 힘들다.
JSP 프리 컴파일(PreCompile) 이란 무엇인가?
보통의 JSP는 요청이 있을 때마다 서블릿 소스를 생성하고 컴파일하는 과정이 필요하다.
하지만, 실무에서는 웹 애플리케이션을 서버에 배치 할 때 모든 JSP파일에 대해 자바 서블릿 클래스를 미리 생성하기도 한다.
그 이유는 JSP실행 요청이 들어왔을 때, 곧바로 서블릿을 호출할 수 있기 때문이다. 이 것이 JSP 프리컴파일이다.
이 방식의 문제는 JSP를 편집하게 되면 서버를 다시 컴파일해야하는 점이다. 개발단계보다는 안정화, 배포단계에서 필요한 것.
서블릿에서 포워딩과 인클루딩에 대해서
화면 생성을 위해서는 서블릿에서 JSP로 작업을 위임해야 한다.
이렇게 다른 서블릿이나 JSP로 작업을 위임 할 때 사용하는 객체가 RequestDispatcher이다.
클래스이름("요청 배치 담당자")만 보더라도 어떤 쓰임이 있는 지 눈치 챌 수 있겠다.
이 객체는 HttpServletRequest를 통해 얻는다.
실행을 위임하는 동작은 포워드(Forward)와 인클루드(Include)로 나뉜다.
포워드 ?
포워드로 위임하면 해당 서블릿으로 제어권이 넘어간 후 다시 돌아오지 않는다.
인클루드?
인클루드로 위임하면 해당 서블릿으로 제어권을 넘긴 후 그 서블릿이 작업을 끝내고 다시 제어권이 넘어온다.
'ServletJDBC' 카테고리의 다른 글
DAO - Data Access Object (0) | 2015.07.20 |
---|---|
서블릿 데이터 보관소 (0) | 2015.07.20 |
MVC (0) | 2015.07.20 |
Statement vs PreparedStatement (0) | 2015.07.12 |
서블릿(Servlet) 기초2 (0) | 2015.07.12 |