2

フォームがある index.html があります。送信を押すと、そのフォームはサーブレットに POST リクエストを行います。このサーブレットは、いくつかの重い処理を行ってから jsp に転送します。私が欲しいのは、送信を押してローダーを表示することです。私はjavascript(preventDefaultなど)を介してこれを行う方法を知っています。私はそれをしたくありません。これはサーブレットで実現できますか? ローダーのみを含む「ページ」を出力してから、重い処理を行い、最終的にjspに転送しようとしていました。それはうまくいきませんでした。何らかの理由で、index.html から離れることさえなく、サーブレットが終了するまでそこにとどまり、最終的に jsp に転送されます。

ご協力ありがとうございました

4

2 に答える 2

2

これは、AJAX を使用してのみ実現できます。

したがって、送信ボタンをクリックすると、Loading イメージが表示され、サーブレットに対して ajax 呼び出しが行われます。そのため、サーブレットの処理中に、読み込みイメージが表示されます。ajax 呼び出しから戻ると、JavaScript を使用して必要なアクションを実行できます (ユーザーを別のページに転送する、エラーを表示するなど)。

JQuery Ajaxを参照することを強くお勧めします(これは、私が今まで使用した中で最も簡単で効果的なスクリプトです)

$.ajax({
    type: 'POST',
    url: '/myServlet',
    data: {
        name: $('#name').val()
    },
    beforeSend:function(){
        // this is where we append a loading image
    },
    success:function(data){
        // successful request; do something with the data            
    },
    error:function(){
        // failed request; give feedback to user
    }
});
于 2013-04-30T13:36:39.883 に答える
0

/ nedded to showページを返すmake a toでAjax.. を使用できます。返されたものを使用して、または内の何かを置き換えることができます。form submitajax callservletthingshtmlloadingpageformcurrent page

ajax form submissionは通常どおり続行します...他の人がServlet終了するprocessingと、にリダイレクトされresult pageます。

于 2013-04-30T13:26:30.800 に答える