스프링MVC Flash Attribute(RedirectAttributes, FlashMap) - 스프링실무교육학원
MVC기반의 일반 웹어플리케이션에서 서버측으로 POST형태로 데이터를 전송하게되면 스프링 컨트롤로에서는 사용자 요청에서 데이터를 꺼내 데이터베이스에 저장하는 등의 일을 한다.
그런다음 사용자에게 성공한 상태정보를 보여주기위해 JSP 페이지등을 포워딩하게 된다. 이 경우 사용자가 F5키 등을 눌러 POST 방식의 요청을 여러번 보내게 되면 문제가 발생할 수도 있다.
이러한 문제점을 보완하기 위해 Spring MVC3.1 이상에서 RedirectAttributes, FlashMap을 이용하여 POST/Redirect/GET 패턴을 보완하기 위한 방법이 나왔는데 이 패턴을 이용하게되면 F5 키등을 눌러 리로드(multiple form submit)하는 경우 POST로 서버측으로 서브밋을 하는 것이 아니라 GET방식 형태로 뜬 JSP만 다시 리로드되게 할 수 있다.
물론 이때 RedirectAttributes를 사용하여 데이터등을 저장한다면 Redirect된 후 즉시 사라지게 되고 사용자가 F5등을 눌러 리로드 하더라도 다시 서버로 다시 submit되어 저장되지 않게할 수 있다.
FlashMap, RedirectAttributes등을 이용하면 리다이렉트시 값의 전달을 쿼리스트링을 이용한 파라미터등으로 하지않고 임시 플래시메모리를 이용하여 보이지 않게 저장하고, 사용 후 삭제되도록 하는 것이다. 즉 리다이렉트시 데이터 숨겨 넘기는 방법을 제공하는 것이다.
FlashMap은 flash attribute등을 저장 할 수 있고, FlashMapManager를 이용하여 FlashMap 인스턴스등을 저장, 삭제등을 할 수 있다.
Spring MVC에서 FlashAttribute를 사용하기 위해서는 스프링3.1 이상에서만 가능하고
<mvc:annotation-driven /> 태그를 설정파일에 기술해야 한다.
첨부파일 참고하세요.
감사합니다.
댓글 없음:
댓글 쓰기