[JSP] 1. JSP이란?
흔히 말하고 사용하는 JSP에 대해서 좀 더 개념을 정리하자
1-1. JSP이란?
- 웹사이트를 보다 쉽게 구축할수 있도록 만들어진 서버사이드 스크립트 언어
- Java 언어를 기반으로 하는 스크립트 언어이기 때문에 자바기능을 그대로 사용할수 있다는 장점
- 표현 언어,표현식,액션 태그 등의 스크립트적 요소를 제공
- 다양한 API나 오픈소스를 제공
- 자바 기반이기 때문에 윈도우, 리눅스 운영체제 상관없이 플랫폼에 독립적
- HTML 코드에 JAVA기반 스크립트 언어로 JAVA 코드를 넣어 동적 웹 서비스를 제공
JSP(JavaServer Pages)는 “HTML 정적 페이지에 자바 코드를 삽입하여 웹 서버를 동적으로 웹 브라우저에 보여주는 언어”이다.
정적페이지
<HTML>
<HEAD>
<TITLE>HTML</TITLE>
</HEAD>
<BODY>
<h2>HTML 정적페이지</h2>
</BODY>
</HTML>
동적페이지
<%@ page language="java" contentType="text/html;charset=euc-kr" %>
<HTML>
<HEAD>
<TITLE>JSP</TITLE>
</HEAD>
<BODY>
JSP 동적페이지
현재 시간은 : <% out.print(new java.util.Date( )); %>
</BODY>
</HTML>
1-2. Servlet(서블릿)이란?
- Server+Applet 서버 측 Java프로그램
- Java 기반으로 만드는 웹 어플리케이션 프로그래밍 기술
- Java언어로 서블릿 클래스를 만들고, 컴파일 후 웹 서비스를 제공
- 소스를 수정하면 다시 컴파일하여 서버에 탑재해야 함
예전에는 Servlet으로 예를 들어 아래와 같이 개발을 하였다. 그래서 위에서 설명한 웹사이트를 보다 쉽게 구축할수 있도록 만들어진 서버사이드 스크립트 언어인 JSP의 탄생 배경
이다.
Servlet
public class HelloServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType(“text/html; charset=EUC_KR”);
java.io.PrintWriter out = response.getWriter();
out.println(“<HTML><HEAD><TITLE>Servlet</TITLE></HEAD>”);
out.println(“<BODY><H2>Servlet 방식</H2>”);
out.println(“지금 시간은 : ” + new java.util.Date()); out.println(“</BODY></HTML>”);
}
}
1-3. JSP 처리 과정
JSP가 실행되면 컴파일 후 Servlet코드로 변환되어 웹 어플리케이션 서버에서 동작되면서 필요한 기능을 수행한 뒤, 데이터와 웹페이지를 함께 클라이언트로 보여준다.
클라이언트가 어떤 동작을 함으로써 hello.jsp 를 요청하였다.
JSP 컨테이너가 JSP 파일을 읽는다.
JSP 컨테이너가 Generete (변환) 작업을 통해 Servlet ( .java ) 파일을 생성한다.
.java 파일은 다시 .class 파일로 컴파일된다.
Execute (실행) 을통해 HTML 파일을 생성하여 JSP 컨테이너 에게 전달한다.
JSP 는 HTTP 프로토콜을 통해 HTML 페이지를 클라이언트 에게 전달한다.
위와 같은 JSP 처리 과정은 최초에 요청되었을 때만 실행된 후 .class파일이 남아있어 서비스
웹 서버
: 클라이언트로부터의 요청을 받고 결과를 전달하는 기능(Apache, IIS, Nginx)WAS
: Web Application Server의 약자이며, 웹서비스의 처리를 위해 동적 웹서비스를 처리JSP컨테이너
: JSP프로그램을 서블릿 프로그램으로 변환하는 기능의 프로그램웹 컨테이너
: 웹 서버에서 JSP를 요청해 톰캣에서 JSP파일을 서블릿으로 변환하여 서블릿의 결과를 웹서버의 전달하는 것
웹 컨테이너 = 서블릿 컨테이너 + JSP컨테이너
(서플릿 컨테이너에는 Tomcat,WebLogic,WebSphere)
출처