2011-03-05 9 views
0

に失敗した場合、私は以下のコード使用して、ページからいくつかのデータをつかんでいます:再直接検証はJSP

int clientId = Integer.parseInt(request.getParameter("clientId")); 

を私はのtry/catchでそれを取り巻く、その後response.sendRedirect("page.jsp");を使用してcatchブロックにリダイレクトするが、試してみましたページはリダイレクトされません。スクリプト全体を終了したいと思うように見えます(最初の変数が有効でないため、エラーが多く発生します)。私はここに何か基本的なものを欠いています

+0

btw、このコードはJSPかServletにありますか? .JSPページの – Bozho

+0

その帰り;そのトリックをしたようだ。 – greenimpala

答えて

1

あなたはおそらく(私はあなたのコードが表示されていないが)returnの文が欠落しています現在のメソッドのフローに影響を与え、それが続行されます。

1

"clientId"の存在に応じて、JSPページのすべてのスクリプトレットロジックが条件付きであることを確認する必要があるため、キャッチブロックはおそらくJSPページの一番下に移動する必要があります。 JSPページはサーブレットにコンパイルされているので、コードをコンパイルできることを確認する必要があります。一般に、このロジックを別のクラス(コントローラの種類のクラスなど)に入れ、JSPページのスクリプトレットコードの量を最小限にすることを強くお勧めします。そうでなければ維持するのは難しい。

これで問題が解決しない場合、plsはJSPコード全体を投稿して、アドバイスする場所を特定できるようにします。しませんあなたは、単に呼び出す場合

response.sendRedirect(..); 
return; 

sendRedirect(..)これはLocation HTTPヘッダ、およびHTTPステータスを設定しますが、:

2

サーバーログを読み取ります。私のセントは、IllegalStateExceptionでうんざりしています。詳細については、this answerも参照してください。

JSPをページコントローラとして悪用しないでください。 JSPはそれ自体が応答の一部であるため、JSPの内部からこれを変更することはできません(OK、ハック/回避策がありますが、ハック/回避策は使用したくありません)。リクエスト/レスポンスを制御するには、サーブレットを使用する必要があります。サーブレットを作成し、特定のURLをリッスンさせ、そのURLにフォームを送信させ、サーブレットにJSP内のすべてのJavaコードを実行させ、最後に応答先を制御させます。

Hello Worldの例はServlets wiki pageです。基本的な検証についても説明します。

関連する問題