当Servlet需要很长时间来响应时,如何避免重复提交表单

时间:2017-09-04 07:39:26

标签: servlets form-submit jave

我在java Servlet中遇到了问题。假设我有两个Servlet和两个页面(jsp)。在index.jsp客户端输入您的手机号码并将表单提交给sendSMS.do。 sendSMS.do必须发送短信到手机号码。

servlet 1:index.do

第1页:index.jsp

servlet 2:sendSMS.do

第2页:success.jsp

index.jsp中的

<form action="/sendSMS.do" method="post">
    <input type="text" name="mobile">
    <input type="submit" value="sendSMS">
</form>
sendSMS.do中的

@WebServlet("/sendSMS.do")
public class RegisterController extends HttpServlet {
    @Override
    protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
      String mobileNUmber=req.getParameter("mobile");
      SendMessage sendMSG= new SendMessage();
      //if there are network problems,sendSMS method my be take several minutes for return false
      sendMSG.sendSMS(mobileNumber);
      resp.sendRedirect("/success.jsp");
    }
}

所以如果没有任何问题,sendSMS方法返回true,几分钟后返回false。如果index.jsp页面中的客户端多次点击提交按钮,服务器中有几个相同的请求。

那么如何检测同一个请求,是否有针对此问题的最佳实践?

我读过Solving the Double Submission Issue但是我想要最好的做法,当Servlet需要很长时间才能做出回应。

感谢您的建议。

0 个答案:

没有答案