pageContext.forward("이동할 페이지"); // 방법(1) : 내장객체 사용
<jsp:forward page="이동할 페이지" /> // 방법(2) : 액션태그 사용
request.getAttribute("키값");
response.sendRedirect("이동할 페이지");
데이터베이스에서 정보를 가지고와서 사용자에게 새로운 페이지를 보여줄 때, 데이터베이스 정보를 들고있는 채로 페이지에 대한 정보를 보여줄 때 사용해요. 그러므로 보안에 취약할 수 있어요.
사용자가 어떤 결제를 하고 요청을 했을 때 결제가 되었다는 결과값(결제된 비용 등)을 사용자가 볼 때 결제에 필요했던 정보(카드번호, 비밀번호 등)를 계속 보여줄 필요가 없을 때 사용해요.
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%
String userid = "user";
String userpw = "abcd1234";
String username = "자바학생";
request.setAttribute("userid", userid);
request.setAttribute("userpw", userpw);
request.setAttribute("username", username);
pageContext.forward("attribute2.jsp");
%>
</body>
</html>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%
String userid = (String) request.getAttribute("userid");
String userpw = (String) request.getAttribute("userpw");
String username = (String) request.getAttribute("username");
%>
아이디 : <%= userid %> <br>
비밀번호 : <%= userpw %> <br>
이름 : <%= username %>
</body>
</html>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%
String userid = "user";
String userpw = "abcd1234";
String username = "자바학생";
// redirect 방식은 새로 페이지를 요청하는 방식이므로 기본적으로 데이터가 저장되지 않는다. 그래서 session에 값을 저장하여 페이지 이동을 시킨다.
session.setAttribute("userid", userid);
session.setAttribute("userpw", userpw);
session.setAttribute("username", username);
response.sendRedirect("attribute2.jsp");
%>
</body>
</html>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%
String userid = (String) session.getAttribute("userid");
String userpw = (String) session.getAttribute("userpw");
String username = (String) session.getAttribute("username");
%>
아이디 : <%= userid %> <br>
비밀번호 : <%= userpw %> <br>
이름 : <%= username %>
</body>
</html>
페이지 내에서 지역변수처럼 사용
요청을 받아 웹 브라우저에게 응답할 때까지 변수가 유지되는 경우
웹 브라우저 별로 변수가 관리되는 경우 사용
웹 어플리케이션이 시작되고 종료될 때까지 변수가 유지되는 경우
출처
https://media.giphy.com/media/dwmNhd5H7YAz6/giphy.gif
https://media.giphy.com/media/3o6Mb9EC7mNqXl9x7y/giphy.gif