• 締切済み

jsp/サーブレット

jsp サーブレットを勉強しています。 jspに入力された値を サーブレットに投げます。 サーブレットからjavaクラスに値を投げて javaクラスで値が正しいかどうかを判断します。 その結果をサーブレットに投げて、 サーブレットからjspに投げて jspで結果を表示する。というのは理解できました。 しかし私が行いたいのは、 クライアントがjspにアクセスしたときに、 javaクラスにある値をjspに表示させたいというものです。 この場合はサーブレットに何も投げるものがないのですが、 jsp→サーブレット→javaクラス→サーブレット→jsp このようにサーブレットを使って表示させるには、 どのようなプログラムを書いたらいいのでしょうか。 わかりにくい説明で大変申し訳ないですが、 具体的なプログラムを教えていただけるとありがたいです。 また、参考になりそうなURLがありましたら教えてください。 よろしくお願いします。

みんなの回答

回答No.3

AJAXでやれば簡単です。現場では日常的にこの手法を使ってます。 #例えば1番目のコンボの選択で2番目のコンボに表示するリストを #DBを検索して決めるような場合 生の Javascript では手間が大きいので、 JQuery など、AJAX が手軽に使える Javascript ライブラリを 使うことをお勧めします。

noname#177743
noname#177743
回答No.2

JSPからサーブレットに飛んで処理を実行してその結果をJSPに戻す、ということでしょうか。それはそもそもの設計がよくないように思いますが……。 どうしてもというのであれば、JSPの中でサーブレットにHttpURLConnectionでアクセスする処理を書いて実行することになりますね。ただし余計なアクセスが増えて処理速度も遅くなるでしょう。 個人的には、サーブレットの処理をサーブレット外からも利用するということは、その処理をサーブレットから切り離すべきだろうと思います。サーブレットは、HTTPによるアクセスを処理するためのものですから、それ以外の形でのアクセスを前提に設計すべきではないでしょう。 例えば、実際に必要な処理部分は普通のJavaクラスに切り離し、サーブレットからその処理を呼び出すようにする。JSPでも、JSP内からそのJavaクラスの処理を呼び出す。このようにすれば、わざわざJSPからサーブレットを呼ぶ必要はなくなります。

noname#177743
noname#177743
回答No.1

サーブレット内から、自分が作ったJavaクラスを利用するということでしょうか。ただ利用するだけなら、new Hoge();でインスタンスを作って使えばいいだけですが……そういうことではない? あるいは、Javaクラスのインスタンスを常時サーバー側に保持しておいて利用したい、ということでしょうか。そういう場合であれば、sessionやapplication(←JSPの暗黙オブジェクト)にnew Hogeしたインスタンスを保管しておき、それを常に利用するようにすればよいと思います。sessionやapplicationの使い方はわかりますか?

myra1216
質問者

補足

回答ありがとうございます。 jspからサーブレットに処理を投げる時はGETやPOSTなどを使いますよね? でも今回行いたいのは、JSPにアクセスした時にサーブレットに飛んで、そこからJavaのメソッドを実行し、実行してでてきた値をサーブレットに戻して、サーブレットから最初のJSPに渡して、表示させたいのです。 JSPにアクセスした時にサーブレットに飛ぶ方法ってありますかね?

関連するQ&A

専門家に質問してみよう