1-1. JSP(Java Server Pages)의 개념
- JSP는 Java Server Page의 약자이며, Java 언어를 기반으로 하는 서버 사이드 스크립트 언어(Server Side Script Language)로 HTML 코드에 Java 코드를 넣어 동적인 웹 페이지를 생성하는 웹 어플리케이션 도구이다.
<%@ page language="java" contentType="text/html; charset=EUC-KR"%>
<html>
<head> <title>JSP 이해하기</title> </head>
<body>
<%
out.print("JSP 페이지의 형태입니다.");
%>
</body>
</html>
1-2. JSP의 특징
- JSP는 스크립트 언어이기 때문에 자바 기능을 그대로 사용할 수 있다.
- Tomcat(WAS)이 이미 만들어 놓은 객체를 사용한다.
- request : the Http ServletRequest Object
- response : the HttpServletResponse Object
- session : the HttpSession Object
- out : the PrintWriter Objet
- application : the ServletContext Objet 등...
- 사용자 정의 태그를 사용하여, 보다 효율적으로 웹 사이트를 구성할 수 있다.
- JSTL(JSP Standard Tag Library, JSP 표준 태그 라이브러리) 사용
- HTML 코드 안에 Java 코드가 있기 때무에 HTML 코드를 작성하기 쉽다.
- JSP는 수정된 경우 재배포할 필요 없이 Tomcat(WAS)이 알아서 처리해준다.
1-3. JSP의 내부 동작 과정
- JSP 페이지는 JSP로 웹 어플리케이션을 구현할 때 작성하는 코드를 의미한다.
- JSP 페이지는 백그라운드에서 서블릿(Servlet) 클래스의 소스 코드로 자동 변환된다.
- JSP가 실행되면 WAS(Web Application Server)는 내부적으로 JSP 페이지를 자바 서블릿(.Java) 클래스의 소스 코드로 변환되며,
- 서블릿 클래스의 클래스 파일이 웹 어플리케이션 서버에서 동작되면서 필요한 기능을 수행하고 그렇게 생성된 데이터를 웹 페이지와 함께 클라이언트로 응답한다.
- 자바 서블릿은 자바 언어를 기반으로 만들어지며 웹 어플리케이션 서버 위에서 컴파일 되고 동작한다.
- 이는 웹 페이지를 동적으로 생성하기 위한 서버 측 프로그램을 말한다.
2-1. 서블릿(Servlet)의 개념
- 서블릿은 웹 기반의 요청에 대해 동적인 처리가 가능한 하나의 클래스이다.
- 다시 말해 서블릿은 웹 프로그래밍에서 클라이언트가 어떤 내용을 요청하면 요청한 내용을 처리하고, 처리한 그 결과를 다시 클라이언트에게 전송하는 Servlet 클래스 자바 웹 프로그래밍 기법이다.
2-2. 서블릿의 특징
- 자바 서블릿은 자바 프로그래밍 언어를 사용해 웹 페이지를 동적으로 생성하는 서버 프로그램을 말하며, 흔히 서블릿이라고 한다.
- 웹 기반의 클라이언트 요청에 대해 동적으로 작동하는 웹 어플리케이셔의 컴포넌트이다.
- 자바 코드 내부에 HTML 웹 문서를 삽입하여 사용한다.
- 서블릿은 자바 코드를 사용해 요청에 응답한다.
- 자바 코드를 이용해 구현하고 컴파일하여 배포한다.
- 서블릿 코드가 수정되면 다시 컴파일하여 배포해야 한다.
- 웹 서버의 성능을 높이기 위해 주로 사용되는 자바 클래스의 일종이다.
- 서버에서 웹 페이지를 동적으로 생성하거나 데이터를 처리하기 위해 자바로 작성된 프로그램이다.
2-3. 서블릿 프로그램의 기본적인 동작과정
- 서블릿 컨테이너는 웹 서버에서 서블릿을 관리해 주는 역할을 한다.
- 서블릿은 웹 서버에서 스스로 동작하는 것이 아니기 때문에 서블릿을 관리해주는 컨테이너가 필요하다.
- 서블릿 컨테이너는 클라이언트의 요청을 받아주고 응답할 수 있게 웹 서버와 소켓을 만들어 통신하며, 대표적인 예로 톰캣이 있다.
- 톰캣은 실제로 웹 서버와 통신해 JSP와 서블릿이 작동하는 환경을 제공해준다.
- 웹 프로그램에서 웹 클라이언트가 인터넷 URL 주소를 통해 어떤 내용을 요청하면, 서블릿 컨테이너로 전송한다.
- 서블릿은 웹 프로그래밍에서 클라이언트가 어떤 내용을 요청하면 요청한 내용을 처리하고, 처리한 결과를 다시 클라이언트에게 전송하는 Servlet 클래스의 자바 웹 프로그래밍 기법이다.
- 서블릿 컨테이너는 웹 클라이언트에서 요청을 받게 되면 HttpServletRequest 객체와 HttpServletResponse객체를 생성한다.
- web.xml은 웹 클라이언트가 요청한 내용을 분석해 어느 서블릿에서 요청을 한 것인지 검색한다.
- web.xml이 검색하여 찾은 해당 서블릿에서 service() 메서드를 호출한 후 클라이언트의 POST, GET 여부에 따라 doGet() 또는 doPost()를 호출한다.
- deGet() 또는 doPost() 메서드는 동적 페이지를 생성한 후 HttpServletResponse 객체에 응답을 보낸다.
- 응답이 끝나면 HttpServletRequest 객체와 HttpServlet 객체를 소멸한다.
3. JSP와 서블릿의 차이점
- JSP와 서블릿은 결과적으로 하는 일을 동일하다.
- 하지만 서블릿은 웹 서버의 성능을 높이기 위해 주로 사용되는 자바 클래스의 하나로 자바 코드 내부에 HTML 웹 문서를 삽입하여 사용한다.
- 반면에 JSP는 HTML 웹 문서 내부에 자바 코드를 삽입하여 사용한다는 것이 차이점이다.
JSP | 서블릿 |
HTML 웹 문서 내부에 자바 코드를 삽입하는 형식 | 자바 코드 내부에 HTML 웹 문서를 삽입하는 형식 |
HTML 웹 문서의 <% ... %> 태그 내부에 JSP 코드를 구현 | 자바 코드를 이용해 구현하고 컴파일 하여 배포 |
HTML 웹 문서 안에 키워드가 태그화되어 있으므로 서블릿에 비해 매우 쉽게 구현할 수 있다. |
서블릿 코드가 수정되면 다시 컴파일하여 배포해야 한다. |
서블릿의 비효율적인 측면들을 보완하여 만든 서블릿 기반의 서버 스크립트 기술이다. | 웹 서버의 성능을 높이기 위해 주로 사용되는 자바 클래스의 일종이다. |
자바 소스를 이용해 웹 페이지에 접근하고 웹 페이지 전환을 통해 웹 브라우저에 전달한다. | 서버에서 웹 페이지를 동적으로 생성하거나 데이터를 처리하기 위해 자바로 작성된 프로그램이다. |
- 서블릿과 JSP의 역할은 프로그래밍하는 방법에 차이가 있을 뿐 동일하다.
- JSP는 웹 어플리케이션 구조에서 사용자에게 결과를 보여주는 역할을 하고, 서블릿은 사용자의 요청을 받아 분석하고 처리하여 처리한 결과를 다시 사용자에게 응답하는 역할을 한다.
'~2023.02 > JSP' 카테고리의 다른 글
[JSP]세션과 쿠키 (0) | 2022.06.13 |
---|---|
[JSP]JSP의 두 가지 문법 형태 (0) | 2022.06.13 |
JSP 처리 과정 (0) | 2022.06.04 |
JSP 페이지의 구성요소 (0) | 2022.06.04 |