어쩌다 알게 된 ƪ(•̃͡•̃͡ ƪ

🟩 [Java] JSP(Jakarta Server Pages)란? 본문

개발/🟩 Java

🟩 [Java] JSP(Jakarta Server Pages)란?

비니_ 2025. 3. 13. 15:29
728x90

JSP란?

=> HTML 코드 안에서 Java 코드를 실행할 수 있도록 만든 서버 사이드 기술

 

<%@ page language="java" contentType="text/html; charset=UTF-8" %>
<html>
<head>
    <title>JSP 예제</title>
</head>
<body>
    <h2>현재 시간: <%= new java.util.Date() %></h2>
</body>
</html>

 

1️⃣ HTML으로 웹 페이지를 디자인하고, Java 코드로 동적인 기능 추가

2️⃣ 서버에서 실행됨 (클라이언트가 직접 JAVA 코드를 볼 수 없음)

=> 사용가자 JSP 페이지를 요청하면 JSP 가 Java Servlet 코드로 변환되어 실행됨

=> 결과적으로 클라이언트는 HTML만 받음 (Java 코드는 서버에서 실행)

3️⃣ Servlet으로 변환되어 실행됨

=> JSP는 결국 Java Servlet에서 변환되어 실행

=> JSP를 사용하면 웹 페이지를 동적으로 생성 가능

 

 

JSP 실행 과정 (Servlet 변환 과정)

1️⃣ 사용자가 JSP 페이지 요청
2️⃣ JSP 파일이 Servlet(Java 코드)로 변환됨
3️⃣ 변환된 Servlet이 컴파일되고 실행됨
4️⃣ Servlet이 HTML을 생성하여 클라이언트(브라우저)로 응답

즉, JSP는 HTML처럼 보이지만, 결국 Java 코드로 실행됨!

 


❓ JSP가 Servlet으로 변환된다는 것이 무슨 뜻?

👩🏻 JSP 파일은 브라우저에서 직접 실행되는 것이 아니라, Java Servlet 코드로 변환된 후 실행

=> 실행 과정

1. 사용자가 JSP 페이지 요청

   사용자가 브라우저에서 http://example.com/index.jsp 같은 JSP 페이지를 요청하면 서버(Tomcat 등)가 요청을 받음

2. 서버가 자동으로 JSP 파일을 Servlet (JAVA 코드) 로 변환

3. 변환된 Servlet 실행 -> HTML 생성하여 브라우저에 뿌리기

 => 여기서 사용자 브라우저(클라이언트)는 Java 코드를 볼 수 없고, HTML 결과만 볼 수 있음

// 1. jsp 페이지
<%@ page language="java" contentType="text/html; charset=UTF-8" %>
<html>
<head>
    <title>JSP 예제</title>
</head>
<body>
    <h2>현재 시간: <%= new java.util.Date() %></h2>
</body>
</html>

👇

// 2. 서버가 java servlet 코드로 변환
public class index_jsp extends HttpServlet {
    public void _jspService(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        response.setContentType("text/html; charset=UTF-8");
        PrintWriter out = response.getWriter();
        out.println("<html><head><title>JSP 예제</title></head><body>");
        out.println("<h2>현재 시간: " + new java.util.Date() + "</h2>");
        out.println("</body></html>");
    }
}

👇

// 3. HTML로 클라이언트에게 전달
<html>
<head>
    <title>JSP 예제</title>
</head>
<body>
    <h2>현재 시간: Thu Mar 13 14:30:45 KST 2025</h2>
</body>
</html>

 

728x90

'개발 > 🟩 Java' 카테고리의 다른 글

🟩 [Java] session  (0) 2025.03.13
🟩 [Java] .equals() 메서드  (1) 2025.03.13
Comments