Web/Jsp

JSP 용어 정리2

코딩은 내 밥줄 2021. 5. 28. 00:43

웹 서버 사용자로부터 요청을 받으면 서블릿을 관리 하고 있는 컨테이너에게 요청이 간다. 요청을 받는 컨테이너는 HTTP Request와 HTTP Response 객체를 만들어 이를 인자로 서블릿 doPost() doGet() 메소드 중 하나를 호출한다.

 

컨테이너 역할

1. 통신(커뮤니케이션) 지원. 통신 API를 지원한다.

2. 생명주기 관리. 인스턴스화, 초기화 메서드 호출, 서블릿 메소드 호출 작업을 한다.

3. 멀티스레딩 지원. 요청이 들어오면 새로운 자바 스레드를 만들며 HTTP 서비스 메소드를 실행하면 스레딩 작업이 끝난다.

4. 선언적인 보안관리. 보안관리를 XML 배포 서술자에다 기록만 하면 된다.

 

컨테이너 요청

1. 사용자가 서블릿에 대한 링크를 클릭한다.

2. 서블릿을 받으면 두 객체를 생성한다. HttpServletResponse, HttpServletRequest

3. URL를 분석하여 어떤 서블릿에 대한 요청인지 알아낸다.(DD참조함) 후에 서블릿 스레드를 생성하여 Request, Response 객체를 인자로 넘긴다.

4. 서블릿 메소드를 호출한다. 요청에 따라 doPost() doGet() 중 결정하게 된다.

5. HTTP가 get이라 가정할때 doGet 메소드는 동적인 페이지를 생성하여 이를 Response객체에 실어 보낸다. 후에도 컨테이너에는 Response객체에 대한 참조를 가지고있다.

6. Response객체를 HTTP Response로 전환하여 클라이언트로 내려보낸다. 후에  Request, Response을 삭제한다.

 

서블릿 이름

1. 클라이언트가 아는 URL 이름

2. 배포자가 만든 내부적인 이름

3. 실제 파일명

-> 서블릿 이름을 다른 이름으로 매핑하면 유연성, 보안성이 좋아진다.

 

URL을 이용하여 서블릿에 매핑하기

1. <Servlet> 내부에서만 사용하는 이름과 완전한 클래스명과 서로 매핑

2. <servlet-mapping> 내부에서 사용하는 이름과 URL 이름을 서로 매핑

 

DD의 이점

1. 테스트된 소스에 대한 수정을 최소화함.

2. 소스 코드가 없더라도 애플리케이션 목적에 맞게 수정 가능.

3. 코드 컴파일을 다시 하지 않아도 서버 지원.

4. 접근 제어 목록과 같은 보안 역할

5. 프로그래머가 아니라도 웹 애플리케이션을 배포하고 설정을 수정할 수 있다.

 

MVC: 디자인 패턴이란 프로그램이나 어떤 특정한 것을 개발하는 중에 발생했던 문제점들을 정리해서 상황에 따라 간편하게 적용해서 쓸 수 있는 것을 정리하여 특정한 "규약"을 통해 쉽게 쓸 수 있는 형태로 만든 것.

 -뷰: 프리젠테이션. 컨트롤러로 부터 모델 정보를 읽어온다.

 -컨트롤러: Request 객체에서 사용자가 입력한 정보를 뽑아내어, 모델에 대하여 어떤 작업을 하는지 알아낸다.

 -모델: 비지니스 로직으로, 모델정보를 읽어오거나 수정한다. 데이터베이스와 통신한다.

->MVC 안에서 JSP, 자바클래스, 서블릿이 역할을 한다.

 

J2EE: 웹컨테이너+EJB컨테이너

! 톰캣은 웹 컨테이너지 완전한 J2EE서버가 아니다. -> 그래서 아파치와 함께 쓴다.