JSP 전체 동작 과정
1. 웹 브라우저에서 URL을 입력한다.
2. DNS 서버로부터 입력한 URL을 변환한 IP 주소를 받는다.
3. 받은 IP 주소의 웹 서버 8080번 포트에 JSP 페이지를 요청한다.
4. 웹 서버가 요청 내용을 분석하고 서블릿 컨테이너에 요청을 넘겨 처리한다.
5. 화면에 보일 내용을 HTML 문서 형태로 웹 브라우저에 전송한다.
JSP로 개발된 웹 프로그램이라 하더라도, 사용자에게 최종적으로 전달되는 컨텐츠는 HTML이어야 한다. 이와 같은 특징은 모든 웹 프로그램 기술에 동일하게 적용된다.
서블릿 컨테이너 내부 과정
JSP가 HTML과 같은 일반적인 텍스트 파일 구조인데 비해, 서블릿은 자바 소스로 작성된 클래스 파일 구조이다.
서블릿 컨테이너는 JSP 파일을 서블릿 소스로 변환해서 컴파일 하는데, 일단 컴파일된 JSP는 단순히 파일이 아니라 컨테이너에서 서블릿 객체로 관리된다.
1. 웹 서버로부터 JSP에 대한 사용자 요청이 컨테이너로 전달된다.
2. 요청 JSP에 대한 서블릿이 존재하면 다음 단계로 진행하고, 존재하지 않을 경우 JSP를 .java 파일로
변환한 다음 .class 파일로 컴파일 한다.
3. 컴파일된 서블릿 클래스를 컨테이너의 메모리에 적재하고 실행한다.
4. 데이터베이스 처리 혹은 별도의 클래스 호출 등이 있으면 실행하고 HTML 형태로 구성한다.
5. HTML 형태의 결과를 웹 서버를 경유해 사용자 브라우저에 전달한다.
JSP 요약
1. JSP는 일반 텍스트 파일로 되어 있다(텍스트 파일은 컴퓨터가 이해할 수 없다. 즉 실행 가능한 프로그램이 아니며 특정 동작을 할 수 없다).
2. JSP는 HTML 코드와 몇몇 특수한 태그, 그리고 자바 코드가 섞여 있다.
3. 사용자가 요청할 경우 JSP는 컨테이너(톰캣)에 의해 서블릿 형태의 .java 소스로 변환되고 컴파일된다.
4. 컴파일된 .class는 컴퓨터에서 실행할 수 있는 형태로 특정한 기능을 수행할 수 있게 된다. 이후 소스 변경 전까지 해당 파일을 메모리에 상주하면서 다시 컴파일되지 않고 서비스 된다.
MVC 패턴
MVC는 Model-View-Controller의 약자로 프로그램의 전체 구성요소를 데이터, 화면, 컨트롤의 세 가지 기능적 요소에 초점을 둔 프로그래밍 방식이다.
모델 : 백그라운드 로직과 데이터 조작을 담당한다.
뷰 : 사용자가 볼 수 있는 화면, 최종적인 출력을 담당하며 기본적으로 JSP 영역이며 HTML, CSS 외의 표현 언어, 커스텀 태그 등이 사용된다.
컨트롤러 : 모델과 뷰를 연결하는 역할을 수행한다. 사용자 요청을 받아들이고 데이터를 처리한 후 결과를 뷰에 전달한다.
MVC 패턴에 따르면 웹 프로그램의 경우 Model은 자바 클래스로 구현되며 보통 DO, DAO와 같은 데이터 처리 클래스들로 구성된다.
MVC 패턴은 프로그램 모델이므로 직접 구조를 설계해도 되지만 스트러츠 프레임워크 혹은 스프링 @MVC 등 검증된 프레임워크를 사용하는 것이 좋다.
'BE > JSP' 카테고리의 다른 글
이클립스와 MySQL 연동 (0) | 2022.02.10 |
---|---|
JDBC (0) | 2022.02.09 |
빈즈 (0) | 2022.02.09 |
서블릿 (0) | 2022.02.04 |
웹 프로그래밍에 대한 이해 (0) | 2022.01.29 |