프로그래머/JAVA

[JSP] 페이지 DATA 이동 (예)

얼짱가면 2013. 3. 26. 10:28

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>