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); //
//
}
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Fortinet FortiWeb Web Application Firewall Policy BypassFrom: Geffrey Velasquez Date: Wed, 2 May 2012 20:33:23 -0500...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.