[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코드로 변환되어 웹 어플리케이션 서버에서 동작되면서 필요한 기능을 수행한 뒤, 데이터와 웹페이지를 함께 클라이언트로 보여준다.


what-servlet s1


  1. 클라이언트가 어떤 동작을 함으로써 hello.jsp 를 요청하였다.

  2. JSP 컨테이너가 JSP 파일을 읽는다.

  3. JSP 컨테이너가 Generete (변환) 작업을 통해 Servlet ( .java ) 파일을 생성한다.

  4. .java 파일은 다시 .class 파일로 컴파일된다.

  5. Execute (실행) 을통해 HTML 파일을 생성하여 JSP 컨테이너 에게 전달한다.

  6. JSP 는 HTTP 프로토콜을 통해 HTML 페이지를 클라이언트 에게 전달한다.

위와 같은 JSP 처리 과정은 최초에 요청되었을 때만 실행된 후 .class파일이 남아있어 서비스

  • 웹 서버 : 클라이언트로부터의 요청을 받고 결과를 전달하는 기능(Apache, IIS, Nginx)
  • WAS : Web Application Server의 약자이며, 웹서비스의 처리를 위해 동적 웹서비스를 처리
  • JSP컨테이너 : JSP프로그램을 서블릿 프로그램으로 변환하는 기능의 프로그램
  • 웹 컨테이너: 웹 서버에서 JSP를 요청해 톰캣에서 JSP파일을 서블릿으로 변환하여 서블릿의 결과를 웹서버의 전달하는 것


웹 컨테이너 = 서블릿 컨테이너 + JSP컨테이너
(서플릿 컨테이너에는 Tomcat,WebLogic,WebSphere)




출처