[JSP] 페이지 DATA 이동 (예)
pageContext, javax.servlet.jsp.PageContext
페이지 처리에 대한 전반적인 context의 정보를 담고 있는 것으로 다른 내장 객체에 접근할 수 있는 유일한 객체
상태 유지 : pageContext.forward(다음페이지);
상태 유지x : response.sendRedirect(다음페이지);
[forwardStartPage.jsp]
<%@ page language="java" contentType="text/html; charset=EUC-KR"
pageEncoding="EUC-KR"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">
<title>forward test start page JSP</title>
</head>
<body>
<font style="font-size:30px;">회원가입페이지</font>
<form action="forwardMiddlePage.jsp" method="post">
아 이 디 : <input type="text" name="id"/><br/>
비밀번호 : <input type="password" name="passwd"/><br/>
주민번호 :
<input type="text" name="socialSecurityNo1" size="6" maxlength="6"/>
<input type="password" name="socialSecurityNo2" size="7" maxlength="7"/>
주 소 : <input type="text" name="addr" size="60"/><br/>
<input type="submit" value="가입"><input type="reset" value="다시쓰기">
</form>
</body>
</html>
[forwardMiddlePage.jsp]
<%@ page language="java" contentType="text/html; charset=EUC-KR" pageEncoding="EUC-KR" import="java.util.Calendar"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">
<title>forward test middle page JSP</title>
</head>
<body>
<% request.setCharacterEncoding("EUC-KR"); %>
<%
String socialSecurityNo1 = request.getParameter("socialSecurityNo1");
Calendar today = Calendar.getInstance();
int birthYear = Integer.parseInt(socialSecurityNo1.substring(0,2));
String socialSecurityNo2 = request.getParameter("socialSecurityNo2");
int sexCode = Integer.parseInt(socialSecurityNo2.substring(0,1));
int startYear=1900;
String sexCodeStr = "남자";
switch(sexCode)
{
case 3: case 4:
startYear = 2000;
}
switch(sexCode)
{
case 2: case 4:
sexCodeStr = "여자";
}
birthYear += startYear;
int age = today.get(Calendar.YEAR) - birthYear;
out.print("이곳이 화면에 나올까?");
String nextPage = "forwardEndPage.jsp?age=" + age + "&sexCodeStr=" + sexCodeStr;
pageContext.forward(nextPage);
//request.getRequestDispatcher(nextPage).forward(request, response);
//response.sendRedirect(nextPage);
%>
</body>
</html>
[forwardEndPage.jsp]
<%@ page language="java" contentType="text/html; charset=EUC-KR"
pageEncoding="EUC-KR"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">
<title>Insert title here</title>
</head>
<body>
<% request.setCharacterEncoding("EUC-KR");%>
아이디: <%= request.getParameter("id") %><br/>
암호: <%= request.getParameter("passwd") %><br/>
주민번호: <%= request.getParameter("socialSecurityNo1") +"-"+request.getParameter("socialSecurityNo2") %><br/>
나이: <%= request.getParameter("age") %><br/>
성별: <%= request.getParameter("sexCodeStr") %><br/>
주소: <%= request.getParameter("addr") %><br/>
</body>
</html>
String nextPage = "forwardEndPage.jsp?age=" + age + "&sexCodeStr=" + sexCodeStr;
pageContext.forward(nextPage);
//request.getRequestDispatcher(nextPage).forward(request, response);
//response.sendRedirect(nextPage);
%>
위 코드는 아래 코드로 대체 가능함.
<jsp:forward page="forwardEndPage.jsp">
<jsp:param value="<%=age %>" name="age"/>
<jsp:param value="<%=sexCodeStr %>" name="sexCodeStr"/>
</jsp:forward>