액션태그의 종류
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="로그인"> <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 |