-
JSP | JSP 개요 및 특징JAVA/JSP 2020. 2. 14. 17:39
JSP
Java Server Pages
자바를 기반으로 하며 서블릿보다는 자바 코드에 덜 의존적인 웹 프로그래밍 언어
JSP 개요
- 서블릿과 동일한 처리 구조를 가짐
- 서블릿 기술을 확장한 것이며
웹 상에서 100% 순수 자바만으로 서버 사이드 모듈을 개발하기 위한 기술 - 페이지의 요청이 발생하면 최초 한 번만 자바 코드로 변환된 후 서블릿 클래스로 컴파일 됨
즉, JSP는 실행시 서블릿으로 변환됨 - 코드를 수정하지 전까지는 재변환 작업이 일어나지 않기 때문에
수행 속도에서 서블릿과 큰 차이는 없음 - JSP는 주로 사용자용 화면인 뷰(View)의 구현에 사용
- 서블릿과 마찬가지로 서버 사이드에서 DB와 연동하여 화면에 데이터 표시 가능
- JSP 웹 프로그래밍을 위해서는 웹 서버, 웹 애플리케이션 서버, 웹 컨테이너 필요
JSP 특징
Java를 기반으로 만들어졌기 때문에 자바 언어의 특징을 그대로 가짐
- 객체 지향적
- 플랫폼에 독립적
- 네트워크 지향적
- 높은 보안성
- 멀티 쓰레드 지원
- 코드가 친근함
※ 자바는 J2SE(Standard Edition), J2EE(Enterprise Edition),
J2ME(Micro Edition)로 나누어져 개발되는데 JSP는 J2EE를 구성하는 기술 중 하나임
JSP 요청 처리 과정
-
웹 클라이언트에서 jsp 파일 요청
-
서버에서 서블릿 컨테이너 검색
-
서블릿 객체가 없다면 JSP 파일을 자동 컴파일
JSP파일을 서블릿을 위한 자바파일(.java)로 변경하고 자바 코드를 서블릿 클래스로 컴파일 -
컴파일된 서블릿 파일을 클라이언트에 응답
※ 결국 jsp도 서블릿으로 만들어짐
J2EE 구성
컨테이너(container)가 관리하는 컴포넌트 그룹(container-managed component)과
서비스 API(service API)그룹으로 나누어짐
Container
- 여러 가지 컴포넌트를 가지며
컴포넌트들이 제공하는 각종 서비스를 관리하는 런타임 환경 제공 - 프로그래밍에서 가장 중요한 요소는 재사용 가능한 비즈니스 로직을
작성할 수 있게 도와주는 컴포넌트 - 웹 컨테이너는 서블릿과 JSP에 대한 실행 환경 제공
- EJB 컨테이너는 Enterprise JavaBean에 대한 실행 환경 제공
Container 구성 기술
- Servlet: 서버 쪽에서 실행되는 프로그램
- JSP: 컴포넌트를 웹 페이지에 내장시켜 통합시킬 수 있음
HTML, Java, JavaBean 컴포넌트 등을 하나의 웹 페이지 내에 포함 - EJB(Enterprise Java Beans): 비즈니스 로직을 구현한 각종 컴포넌트들을
서버에 분산시켜 놓고, 지속성 있는 데이터를 객체 지향적으로 표현 가능
Service API
- 실제로 사용하는 각종 서비스 환경 제공
- JDBC: J2EE 구성요소로, DataSource나 분산 트랜잭션 지원과 같은 향상된 기능 제공
- XML(eXtensible Markup Language): J2EE에서 디플로이먼트 디스크립터(deployment descriptors)를 작성하는 포맷, 디플로이먼트 디스크립터는 J2EE 앱 환경 설정시 사용
- JNDI(Java Naming and Directory Interface): 기업형 네이밍과 디렉토리 서비스에 접근할 수 있게 하는 API, 분산 환경에 있는 서버들 간에 객체 공유 방법 제공
우리가 앞으로 공부하게 될 웹 프로그래밍 언어인 JSP의 개요와 특징에 대해 간략히 살펴보았습니다.
자세히는 아니더라도 JSP가 대충 어떤 역할을 하는 언어인지에 대해서 파악하는 것은
앞으로의 공부에 있어 도움이 될 것이라고 생각합니다.요즘에는 JSP 대신 Ajax 등의 기술로 데이터만 XML 형식으로 웹 브라우저에 전송하고
실질적인 처리는 JavaScript로 하는 경우도 많다고 하니 참고하시기 바랍니다.'JAVA > JSP' 카테고리의 다른 글
JSP | Page Diretives_<%@ page %> (0) 2020.02.18 JSP | Script 3대 요소 & Comment 주석 (0) 2020.02.17 JSP | JSP 환경 설정 (0) 2020.02.14 JSP | Servlet 서블릿 개요 (0) 2020.02.14 JSP | 웹 프로그래밍의 이해 (0) 2020.02.14