개발인생/Backend

[JSP] vs HTML

forri 2025. 2. 17. 18:22

✅ JSP(JavaServer Pages)란?

 

JSP는 Java 기반의 서버에서 실행되는 웹 페이지로, HTML과 Java 코드를 함께 사용할 수 있는 기술이다.

  • 일반 HTML과 달리 서버에서 실행되어 동적인 웹 페이지를 생성할 수 있음.
  • Java 코드 (<% %> 또는  태그)를 포함할 수 있음.
  • Servlet으로 변환되어 실행되며 request, response 같은 객체를 직접 사용할 수 있음.

 

 

1. HTML과 JSP의 차이

  • HTML(정적 페이지): 웹페이지를 구성하는 기본적인 문서로, 사용자가 요청하면 서버에서 그대로 전송됨. 즉, 변하지 않는(정적인) 내용만 포함.
  • JSP(동적 페이지): HTML 안에서 Java 코드를 사용할 수 있는 웹페이지 기술. 사용자의 요청에 따라 서버에서 데이터를 처리한 후, 동적으로 HTML을 생성하여 응답할 수 있음.

2. HTML과 JSP의 역할 비교

  HTML JSP
기능 정적인 콘텐츠 표시 동적으로 생성된 콘텐츠 표시
서버 역할 요청하면 그대로 반환 요청에 따라 데이터를 처리 후 HTML 생성
Java 코드 포함 ❌ 불가능 ✅ 가능
예시 <h1>안녕하세요</h1> (변경 없음) <h1><%= "안녕하세요, " + 사용자명 %></h1> (사용자명에 따라 다름)

3. HTML과 JSP의 관계

  • HTML 파일은 JSP의 일부 역할을 할 수 있지만 동적 데이터 처리는 불가능함.
  • JSP는 HTML 코드에 Java 코드를 추가하여 동적인 페이지를 만들 수 있음.
  • 보통 header.jsp, footer.jsp처럼 반복되는 UI는 JSP로 만들고, 특정 데이터를 보여주는 페이지는 별도로 HTML을 포함한 JSP로 구성함.

 

 


예제로 알아보기(1)

 

(1) HTML 파일 (정적 페이지)

<!DOCTYPE html>
<html lang="ko">
<head>
    <meta charset="UTF-8">
    <title>수수마 소개</title>
</head>
<body>
    <h1>수수마 서비스 소개</h1>
    <p>우리는 최고의 수리 서비스를 제공합니다.</p>
    <a href="main.jsp">더 보기</a>
</body>
</html>

 

📌 설명: intro.jsp 링크를 누르면 main.jsp 파일이 실행됨.

 

 

(2) JSP 파일 (동적 페이지)

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%
    String serviceName = "수수마";
    String description = "우리는 최고의 수리 서비스를 제공합니다.";
%>
<!DOCTYPE html>
<html lang="ko">
<head>
    <meta charset="UTF-8">
    <title><%= serviceName %> 소개</title>
</head>
<body>
    <h1><%= serviceName %> 서비스</h1>
    <p><%= description %></p>
</body>
</html>

 

📌 설명:

  • String serviceName = "수수마"; → Java 변수를 선언하여 값 저장
  • <%= serviceName %> → HTML 안에서 Java 변수를 출력하여 동적으로 변경 가능
  • 위 코드에서 serviceName 값을 바꾸면 웹페이지의 제목과 내용이 자동으로 변경됨.

 

예제로 알아보기(2)

 

(1) HTML 파일 (login.html)

<form action="login.jsp" method="post">
    <label>이메일: <input type="text" name="email"></label><br>
    <label>비밀번호: <input type="password" name="password"></label><br>
    <button type="submit">로그인</button>
</form>

 

📌 설명: 사용자가 이메일과 비밀번호 입력 후 login.jsp로 데이터를 보냄.

 

 

(2) JSP 파일 (login.jsp - 동적 처리)

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%
    String email = request.getParameter("email");
    String password = request.getParameter("password");

    if ("admin@example.com".equals(email) && "1234".equals(password)) {
%>
        <h1>로그인 성공!</h1>
        <p>환영합니다, 관리자님!</p>
<%
    } else {
%>
        <h1>로그인 실패</h1>
        <p>이메일 또는 비밀번호가 잘못되었습니다.</p>
<%
    }
%>
 

 

📌 설명:

  • request.getParameter("email") → 사용자가 입력한 email 값 가져옴.
  • if-else 문을 사용하여 로그인 성공 여부를 판단.
  • HTML에서 동적으로 메시지를 변경.