Java サーブレットに問題があります。2 つのサーブレットと 2 つのページ (jsp) があるとします。index.jsp クライアントで携帯電話番号を入力し、sendSMS.do にフォームを送信します。sendSMS.do は、SMS を携帯電話番号に送信する必要があります。
サーブレット 1: index.do
ページ 1: index.jsp
サーブレット 2:sendSMS.do
page2 : 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 ページで送信ボタンを複数回クリックすると、サーバーに同じ要求がいくつかあります。
この同じリクエストを検出する方法と、この問題のベストプラクティスはありますか?
二重送信の問題の解決を読みましたが、サーブレットの応答に時間がかかる場合のベストプラクティスが必要です。
アドバイスありがとう。