
request.setAttribute()를 사용하는 이유
- 다른 JSP 페이지로 데이터 전달: 여러 JSP 페이지에 걸쳐 동일한 데이터를 사용해야 할 때, request.setAttribute()를 사용하여 데이터를 공유할 수 있습니다. 예를 들어, 첫 번째 JSP 페이지에서 입력받은 사용자 정보를 두 번째 JSP 페이지에서 출력하는 경우에 유용합니다.
- MVC 패턴 구현: Model-View-Controller 패턴에서 Model 역할을 수행하는 데이터를 저장하고 전달하는 데 사용됩니다.
- 복잡한 웹 애플리케이션 구현: 여러 서블릿과 JSP 페이지가 상호 작용하는 복잡한 웹 애플리케이션에서 데이터 흐름을 관리하는 데 효과적입니다.
예시:
- 첫 번째 JSP 페이지:
request.setAttribute("userName", name); request.setAttribute("userScore", scoreStr); // 다른 JSP 페이지로 이동 (forward) request.getRequestDispatcher("result.jsp").forward(request, response); - 두 번째 JSP 페이지 (result.jsp):
String userName = (String) request.getAttribute("userName"); String userScore = (String) request.getAttribute("userScore"); // 화면에 출력 out.println("이름: " + userName); out.println("점수: " + userScore);
위 예시처럼 request.setAttribute()를 사용하면 첫 번째 JSP 페이지에서 설정한 값을 두 번째 JSP 페이지에서 사용할 수 있습니다.
결론적으로, request.setAttribute()는 JSP 페이지 간의 데이터 전달에 필수적인 기능입니다. 단순히 한 페이지 내에서 값을 사용하는 것뿐만 아니라, 여러 페이지에 걸쳐 데이터를 공유하고 복잡한 웹 애플리케이션을 구현하는 데 있어서 매우 중요한 역할을 합니다.
1. 첫 번째 JSP 페이지 (input.jsp)
사용자로부터 이름과 점수를 입력받는 페이지입니다.
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>입력 페이지</title>
</head>
<body>
<form action="display.jsp" method="post">
이름: <input type="text" name="name"><br>
점수: <input type="text" name="score"><br>
<input type="submit" value="전송">
</form>
</body>
</html>
2. 두 번째 JSP 페이지 (display.jsp)
input.jsp에서 입력받은 값을 표시하는 페이지입니다.
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%
// 요청으로부터 값 가져오기
String name = request.getParameter("name");
String scoreStr = request.getParameter("score");
// 값을 request에 설정
request.setAttribute("userName", name);
request.setAttribute("userScore", scoreStr);
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>결과 페이지</title>
</head>
<body>
<%
// request에서 설정한 값을 가져오기
String userName = (String) request.getAttribute("userName");
String userScore = (String) request.getAttribute("userScore");
%>
<h2>입력한 정보</h2>
이름: <%= userName != null ? userName : "정보 없음" %><br>
점수: <%= userScore != null ? userScore : "정보 없음" %><br>
</body>
</html>
설명
- input.jsp: 사용자로부터 이름과 점수를 입력받는 폼을 생성합니다. 폼이 제출되면 display.jsp로 POST 요청을 보냅니다.
- display.jsp: input.jsp에서 전달된 파라미터를 request.getParameter를 사용하여 가져온 후, request.setAttribute로 다른 JSP 페이지에 값을 설정합니다. 그런 다음, 설정된 값을 가져와서 화면에 출력합니다.
'Jsp' 카테고리의 다른 글
| API와 REST API: 비슷하지만 다른 점 (0) | 2024.08.30 |
|---|---|
| REST API란 무엇일까요? (1) | 2024.08.30 |
| 초딩용 JSP에서 서블릿이 하는일 (0) | 2024.08.24 |
| 서블릿이란 정확히 어떤 역할을 하는 거야? (0) | 2024.08.24 |
| 톰캣 서버의 역할 (0) | 2024.08.24 |