[헤드퍼스트 Servlet&JSP] 2. 웹어플리케이션 아키텍쳐
학습목표
고차원 웹 어플리케이션 아키텍쳐
Container 컨테이너
웹브라우저 - 웹서버 - 컨테이너(java) - 서블릿
컨테이너 역할: 통신(커뮤니케이션) 지원, 생명주기(라이프사이클) 관리, 멀티스레딩 지원, 선언적인 보안관리, JSP 지원
컨테이너는 URL 만 가지고 어떤 서블릿에 대한 요청인지를 찾아낸다.
그림 설명: http://finerss.tistory.com/11
DD (Deployment Descriptor)
배포 서술자
Container 가 어떻게 일할 것인지의 정보를 담고 있는 DD
DD 변경을 통해 소스를 한 행도 바꾸지 않고 중요한 것들을 수정할 수 있다는 것! 이미 테스트 된 소스코드의 수정을 최소화하고, 코드변경이나 컴파일 하지 않고도 서버 자원 (DB 연결 등) 을 할 수 있다. 등등
DD는 대표적으로 컨테이너가 사용자 요청 URL을 최종 서블릿으로 매핑해주는 정보를 가지고 있다.
- 사용자 접근경로 url-pattern
- 서블릿 내부 이름 servlet-name
- 서블릿 상대 경로 servlet-class
MVC Design Pattern
재사용 가능한 비즈니스 로직을 위하여! 비즈니스 로직을 빼내어 일반적인 자바 클래스로 작성합니다.
서블릿 컨트롤러, 자바 모델, JSP 뷰가 한 세트를 이룹니다.
- Model 모델: 비즈니스 로직, JAVA
- View 뷰: 프리젠테이션 로직, JSP
- Controller 컨트롤러: Servlet(서블릿)
J2EE
Java 2 Enterprise Edition
J2EE 애플리케이션 서버는 웹 컨테이너와 EJB 컨테이너로 구성되어 있습니다.
톰캣은 웹 컨테이너이지, 완전한 J2EE 애플리케이션 서버가 아닙니다.
J2EE 서버는 서블릿, JSP, EJB 스펙을 포함하고 있습니다.
너무 추상적인 레벨이라서...
HeadFirst 임에도 불구하고 아직은 이해가 잘 안됬다.
빨리 코드 입력하고 싶다는 생각이 드는 챕터였다.
그 다음장. MVC 튜토리얼을 통해 코딩 욕구(?)를 해소할 수 있기를!
+a.
Servlet, JSP, Model1, Model2, Spring
항간에 떠도는 프레임워크에 대해 혼란스럽다면
링크: http://anster.tistory.com/128