0

JSPとサーブレットを使用してWebアプリケーションを開発しています。

私のJSPには、次のようないくつかの形式があります。

<form method="post" action="quotation">
<input type="submit" name="addStep" value="Add a Step" class="noLabel" />
</form>

フォームの「name」属性を使用して、サーブレットのdoPostメソッドでどのコードを呼び出す必要があるかを認識しています。

問題は次のとおりです。

  • jspをWebサーバーにロードします
  • フォームの[ステップを追加]ボタンをクリックします=>正しいコードが適用されます
  • アドレスバーの「Enter」キーを押してWebページをリロードすると、同じコードが再度適用されます。これは、HttpリクエストでaddStep属性がリセットされていないためです。

この動作が発生しないようにするために、リクエストの属性(ここではaddStep)をリセットする方法を知っていますか?

doPostメソッドは次のとおりです。

protected void doPost(HttpServletRequest request,
        HttpServletResponse response) throws ServletException, IOException {

    request.setAttribute(DATABASE_ATT, databaseData);
    this.getServletContext().getRequestDispatcher(VIEW)
            .forward(request, response);

}
4

1 に答える 1

0

投稿後、フォームを表示しているページに(を使用して)リダイレクトHttpServletResponse.sendRedirect()します。これにより、更新すると、フォームを再送信するのではなく、フォームを含むページのみが再読み込みされます。

http://en.wikipedia.org/wiki/Post/Redirect/Getを参照してください

于 2013-02-03T18:46:46.320 に答える