Struts에서 양식 중복 제출 문제 해결

1509 단어 Webstruts브라우저
Struts에서 양식 중복 제출 문제 해결
 
실제 웹 브라우저에서 사용자가 폼을 제출한 후 서버 측의 응답이 느리다는 문제 때문에 사용자가 응답을 받지 못할 때 브라우저의 후퇴를 눌러 다시 폼을 제출할 수 있다. 이렇게 하면 사용자가 서버에 두 번의 요청을 제출하여 사용자의 체험도를 낮추고 서버에 부담을 줄 수 있다.WEB가 사용자의 중복 제출 작업을 식별하고 사용자에게 직관적인 알림을 제공하기 위해 Struts에서는 동기화 토큰(Token) 메커니즘을 사용하여 이 문제를 해결했다.
 
동기화 토큰(Token) 메커니즘의 기본 원리는 사용자가 제출한 후에 이 사용자에게 유일한 표지가 Session 역할 영역에 존재하게 된다는 것이다. 사용자가 뒤로 물러나서 반복적으로 제출한 후에 백그라운드 업무는 역할 영역에 있는 토큰이 이전 토큰과 같은지 여부를 먼저 판단하고 같으면 업무 조작을 계속하며 같지 않으면 오류 정보가 고객에게 응답한다.
 
코드 구현 (예로 등록됨):
 
        
public class RegPetAction extends DispatchAction {

       // 
       public ActionForward regPetPre(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response)
			throws Exception {
		this.saveToken(request);  // 
		return mapping.findForward("reg");
       }
	
       // 
       public ActionForward regPet(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response)
			throws Exception {
		
		// 
		if(! this.isTokenValid(request)){
			ActionErrors errors = new ActionErrors();
			errors.add("can_not_reSubmit",new ActionError("can_not_reSubmit"));
			this.saveErrors(request, errors);
			return mapping.findForward("reg");
		}
		this.resetToken(request); // 
		
		// 
	}
}

 

좋은 웹페이지 즐겨찾기