forward 에 대해 문의드립니다.
- 작성자 :
- 박*원
- 작성일 :
- 2011-11-03 18:27:52
- 조회수 :
- 1,803
- 구분 :
- 실행환경
- 진행상태 :
- 완료
Q
이전 답변은 정말 감사합니다.
프로젝트를 진행하다 보니 또한가지 궁금증이 생겨서 문의드립니다.
프레임워크에 보면 forward: 페이지 라는게 있습니다.
인설트나 업데이트 또는 삭제요청시 요청 처리후 다음에 보여질 페이지로
포워딩 하는 명령어로 보입니다.
그런데 여기서 문제점이 있는 것 같아 문의 드립니다.
데이터를 인설트 하고 포워딩을 시켜서 다른 페이지로 넘어갔을 경우
'새로고침' 버튼을 누르게 되면 또다시 데이터가 인설트 되는 문제가 있습니다.
프레임 워크 자체에서 이런걸 방지하는 무언가가 있는 건지요?
아님 따로 해야 하는건지요?
프로젝트를 진행하다 보니 또한가지 궁금증이 생겨서 문의드립니다.
프레임워크에 보면 forward: 페이지 라는게 있습니다.
인설트나 업데이트 또는 삭제요청시 요청 처리후 다음에 보여질 페이지로
포워딩 하는 명령어로 보입니다.
그런데 여기서 문제점이 있는 것 같아 문의 드립니다.
데이터를 인설트 하고 포워딩을 시켜서 다른 페이지로 넘어갔을 경우
'새로고침' 버튼을 누르게 되면 또다시 데이터가 인설트 되는 문제가 있습니다.
프레임 워크 자체에서 이런걸 방지하는 무언가가 있는 건지요?
아님 따로 해야 하는건지요?
A
안녕하세요.. 박종원님..
원칙적으로 forward가 된 경우.. 새로고침을 하게 되면.. 브라우져가 새로운 요청을 던질 것이냐의 질문을 하게 됩니다..
이 때 "예"를 선택하게되면.. 시스템 상으로는 별도의 요청으로 간주하게 되어 있습니다.
따라서.. 이 경우 중복 처리가 되게 되어 있습니다.
이 부분은 프레임워크 영역으로 처리하시는 것이 아니라.. 별도의 로직을 개별 controller에 구현하셔야 하는데.. 구체적인 방법은 검색엔진에서 "double submit 방지" 등의 검색어를 통해 적용하시면 되실 것 같습니다.
또는 forward: 외에 redirect: 를 사용하실 수 있는데..
이 경우는 client가 redirect: 다음 url을 다시 던지는 방식이라.. 브라우저 주소가 새로운 주소로 변경되어 있습니다.
한가지 문제점은.. 새로운 요청이기 때문에.. 기존 파라미터 정보가 유지되지 않는다는 것인데..
redirect: 주소 뒤에 필요한 파라미터를 get 방식으로 추가해 주시면 됩니다.
그럼.. 즐거운 하루되십시오.
감사합니다.
원칙적으로 forward가 된 경우.. 새로고침을 하게 되면.. 브라우져가 새로운 요청을 던질 것이냐의 질문을 하게 됩니다..
이 때 "예"를 선택하게되면.. 시스템 상으로는 별도의 요청으로 간주하게 되어 있습니다.
따라서.. 이 경우 중복 처리가 되게 되어 있습니다.
이 부분은 프레임워크 영역으로 처리하시는 것이 아니라.. 별도의 로직을 개별 controller에 구현하셔야 하는데.. 구체적인 방법은 검색엔진에서 "double submit 방지" 등의 검색어를 통해 적용하시면 되실 것 같습니다.
또는 forward: 외에 redirect: 를 사용하실 수 있는데..
이 경우는 client가 redirect: 다음 url을 다시 던지는 방식이라.. 브라우저 주소가 새로운 주소로 변경되어 있습니다.
한가지 문제점은.. 새로운 요청이기 때문에.. 기존 파라미터 정보가 유지되지 않는다는 것인데..
redirect: 주소 뒤에 필요한 파라미터를 get 방식으로 추가해 주시면 됩니다.
그럼.. 즐거운 하루되십시오.
감사합니다.