1. 포워드(forward)
- request스코프에 담긴값이 유효하다.(request,response가 유지된다.)
- 이동된 url이 화면에 안보인다.(사용자는 이동했는지 알수없음)
- 포워드하는 방법
1) pageContext.forward("이동할페이지");
2) ;
3) RequestDispatcher rd = request.getRequestDispatcher("이동할페이지");
rd.forward(request,response);
- <%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
- <jsp:forward page="/main.do"/>
2. 리다이렉트(redirect)
- 클라이언트가 새로 페이지를 요청한 것과 같은 방식으로 페이지가 이동됨.
request, response가 유지되지 않는다.(새로 만들어짐.)
- 이동된 url이 화면에 보인다.
- 리다이렉트 하는 방법
response.sendRedirect("이동할페이지");
- <%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
- <% response.sendRedirect("http://www.iworks2018.kr"); %>
** forward 방식은 request 값이 유효하여, 값이 전달 된다, 처음 접속했던 페이지 주소가 유지된다(사용자는 페이지가 바뀐 사실을 모를수 있다.)
** redirect 방식으로 파라메터 값을 넘기면 값은 null이다. 처음 접속했던 페이지 주소는 redirect할 주소로 바뀐다.
redirect 방식은 request유지하지 않기 때문에 redirect 되면서 값이 없어진다.
response.sendRedirect("result.jsp?id=1"); 이렇게 찍어보면 1이 넘어간다.