티스토리 뷰

반응형
출처 카페 > 남궁성의 자바(java)초보.. | jspjsp
원문 http://cafe.naver.com/javachobostudy/72265

Servlet 에서 Forward 객체로 View 페이지로 값을 넘길때 새로고침 문제.

 

저는 게시판에서 글 입력, 수정, 삭제 후 새로고침시에 계속해서 insert나 delete, update되는 문제가 있었습니다.

 

 

 

 

 

 

 

문제는 바로 Servlet에서 Forward 객체를 이용하였기 때문인데요.

 

 

request 객체에 담아서 view로 보내다보니 새로고침시에 최초 이벤트 부분으로 다시 돌아가서 재입력 되거나 재갱신되는

 

 

문제가 생했던 겁니다.

 

 

servlet -> service -> dao 로 나눠놨었습니다.

 

여기서 dao까지 가서 db 부분 처리 후 servlet에서 다시 view 파일로 전송 후

 

새로고침 하게되면 이전에 했던 작업 내용이 그대로 움직이는 일이 발생되었습니다.

 

암만 플래그 값을 준다해도 바뀌지 않기 때문에 방법이 없는거 같았습니다.

 

(검색도요..) 물론 회원님들께서 ajax를 이용하여 하면 된다고 하셧는데..

 

 이 부분은 제가 알아보는 시간도 오래 걸릴것 같았고, 또한 소스를 거진다 수정하는 일도 발생될 것 같았습니다.

 

따라서 그냥 서블릿으로 해서 바꿨습니다. (동생이 말해준 방법 참조해서 해결하게되었습니다.)

 

편법일수도 있습니다...ㅋ

 

dao를 거쳐서 다시 servlet으로 갈때 key값을 setAttribute 해줍니다.

 

그리고 view 페이지를 보낼때 바로 View 페이지로 보내지말고

 

다른 페이지로 보낸뒤 onload할때 자바스크립트를 이용하여, 입력해준 key값으로

 

 servlet을 다시 타게 했더니

 

새로고침 문제를 풀 수 있었습니다.

 

만약에 Sevlet 에서 Foward  객체를 쓰시다가 저와 같은 문제가 발생되셨다면,

 

위와 같이 해결 하셨으면 좋겠습니다.

 

(찾아봐도 내용이 2009년 이나 SendRedirect 이런거 대부분이라 이 방법이 나쁘지 않을 거라 생각 됩니다.)

다른 방법이 있으시다면 공유좀 해주세요.

수고하세요~


반응형