01. JSP 개요
- 서블릿(Servlet)과 JSP(Java Server Page)
- 서블릿은 자바를 이용한 서버 프로그래밍 기술이다.
- 초기 웹 프로그래밍 기술인 CGI(Common Gateway Interface)를 대체하기 위해 개발되었으나, 느린 처리 속도, 많은 메모리 요구, 불편한 화면 제어 등의 한계로 PHP, ASP 등 서버 스크립트 언어 등장
- JSP는 PHP와 유사한 형태로 HTML을 중심으로 자바 프로그램과의 유기적인 연결을 지원
- JSP의 특징
- 자바의 모든 기능을 사용할 수 있어 발전 가능성이 무한하다
- 서블릿으로 컴파일된 후 메모리에서 처리되기 때문에 많은 사용자의 접속도 원활하게 처리할 수 있다.
- JSP 또는 다른 서블릿 간의 데이터를 쉽게 공유 할 수 있다.
- 빈즈(Beans)라고 하는 자바 컴포넌트를 사용할 수 있다.
- 커스텀 태그를 만들어 사용할 수 있으며, JSTL(JSP Standard Tag Library)과 같은 태그 라이브러리를 이용할 수 있다.
- 스트러츠, 스프링 @MVC 등 다양한 프레임워크와 결합하여 개발할 수 있다.
- JSP 학습에 필요한 기술
- JSP는 웹 프로그래밍 기술로 HTML, 자바스크립트, CSS와 같은 기본 웹 프로그래밍 경험이 요구됨
- JSP는 자바언어 기반이며 개발 시 순수 자바 코드가 50% 이상으로 탄탄한 자바 기본기가 요구
- 이외 추가적으로 다음 기술들에 대한 경험이 있다면 고급 웹 프로그래밍 학습에 도움이 됨
02. JSP 처리 과정의 이해
- JSP 전체 동작 과정
- JSP는 HTML과 유사한 처리 과정을 거치나 HTML이 단순 서버 파일을 브라우저로 보내주는 것에 비해 JSP는 서버에서 프로그램이 실행된 결과를 웹 브라우저로 전달하는 차이가 있음
- 웹 브라우저에서 URL을 입력한다
- DNS 서버로부터 입력한 URL을 변환한 IP 주소를 받는다
- 받은 IP 주소의 웹 서버 8080번 포트에 JSP 페이지를 요청한다
- 웹 서버가 요청 내용을 분석하고 서블릿 컨테이너에 요청을 넘겨 처리한다
- 화면에 보일 내용을 HTML 문서 혀애로 웹 브라우저에 전송한다.
- 서블릿 컨테이너 내부 과정
- JSP와 서블릿 차이
- JSP는 HTML과 같은 일반적인 텍스트 파일 구조
- 서블릿은 자바 소스로 작성된 클래스 파일 구조
- JSP는 서블릿 컨테이너에 의해 서블릿 형태의 자바 소스로 변환되어 클래스로 컴파일 됨
- 서블릿 컨테이너
- 서블릿 컨테이너는 서블릿을 실행하고 JSP를 서블릿 코드로 변환하는 기능을 수행
- 변환된 JSP의 서블릿 클래스를 실행하고 웹 서버의 메모리에 적재하고 사용자 요청에 따라 실행
- 웹 서버로부터 JSP에 대한 사용자 요청이 컨테이너로 전달된다.
- 요청 JSP에 대한 서블릿이 존재하면 다음 단계로 진행하고, 존재하지 않을 경우 JSP를 .java 파일로 변환한 다음 .class 파일로 컴파일한다.
- 컴파일된 서블릿 클래스를 컨테이너의 메모리에 적재하고 실행한다.
- 데이터베이스 처리 혹은 별도의 기능을 위한 클래스 호출 등이 있다면 실행하고 결과를 취합해 HTML 형태로 구성한다.
- 4번과 동일
- HTML 형태의 결과를 웹 서버를 경유해 사용자 브라우저에 전달한다.
- JSP 파일은 일반 텍스트를 비롯해 HTML 코드와 특수태그, 자바 코드가 섞여 있다.
- 서블릿으로 변환된 JSP는 컨테이너에 의해 생명주기가 관리된다.
- 서블릿으로 변환된 JSP는 jspInit() 메서드에 의해 실행되고 Ready 상태가 되며 이후 사용자 요청은 _jspService() 메소드가 쓰레드 형태로 호출되어 실행된다.
- 컨테이너에 의해 JSP 서블릿이 종료될 때에는 jspDestroy() 메서드가 실행된다.
- JSP에 관해 이것만은 알고 있자.
- JSP는 일반 텍스트 파일로 되어 있다.
- JSP는 HTML 코드와 몇몇 특수한 태그, 그리고 자바 코드가 섞여 있다.
- 사용자가 요청할 경우 JSP는 컨테이너(톰캣)에 의해 서블릿 형태의 .java 소스로 변환되고 컴파일 된다.
- 컴파일된 .class는 컴퓨터에서 실행할 수 있는 형태로 특정한 기능을 수행할 수 있게 된다. 이후 소스 변경 전까지 해당 파일은 메모리에 상주하면서 다시 컴파일 되지 않고 서비스된다.
03. JSP 프로그램 기술 변천
- 서블릿과 JSP 기술 변천
- 서블릿 : 일반 자바 프로그램을 통해 웹 컨텐츠를 표현함
- JSP : HTML 기반으로(즉 화면을 중심으로) 프로그램과의 연동을 지원함
- JSP와 HTML 코드의 혼용으로 인한 문제점 해결을 위한 MVC 패턴 등장
- 개발 생산성과 확장성 등 개발 수준 향상을 위한 오픈소스 프레임워크 등장
- 새로운 웹 기술과 새로운 디바이스의 보급 확산
- JSP 프로그램 모델 유형 비교
- 프로그램 모델은 구조와 관련된 것으로 실행결과는 동일하나 프로그램 개발 및 유지보수에는 많은 차이가 있을 수 있다.
- 빈즈를 이용한 JSP 처리 과정
- 웹 브라우저 요청에 대해서 웹 서버가 http 프로토콜에 따라 사용자 요청을 처리한다.
- 웹 서버는 HTML과 JSP인 경우를 구분해서 처리한다
- 2번과 동일
- JSP의 경우 useBean 액션을 이용해서 빈즈 클래스와 연동한다.
- 필요한 경우 데이터베이스 관련 작업 등을 처리한다.
- 처리한 결과를 보여주는 JSP를 호출한다.
- 필요한 경우 결과를 보여주는 JSP에서도 빈즈를 사용할 수 있다.
'2015-2학기 > 웹데이터베이스구축' 카테고리의 다른 글
제 5장 JSP 기본 문법 (0) | 2015.10.21 |
---|---|
제 4장 서블릿의 이해 (0) | 2015.10.21 |
제 2장 자바 웹 프로그래밍 개발환경 구축 (0) | 2015.10.21 |
제 1장 웹 프로그래밍에 대한 이해 (0) | 2015.10.21 |