0

Jettyサーバーを使用して、Eclipseプラグインを使用してローカルホストで実行しています。

私のURLリクエストはフォームにあります

http://localhost:8080/TestServer/Project/?Action=5

このメソッドを呼び出すdoGetと、サーブレットでメソッドが2回呼び出されます。私はメソッドもdoPostメソッドも実装していませんService。私はそれを使用していますが、単一のHTTPリクエストに対してdoGet、サーブレットのメソッドを2回呼び出しています。

1つのURLが2回実行されるのはなぜですか?

protected void doGet(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException {
    Print("In doGet method");
}
4

2 に答える 2

1

ブラウザで送信されたHTTPリクエストを追跡することをお勧めします(Chromeを使用している場合は、開発者ツールの[ネットワーク]タブを使用してください)。

私の場合も同じ問題があり、HTTPリクエストを追跡することで理由を見つけました。おそらくあなたは私と同じケースを持っています。Chrome JSONView拡張機能を使用し、JSONコンテンツを返すURLにアクセスすると、2回のHTTPリクエストが送信されました(ブラウザURL + AJAXリクエストを送信するJSONView(content.js))

于 2013-05-07T08:32:09.853 に答える
0

Raghul、doGetが2回呼び出された場合、考えられる結論は1つだけです。2つのリクエストが来ています。

これが私の提案です:

  1. doGetを実装し、HttpServletRequestオブジェクトを調べて、2つの呼び出しでWebコンテナによって提供されたオブジェクトに違いがあるかどうかを確認します。

  2. tcpmonを使用して、有線で送信されるデータを検査します。インストールするものはありません。オンラインで直接実行できます。そこにヘッダーが表示され、 User-Agentフィールドに特に注意を払う必要があります。たぶん、それは両方の呼び出しで同じではないでしょう。まったく同じ場合は、ブラウザが唯一の原因であるため、別のブラウザで試すか、再インストールすることをお勧めします。

于 2013-05-07T15:13:05.573 に答える