✅ 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에서 동적으로 메시지를 변경.
'개발인생 > Backend' 카테고리의 다른 글
[ORM] JPA 성능 최적화: N+1 문제 해결하는 3가지 방법 (0) | 2025.02.22 |
---|---|
[ORM] JPQL vs QueryDSL: 무엇이 더 나을까? (2) | 2025.02.21 |
[JSP] Tomcat은 JSP와 Servlet 실행에 왜 필요할까? (1) | 2025.02.17 |
[JSP] vs Servlet (0) | 2025.02.17 |
[JSP] JSP 프로젝트 구조 (0) | 2025.02.17 |