본문 바로가기

카테고리 없음

2.웹 애플리케이션 아키텍쳐 (2010.9.9)

컨테이너란?
-서블릿에서는 main()메소드가 없다.
-그래서 컨테이너라 불리는 자바 애플리케이션의 컨트롤을 받음
-서버가 사용자로부터 요청 받음 -> 서블릿을 바로 호출하는 것이 아니라, 서블릿을 관리하는
-컨테이너에게 요청을 넘김
-요청받은 컨테이너는 HTTP request와 HTTP response 객체 만듦
-이를 인자로 서빌릿의 doGet()이나 doPost()메소드 중 하나 호출
-톰캣은 컨테이너의 한 예


사용자 요청 -->서버 -->컨테이너-->써블릿생성
                <--       <--            <--

컨테이너가 주는 혜택
- 통신지원
- 생명주기 관리
- 멀티스레딩 지원(요청이 들어올 때마다 별도의 쓰레드을 생성)
- 선언적인 보안 관리
- jsp 지원
-컨테이너를 사용하게 되면, 개발자는 비지니스 로직의 구현에 충실 할 수 있다.
-스레딩이나 보안, 네트워크통신 과 같은 문제들로 부터 자유롭게 되었다~~~~~

 
ppt를 보고 1~6번까지 꼭 기억해둬라..(34p)

하나의 서블릿이 이름을 세개 갖게 된다.
-클라이언트가 아는 url
-배포자가 만든 내부적 이름(클래스랑 url이랑 연결 지어주는것)
-실제 파일명(클래스이름)
-다른 이름으로 매핑하게 되면, 애플리케이션의 유연성, 보안성이 좋아진다.
--서블릿 파일의 위치나 이름이 바뀌었다고 해서 수정해야 할 부분을 일일이 찾아 다닐 필요 없음
--서버 디렉토리 구조나 파일이름의 클라이언트가 알지 못하게 할 수 있음


서블릿 매핑(DD)
DD를 이용하여 url을 서블릿에 매팅하기
-서블릿 매팅 말고도, DD에서 할 수 있는 일이 많다.
-보안,오류페이지,태그 라이브러리,초기화,관련 머 이것처럼 많은 것을 할 수 있다.


써블릿은 요청을 받으면 비니지스로직이 있는 클래스로 넘겨준다.
그 로직에서 처리를 한후 다시 써블릿에게 넘겨주고..
써블릿은 그 결과를 받아서 다시 jsp페이지로 넘겨준다.
그러면 jsp페이지가 보여준다.
써블릿은 컨트롤 하는 역할             Controller
비지니스로직은 (처리)자바 클래스   Model
jsp(출력)                                     View

하지만.......써블릿의 일이 주고 보내고 하는거라 일이 너무 단순해졌다..
그런데 100개의 요청이 있으면 써블릿이 100개 있어야 한다..
그런데 대여섯줄밖에없는 써블릿이 100개가 있으면 낭비이다..
그래서 생각 한게 써블릿을 한개로 만들었다.
써블릿은 어떤 요청이 들어오면 어느 모델로 보내고 결과를 받아서 뷰로 보내는걸 알고 있다.
그래서 코드로 구지 가질 필요가 없어서..
별도의 xml파일에 넣기로 하였다.
그래서 만든것이 struts라는 것이다.