첫 번째 JSP 페이지 작성
C:\apache-tomcat-9.0.62\webapps\ROOT\date.jsp
<%@ page contentType="text/html;charset=utf-8" %>
<%@ page import="java.util.*" %>
<html>
<head>
<title>Date</title>
</head>
<body>
<%
Date day = new Date();
out.println("오늘 날짜는 " + day);
%>
</body>
</html>
첫 번째 JSP 페이지 요청 및 응답
웹 브라우저를 이용해 아래 URL을 입력하고 JSP 페이지를 요청하면 된다.
http://localhost:8080/date.jsp
서블릿 변환 과정
C:\apache-tomcat-9.0.62\work\Catalina\localhost\ROOT\org\apache\jsp
1. 웹 브라우저에서 웹 애플리케이션 서버로 date.jsp 페이지 요청
2. 웹 애플리케이션 서버는 요청된 페이지가 JSP 페이지 이므로 JSP 컨테이너에 전달
3. JSP 컨테이너는 JSP 페이지를 date_jsp.java > date_jsp.class 파일로 변환 및 컴파일
(서블릿 : 변환된 자바 클래스 파일)
4. 아래는 date_jsp.java 파일의 일부를 발췌한 내용이다.
- 아래 date_jsp.java 소스를 자세히 살펴보면 서블릿은 html 태그를 out.write() 메소드를 사용해서 자바 프로그램으로 변환시킨 자바 클래스 파일이다.
- JSP 컨테이너는 JSP 페이지를 변환할 때 java.lang.*, javax.servlet.*, javax.servlet.http.*, javax.servlet.jsp.* 패키지의 클래스 파일들을 자동으로 import 한다.
/*
* Generated by the Jasper component of Apache Tomcat
* Version: Apache Tomcat/9.0.62
* Generated at: 2022-04-17 11:25:02 UTC
* Note: The last modified time of this file was set to
* the last modified time of the source file after
* generation to assist with modification tracking.
*/
package org.apache.jsp;
import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.jsp.*;
import java.util.*;
public final class date_jsp extends org.apache.jasper.runtime.HttpJspBase
implements org.apache.jasper.runtime.JspSourceDependent,
org.apache.jasper.runtime.JspSourceImports {
private static final javax.servlet.jsp.JspFactory _jspxFactory =
javax.servlet.jsp.JspFactory.getDefaultFactory();
private static java.util.Map<java.lang.String,java.lang.Long> _jspx_dependants;
private static final java.util.Set<java.lang.String> _jspx_imports_packages;
private static final java.util.Set<java.lang.String> _jspx_imports_classes;
static {
_jspx_imports_packages = new java.util.HashSet<>();
_jspx_imports_packages.add("javax.servlet");
_jspx_imports_packages.add("java.util");
_jspx_imports_packages.add("javax.servlet.http");
_jspx_imports_packages.add("javax.servlet.jsp");
_jspx_imports_classes = null;
}
...
...
...
out.write("\r\n");
out.write("\r\n");
out.write("\r\n");
out.write("<html>\r\n");
out.write("<head>\r\n");
out.write("<title></title>\r\n");
out.write("</head>\r\n");
out.write("<body>\r\n");
Date day = new Date();
out.println("오늘은 날짜는 " + day);
out.write("\r\n");
out.write("</body>\r\n");
out.write("</html>");
} catch (java.lang.Throwable t) {
if (!(t instanceof javax.servlet.jsp.SkipPageException)){
out = _jspx_out;
if (out != null && out.getBufferSize() != 0)
try {
if (response.isCommitted()) {
out.flush();
} else {
out.clearBuffer();
}
} catch (java.io.IOException e) {}
if (_jspx_page_context != null) _jspx_page_context.handlePageException(t);
else throw new ServletException(t);
}
} finally {
_jspxFactory.releasePageContext(_jspx_page_context);
}
}
}
'웹 프로그래밍 > Servlet & JSP' 카테고리의 다른 글
JSP 태그 #2 - JSP 태그 종류 및 include 지시어 (0) | 2022.04.18 |
---|---|
JSP 태그 #1 - JSP 태그 종류 및 page 지시어 (0) | 2022.04.17 |
JSP 시작하기 (0) | 2022.04.17 |
JSP 개요 (0) | 2022.04.17 |