我在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需要很长时间才能做出回应。
感谢您的建议。