2차 제출 방지(중복 제출)
@ 사용자가 반복 요청 servlet을 되돌려주거나 새로 고칠 때 servlet은token이 일치하는지 판단합니다. 요청자가 새로운token을 생성하지 않았기 때문에 servlet에서 새로운token과 일치하지 않습니다. 중복 제출이라고 생각됩니다.
@ 사용자가 요청 페이지를 새로 고침하면 요청 페이지에서 Token이 생성됩니다. 이 때 새로운token은 servlet에서 생성한token을 덮어씁니다. 이때token은 일치하며 새로운 요청이라고 생각합니다.
요청된 jsp 페이지 코드:
@
<body>
<%
long token=System.currentTimeMillis(); // token
session.setAttribute("token",token);
%>
<form action="isRepeat" method="post">
<input type="text" name="username"/>
<input type="text" name="password"/>
<input type="hidden" value="<%=token %>" name="token"/> <!-- hidden -->
<input type="submit" value=" "/>
</form>
</body>
서브렛 페이지 코드:@
protected void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
req.setCharacterEncoding("utf-8");
resp.setCharacterEncoding("utf-8");
resp.setContentType("text/html,charset=utf-8");
String username=req.getParameter("username");
String password=req.getParameter("password");
long token=Long.parseLong(req.getParameter("token"));
long tokenInSession=Long.parseLong(req.getSession().getAttribute("token")+"");
if(token==tokenInSession){
resp.getWriter().println("ok ");
// , token
req.getSession().setAttribute("token", System.currentTimeMillis());
}
else
{
resp.getWriter().println("do not repeat submit");
}
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Sigfox Coverage Map을 Google Maps API로 표시Sigfox Coverage Map은 타일 레이어이므로 Google Maps API에 쉽게 삽입할 수 있습니다. Sigfox사가 지도 어플리케이션이나 웹사이트에 임베드하는 것을 목적으로 API 제공하고 있는 커버리지...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.