<aside> 💡
서블릿이 HTML을 찍으면 유지보수가 불가능해진다. HTML에 자바 코드를 넣자.
</aside>
build.gradle
// JSP 엔진(톰캣 Jasper)
implementation 'org.apache.tomcat.embed:tomcat-embed-jasper'
// JSTL (EL, core 태그)
implementation 'jakarta.servlet.jsp.jstl:jakarta.servlet.jsp.jstl-api'
implementation 'org.glassfish.web:jakarta.servlet.jsp.jstl'
/resources/META-INF/resources
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Document</title>
</head>
<body>
<h1>index 페이지</h1>
<% int num = 10; %>
<h3>값 : <%=num%></h3>
</body>
</html>


package com.example.v3;
import java.io.IOException;
import java.io.PrintWriter;
import jakarta.servlet.ServletException;
import jakarta.servlet.annotation.WebServlet;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
@WebServlet("/index.jsp")
public class MyServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
int num = 10;
String html = """
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Document</title>
</head>
<body>
<h1>index 페이지</h1>
<h3>값 : <%=num%></h3>
</body>
</html>
""".replace("<%=num%>", num + "");
resp.setContentType("text/html; charset=utf-8");
PrintWriter pw = resp.getWriter();
pw.println(html);
}
}
<aside> 💡
단일 진입점이 필요하다!!!!
</aside>
