を殺した後、私は次のように持っていた:呼び出すサーブレットjavascript関数は、セッション
<a href="/servlet/MyServlet" onclick="javascript:CreatePageView();"> Link 1 </a>
が、私はすべての時間を実行されませんでしたし、レースの状況を作成していたJavaScript関数のCreatePageView()ことに気づきました。ときどきjavascriptが実行され、リダイレクトが最初に起こった時もあります。
私はイベントの順序を制御したいと思って、私のjavascript関数内でサーブレットを呼び出すと思っていました。
function CreatePageView()
{
//Execute javascript function here
//Invoke servlet here
document.forms[0].action = "/servlet/MyServlet";
document.forms[0].submit();
}
サーブレットを呼び出すと、セッションが破壊され、ログインページにリダイレクトされます。なぜこれが起こっているのか誰も説明できますか?あるいは、セッションを強制終了せずにサーブレットを呼び出す別の方法を提案してください。前もって感謝します。
こんにちは、感謝して物事を明確化してくれてありがとうございます。最後の3行を除いて、コード例のすべてを理解しています。 http:// example.comをサーブレットのURLに置き換えることはできますか? – Keefu
関数内で非同期に呼び出されたのと同じURLです。 'CreatePageView()'関数の本文全体を表示していないので、例を示しました。あるいは、あなたの関数で非同期要求をまったく実行していませんか? – BalusC
問題は、私が呼び出すjavascript関数が、Web解析(リンクがクリックされた回数をキャプチャする)に使用されるサードパーティライブラリであるため、非同期要求を出しているかどうかわかりません。競争状況のために、私はそれが非同期要求であると思います。このメソッドをxhr.open()を使って関数を呼び出すために使用することはできますか? – Keefu