페이지 이동

HH_Nebula·2023년 1월 19일
0

웹 프로그래밍에서 서블릿이 주로 사용되는 영역은 MVC 패턴 중 컨트롤러에 해당한다. 컨트롤러는 사용자의 요청을 받아 데이터베이스와 연동 등의 작업을 처리한 다음 결과에 따라 적절한 페이지로 전환해주는 기능을 담당한다. 이때 페이지 이동과 함께 페이지 간 정보 공유 기법에 대한 이해가 필요하다.

페이지 이동

컨트롤러에서 사용자 요청을 처리한 다음에는 적절한 뷰로 이동할 수 있어야 한다. 이때 뷰에서 보여줄 데이터를 포함해서 이동해야 하는 경우와 그렇지 않아도 되는 경우가 있다.

데이터를 포함하지 않는 경우 해당 페이지로 바로 리디렉션할 수 있다. 혹은 세션에 데이터를 저장한 경우라면 세션이 유효한 동안 모든 페이지에서 세션 정보를 참조할 수 있어 리디렉션을 통해서도 데이터 참조가 가능하다.

JSP, 서블릿 모두 response.sendRedirect() 를 사용할 수 있다.

response.sendRedirect("main.jsp");

데이터를 포함하는 경우 request 속성으로 데이터를 넣은 후 원하는 페이지로 포워딩해야 한다. 데이터 활용 목적에 따라 session이나 application을 사용할 수도 있으며 여러 데이터를 포함하는 것도 가능하다.

데이터를 포함하여 포워딩할 경우 아래와 같다

  • JSP
<%
   request.setAttribute("key", value);
   pageContext.forward("userInfo.jsp");
%>
  • Servlet
doGet(...) {
	...
	request.setAttribute("key", value);
    RequestDispatcher dispatcher = request.getRequestDispatcher("userInfo.jsp");
    dispatcher.forward(request, response);
}
  • Spring
    인자로 전달된 모델 객체에 원하는 데이터를 저장하고 뷰 페이지 이름을 리턴한다.
    리턴되는 문자열 값은 뷰 페이지의 이름이며 확장자는 생략한다.
@GetMapping("userinfo")
public String getMemberInfo(int id, Model model) {
	...
    model.addAttribute("key", value);
    return "userInfo";
}
profile
공부하고 기록하고 복습하고

0개의 댓글