본문 바로가기
JSP/JSP & Servlet

액션 태그 jsp : forward

by avvin 2019. 4. 30.

액션태그의 종류

1. include

2. forward

3. useBean

4. setProperty

5. getProperty

6. plug-in



2. forward

response.sendRedirect( "location" )는 location으로 페이지를 이동하고, (데이터가 유지되지 않는다.)

<jsp:forward page ="location"> 는 location의 실행 결과를 가져와서 출력한다. (페이지 이동이 없으므로 데이터가 유지된다.)

둘 다 해당 페이지의 내용은 버퍼에서 사라진다.



ForwardLogin.jsp

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
<%@ 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>
    <!--JSP페이지 액션태그 : forward -->
    <!--request는 계속해서 정보를 다음 페이지로 넘기려면 넘길때마다 
response.sendRedirect("location" +매개값);에 매개값 주어서 넘기는데
//URI에 뜨는지 확인해보기 
forward는 그럴 필요가 없다-->
 
    <form action="ResponseProc.jsp" method="post">
        <center>
            <table width=400" border="1">
                <tr height="50">
                    <td align="center" width="150">아이디</td>
                    <td width="250">
                    <input type="text" name="id"></td>
                </tr>
                <tr height="50">
                    <td align="center" width="150">패스워드</td>
                    <td width="250">
                    <input type="password" name="password"></td>
                </tr>
                <tr height="50">
                    <td align="center" colspan="2">
                    <input type="submit" value="로그인"> &nbsp; &nbsp; 
                    <input type="reset" value="다시 입력"></td>
                </tr>
            </table>
        </center>
    </form>
</body>
</html>
cs

ResponseProc.jsp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
<%@ 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>
 
    <h2>이 페이지는 로그인 정보가 넘어오는 페이지입니다.</h2>
 
    <%
        request.setCharacterEncoding("UTF-8");
        //데이터가 넘어오는 곳에서 작성
        String id = request.getParameter("id");
        String password = request.getParameter("password");
 
        /* response.sendRedirect("ResponseRedirect.jsp?id=" + id); //흐름제어//떠넘김 */
    %>
 
    <%-- <jsp:forward page="ResponseRedirect.jsp" /> --%><!--forward로 흐름제어 -->
    <!--이 페이지 안에서  ResponseRedirect.jsp의 코드가 실행된다.-->
    <h3>아이디 :<%=id%></h3>
    
    <!-- 실무에선 두 방법 다 잘 안쓰고 대부분 세션 사용 -->
    
    <jsp:forward page="ResponseRedirect.jsp" > 
    <jsp:param value ="mmm" name="id"/>
    <jsp:param value ="ㅇㅇㅇ" name="nickname"/>
    </jsp:forward>
    <!-- 흐름제어 뿐만아니라 파라미터로 값을 임의적으로 변경할 수 있다. -->
    <!-- 넘겨받은 데이터 정보에 다른 정보를 추가해서 보낼 수도 있다. -->
 
</body>
</html>
 
cs


ResponseRedirect.jsp

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<%@ 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>
 
    <h2>ResponseRedirect.jsp페이지 입니다.</h2>
    
    <%
        request.setCharacterEncoding("UTF-8");
        //데이터가 넘어오는 곳에서 작성
        String id = request.getParameter("id");
        String password = request.getParameter("password");
        
    %>
 
    <h3>아이디 : <%=id%></h3>
    
    <!--response.sendRedirect(location?매개값=" + 매개값)
    매개값으로 데이터를 넘겨주지 않고 location만 주면 데이터가 유지되지 않는다.-->
 
</body>
</html>
cs





'JSP > JSP & Servlet ' 카테고리의 다른 글

package javax.servlet does not exist 오류  (0) 2019.04.30
액션태그 jsp:useBean / 자바빈즈(JavaBeans)  (0) 2019.04.30
액션 태그 jsp: include  (0) 2019.04.29
JSP의 지시자(Directive)  (0) 2019.04.29
내장 객체(implict object)  (0) 2019.04.29