Spring

스프링 - Redirect 처리 관련 정보

마루설아 2025. 6. 3. 14:33

웹 브라우저와 컨트롤러의 데이터 처리방식은 다음과 같다.

 

 

 

내가 구현한 컨트롤러의 리다이렉트 호출 부분 소스를 참조해보자.

...

@PostMapping("/register")
public String register(BoardVO board, RedirectAttributes rttr) {
    log.info("register : " + board);

    service.register(board);

    rttr.addFlashAttribute("result", board.getBno());

    return "redirect:/board/list";
}

...

 

컨트롤러의 register()에서 "redirect:/board/list"를 전송하고

브라우저는 /board/list로 이동하게 되는 방식이다.

 

이처럼 리다이렉트를 사용하지 않는다면

사용자는 '새로고침'을 통해 동일한 내용을 계속 서버에 등록할 수 있다.

 

 

요즘 브라우저는 이런 경고창을 보여주기는 하지만 근본적으로 차단하지는 않는다고 한다.

 

 

그리고 위 소스코드에 RedirectAttributes 타입의 객체와 addFlashAttribute() 함수가 있다.

이는 일회성 데이터를 전달할 수 있어 단 한번만 사용 할 수 있도록 지정할 수 있다.

 

이 RedirectAttributes를 이용하여 모달창을 구현할 수 있는 것이다. 

(이후 모달창 소스는 깃허브 참조)