JSP는 JavaServer Pages의 약자로, 동적인 웹 페이지를 생성하기 위해 사용되는 서버 측 기술입니다. JSP는 HTML 코드 안에 Java 코드를 삽입하여, 서버에서 동적으로 콘텐츠를 생성할 수 있도록 합니다.
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>JSP Example</title>
</head>
<body>
<h1>Hello, JSP!</h1>
<%
// Java 코드 삽입
String message = "Welcome to JSP";
out.println("<p>" + message + "</p>");
%>
</body>
</html>
다음은 JSP의 동작 과정을 도식화한 그림입니다:
클라이언트 요청 -------> 웹 서버 -------> JSP 컴파일러(서블릿 변환) -------> 서블릿 실행 -------> HTM
JSP 파일이 서블릿으로 변환되는 과정은 여러 단계를 거쳐 이루어집니다. 이 과정은 서버 측에서 일어나며, 주요 단계는 다음과 같습니다:
클라이언트가 브라우저에서 http://example.com/page.jsp와 같은 URL로 JSP 페이지를 요청합니다.
웹 서버(예: Apache Tomcat)는 클라이언트의 요청을 수신하고, 요청된 리소스가 JSP 파일임을 인식합니다.
웹 서버는 JSP 파일을 서블릿으로 변환합니다. 이 변환 과정은 JSP 파일을 Java 소스 코드로 변환하는 것을 의미합니다. 예를 들어, page.jsp라는 JSP 파일이 다음과 같이 변환될 수 있습니다:
public final class page_jsp extends HttpServlet {
public void _jspService(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html");
JspWriter out = response.getWriter();
out.write("<html><body>");
out.write("<h1>Hello, JSP!</h1>");
out.write("</body></html>");
}
}
변환된 Java 소스 파일(page_jsp.java)은 Java 컴파일러에 의해 바이트코드(page_jsp.class)로 컴파일됩니다.
컴파일된 서블릿 클래스 파일은 JVM에 의해 메모리에 로드되고, 서블릿 컨테이너에 의해 관리됩니다. 이후 클라이언트의 요청이 들어올 때마다 해당 서블릿의 _jspService 메서드가 실행됩니다.
서블릿이 실행되면서 동적 HTML 콘텐츠를 생성합니다. 생성된 HTML 콘텐츠는 클라이언트의 브라우저로 전송되어 웹 페이지로 표시됩니다.
1. 클라이언트 요청
|
2. 웹 서버 수신
|
3. JSP 파일 변환 (JSP to Java Servlet)
|
4. 서블릿 컴파일 (Java to Bytecode)
|
5. 서블릿 로드 및 실행
|
6. HTML 응답 생성 및 반환
이 과정을 통해 JSP 파일은 서버 측에서 동적으로 콘텐츠를 생성할 수 있는 서블릿으로 변환되고, 클라이언트에게 동적 웹 페이지로 응답할 수 있게 됩니다.