1. response.sendRedirect 는 페이지 이동시 데이터 값이 유지가 안 된다.
데이터값을 유지 하는 방법은 ?parm=1¶m=2 이런식의 get 방식의 데이터 전달 방법이란 보안상
중요하지 않는 데이터 전달 만 된다.
데이터 등록 후에 혹은 데이터 수정후 sendRedirect 를 사용해야 한다. 왜냐하면 foward 를 사용시 에는 기존의 데이터가
유지되기 때문에 F5 의 Refresh 사용시에는 계속적인 데이터 등록이 되어서 에러현상이 나타 난다. 따라서 데이터 삽입과
변경시 후에 페이지 이동에는 sendRedirect 를 사용해라.
2. foward 방식 (jsp:forward ) 데이터가 다음 페이지 까지 유지 된다. 데이터 전달에 있어서 post 방식을 취할 수 있기에
sendRedirect 보다 안전하다.
페이지 이동시 url 에 보이는 페이지는 이동할 페이지가 아니라 현재 자신 페이지이다. 이 이유는 전달 된 페이지에 이동했다가
다시 자기 자신의 페이지로 오기 때문이다.
A -> B -> c
A에서 데이터를 등록해서 B에서 데이터를 받았다. B에서 데이터를 다시 C 로 전달하는데 forward 방식을 취하면 C 페이지에 이동후
다시 B페이지 로 오게 된다. 페이지는 C페이지 내용이다. C 페이지 내용이 B 에 보여지는 형식이다.
3. jsp:forward 사용시 추가적인 데이터를 전달 할 수 있다. 동영상 강의 예
<jsp:forward page="ResponseRedirect.jsp"> <jsp:param value="mmmm" name="id" /> <jsp:param value="1234" name="phone" /> </jsp:forward>
forwardLogin.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <jsp:include page="Header.jsp" /> <style> #form1{ padding:10px; border: 2px solid #666; background-color:#F9F9F9; } </style> </head> <body> <div class="row"> <div class="col-xs-2 col-md-3"></div> <div class="col-xs-6 col-md-6"> <form class="form-horizontal" id="form1" action="ResponseProc.jsp" method="post"> <div class="form-group"> <label for="id" class="col-sm-2">아이디</label> <div class="col-sm-10"> <input type="text" class="form-control" name="id" id="id"> </div> </div> <div class="form-group"> <label for="pass" class="col-sm-2">패스워드</label> <div class="col-sm-10"> <input type="password" class="form-control" name="pass" id="name"> </div> </div> <div class="form-group"> <div class="col-sm-12"> <div class="text-center"> <input type="submit" value="로그인" class="btn btn-success"> <input type="reset" value="취소" class="btn btn-danger"> </div> </div> </div> </form> </div> <div class="col-xs-3 col-md-3"></div> </div> </body> </html>
ResponseProc.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <jsp:include page="Header.jsp" /> </head> <body> <div class="row"> <div class="col-xs-2 col-md-3"></div> <div class="col-xs-6 col-md-6"> <h2>이 페이지는 로그인 정보가 넘어오는 페이지 입니다.</h2> <% request.setCharacterEncoding("UTF-8"); //post 방식 한글 처리 String id =request.getParameter("id"); //request 객체에 담겨진 사용자 정보중 id만 추출 //response.sendRedirect("ResponseRedirect.jsp");//흐름 제어 %> <%-- <jsp:forward page="ResponseRedirect.jsp"/> <!-- 흐름 제어 --> --%> <jsp:forward page="ResponseRedirect.jsp"> <jsp:param value="mmmm" name="id" /> <jsp:param value="1234" name="phone" /> </jsp:forward> <h3> 아이디 : <%= id %></h3> </div> <div class="col-xs-3 col-md-3"></div> </div> </body> </html>
ResponseRedirect.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <jsp:include page="Header.jsp" /> </head> <body> <div class="row"> <div class="col-xs-2 col-md-3"></div> <div class="col-xs-6 col-md-6"> <h2>ResponseRedirect.jsp 페이지 입니다.</h2> <% request.setCharacterEncoding("UTF-8"); //post 방식 한글 처리 String id =request.getParameter("id"); //request 객체에 담겨진 사용자 정보중 id만 추출 String phone= request.getParameter("phone"); %> <h3> 아이디 : <%= id %> , 폰 : <%= phone %></h3> </div> <div class="col-xs-3 col-md-3"></div> </div> </body> </html>
동영상 강좌와 다르게 모바일 적용이 가능한 반응형 부트스트랩을 사용하였다.
여기서는 jsp 를 배우는 강좌 이기 때문에 html 적 요소에는 비중있게 생각 하지 않아도 될 것이다.
소스 : https://github.com/braverokmc79/jsp_sin
유튜브 동영상 출처 :
강사 : 신형섭(잭임연구원)
저작권 : (주)소프트캠퍼스 http://www.softcampus.co.kr 더많은 무료 강의는 사이트에서 확인하실수 있습니다.
댓글 ( 4)
댓글 남기기