0

次のように、サーブレットを使用して小さなテスト Web アプリを作成しました。

index.html --> サーブレット (doPost) --> 結果ページにリダイレクト

インデックス ページは、「送信」ボタンがクリックされたときに doPost を介してサーブレットを呼び出す単純なフォームです。次に、ビジネス メソッドが (フォーム データを使用して) サーブレットで実行された後、結果ページへのリダイレクトが表示されます。

プロジェクトを戦争として tomcat 7 /webapps ディレクトリにエクスポートし、コンテナを起動しました。すべてがうまくいきます!

質問: しかし、フォームを再テストするたびに Tomcat を停止してから起動しなければならないのはなぜですか? つまり、結果ページからフォーム ページ (index.html) に [戻る] をクリックして、Firefox の更新ボタンをクリックすると、新しいフォームに入力できますが、もう一度 [送信] をクリックすると、ビジネス ロジック関数が実行されません。コンテナを再起動しない限り、サーブレットで?

index.html

<html>
<head>
<title>URL Auction Search Page</title>
</head>
<body>
<CENTER>
 <FORM ACTION="/ResultServlet/Results" METHOD=GET>
   <INPUT TYPE=TEXT NAME="st">
   <INPUT TYPE=SUBMIT VALUE=Submit>
  </FORM>
</CENTER>
</body>
</html>

サーブレット

@WebServlet("/Results")
public class Results extends HttpServlet {
    private static final long serialVersionUID = 1L;
       public static String str="";

    private String businessLogic(String q){
        try {
            str = new compute.URL.GetAvailURI( "https://www.registerdomains.com/auctionAPI/Key:a05u3***1F2r6Z&urlSearch="+q);
            /*more boring number crunching */
            return str;
            }
/*
    protected void doGet(HttpServletRequest request, HttpServletResponse response) 
    }
*/
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        Results r = new Results();
        String st = request.getParameter("st");
        response.sendRedirect("results/resultActionURL.html?st="+r.businessLogic(st)");

    }

}
4

0 に答える 0