2012-02-27 22 views
0

ユーザIDとユーザパスワードをそれぞれ入力するために、2つのボックスでWebページを作成するとします。そして、送信ボタンをクリックすると、このユーザーが存在するかどうかをバックグラウンドでデータベースでチェックします。データベース内の誰とも一致する場合、ユーザーIDとユーザーパスワードは、そのユーザーのメインページにリダイレクトされると同時に、別のページに転送されます。あるWebページから他のページにデータを渡す方法は?

サーブレットを使用してこのタスクを完了できますか?

request.Dispatcher APIが見つかりましたが、タスクには十分ですか?第二のサーブレットファイル内

String name = "Tom" 
request.setAttribute("name",name); 

RequestDispatcher dis = request.getRequestDispatcher 
("Servlet2"); 

request.Forward(request,response); 

request.getAttribute("name"); 
//this line will display "Tom" 

もう一つ質問をするためには、どのようにいくつかのデータを渡し、他のサーブレットのページにリダイレクトする(ボタンではなく)のリンクをクリックするとどうですか?何か案が?あなたの返事に多くの感謝。

答えて

0

はい、これにはサーブレットを使用できます。ディスパッチャが十分であるかどうかは、あなたの質問から完全にはっきりしない具体的な機能要件に依存します。ただし、標準的なアプローチでは、ログインしたユーザーを要求スコープではなくセッションスコープに格納する方法があります。それ以外の場合、ユーザーは制限されたページにアクセスするたびにログインする必要があります。

また、通常、ログインが成功した後にリダイレクトを送信したいと考えています。このようにして、新しいURLがブラウザのアドレスバーに反映されます。また、この方法でF5キーを押しても驚きは発生しません。 1つのサーブレットから別のサーブレットへの転送は、やはりデザインの匂いである。それを含めて合理的だったが、転送しない。言われたように、代わりにリダイレクトを送信してください。

リンクを使用してフォームを送信する場合は、クリックイベント中にJS form.submit()を実行してください。

<form id="login"> 
    ... 
    <a href="#" onclick="document.getElementById('login').submit(); return false;">login</a> 
</form> 

代わりに、CSSの小さな助けを借りてリンクのように見えるようにボタンをスタイルすることもできます。このようにして、JSが無効になっているクライアント(ハンドヘルドユーザなど)でも動作します。

関連する問題