Web MVC 방식 2 - POST, sendRedirect(),PRG패턴, 와이어프레임

휘Bin·2023년 5월 1일
0
post-thumbnail

POST 방식 처리 요청

Controller 생성

서블릿은 Post()라는 메소드를 오버라이드해서 POST방식으로 들어오는 요청(Request)을 처리할 수 있어 기존 Controller에 Post()를 추가하거나 새로운 Controller와 같이 새로운 서블릿을 생성해서 Post()를 작성할 수 있다.

  • urlPatterns 속성값이 '/calc/makeResult'로 지정되어 있기에 브라우저에서 'form' 태그의 submit 경로를 수정해야 한다.
  • doPost() 오버라이드 => 브라우저에서 POST방식으로 호출하는 경우에만 호출이 가능하게 된다
  • req.getParameter()라는 메소드를 이용해서 쿼리 스트링으로 전달되는 num1, num2 파라미터를 처리하고 있고, 이 때 숫자가 아닌 문자열로 처리하고 있다.
  • JSP에서는 ${param.num1}과 같이 단순하게 사용하지만, 서블릿에서는 HttpServletRequest라는 API를 이용해야한다.

sendRedirect()

POST 방식의 처리는 다른 페이지를 보도록 브라우저 화면을 이동시키는 것이 좋다.
이 때 사용하는 메소드가 'HttpServletResponse'의 'sendRedicrect()'이다.

브라우저는 응답(Response)헤더에 'Location'이 포함되면 브라우저의 주소창을 변경하고 해당 주소를 호출하게 된다.(GET 방식으로 호출)

PRG 패턴(Post-Redirect-GET)

웹 MVC 구조에서 가장 흔하게 사용하는 패턴 중에 하나가 POST 방식과 Redirect를 결합해서 사용하는 PRG 패턴이다.

PRG 패턴의 흐름

  1. 컨트롤러에 원하는 작업을 POST 방식으로 처리 요청
  2. POST방식을 컨트롤러에서 처리하고 브라우저는 다른 경로로 이동(GET)하라고 응답(Redirect)
  3. 브라우저 GET 방식으로 이동

  • PRG 패턴의 대표적인 예는 게시판 => PRG패턴을 게시판으로 예를 들면,
  1. 사용자가 새로운 글을 작성하고 POST 방식으로 전송
  2. 서버에서 새로운 글을 처리한 후 브라우저의 주소를 목록 화면 경로로 이동하도록 응답(Redirect)
  3. 브라우저가 목록 화면을 보여주고 사용자는 결과 확인
  • PRG 패턴은 POST 방식 처리 후 바로 다른 주소로 브라우저가 이동하기 때문에 반복적으로 POST 호출이 되는 상황을 막을 수 있다.

와이어프레임

여러 페이지를 만들 때 이동이 많기 때문에, 우선 설계를 통해 어떤 흐름으로 동작하게 될지 미리 구성해 보는데, 이를 위해서 작성하는 것이 '와이어 프레임'.

와이어프레임은 화면과 화면 사이에 어떤 이들이 처리되어야 하는지 쉽게 구분하고 분류할 수 있다는 장점을 가지고 있음.

와이어 프레임 작성 위해 목업 도구를 사용하기도 한다. 대표적으로 'Balsamiq Wireframes''Pencil Mockup' 등이 있다.
물론 목업 툴 말고, 간단한 그림이나 필기, PPT만으로도 충분히 만들 수 있다.

profile
One-step, one-step, steadily growing developer

0개의 댓글