- ベストアンサー
最初の画面を開いたときに・・・
yahooやMSNなど最初の画面を開いたとき、 最新のニュースが表示されますよね? あれは、画面を開設するときにDBに接続して読み込んでいるのだと自分では思っています。 StrtusでWEBアプリを制作しているのですが、 yahooやMSNのように最初の画面を開いた時点で DBを読み込むにはどうしたらイイでしょうか? 画面を開いた時点で読み込む方法がわかりません。 なんらかのボタンを押した後などに読み込ませるという方法だったら わかるのですが・・・・・。 画面を開いた時点でいきなりActionを読み込ませる、ということになるのでしょうか? 初心者ですのでおかしなことを書いてるようでした申し訳ありません。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
>知識不足で申し訳ないのですが・・・・、 >http://XXXXXXXX/index.jsp >と直接URLを入力して、画面を表示させた時 >>*.doのアクションサーブレットを叩いて >↑が起きているわけですか?? いいえ、おきていません。 jspはサーバ内でサーブレット(Strutsとは違う)としてコンパイル・実行されますので、 strutsは関係ありません。 jspを呼び出されているのなら、<%~%> の中でDBアクセスをして、<%= %>で直接表示してしまってはいかがですか? 「strutsを使う」場合は、 http://server/login.do などのように、アクションサーブレットを起動パスにします。 JSPを指定しません。 アクションサーブレットの実行が終了した時点で、struts-config.xmlの forward指定されたアクションマッピング先にdispatch.fowardされます。
その他の回答 (2)
>最新のニュースが表示されますよね? >あれは、画面を開設するときにDBに接続して読み込んでいるのだと自分では思っています。 どうでしょうか。おそらく一定時間ごとに表示内容をキャッシュするプログラムが動いていて、単にその内容を読み込んでいるように思うのですが。 >yahooやMSNのように最初の画面を開いた時点で >DBを読み込むにはどうしたらイイでしょうか? もし「Strutsで、ただページを開いた時点で何かを処理させるにはどうするか」ということでしたら、Strutsは基本的にアクションされた処理を統合的にコントロールするものなので、(方法はあるのかも知れませんが)自分なら直接ページに処理を埋め込んで書いてしまいますね。 例えば、データベースにアクセスして結果を返すサーブレットを用意し、JavaScriptで非同期通信してそれをページにはめ込む、とかどうでしょう? あるいは、データベースにアクセスして結果をファイルにキャッシュするプログラムを用意しておき、AJAXでそのファイルを読み込ませるとか。自分なら、そう処理すると思います。スクリプトをページに埋め込むだけならStrutsうんぬんは関係ないですし。
お礼
スクリプトで書くって考えは頭の片隅にあって <BODY onload="">で書こうかな、と思っていました。 が、なかなかうまくいかず挫折してました。 Ajaxはまだ使用したことがないので、学んでみます。
- PED02744
- ベストアンサー率40% (157/390)
Strutsなら、*.doのアクションサーブレットを叩いて初期画面を 表示しているはずなので、その初期画面の表示内容がDBから読み取った内容である ・・・ってだけの事ではないのでしょうか?(^-^;
お礼
>*.doのアクションサーブレットを叩いて初期画面を表示 知識不足で申し訳ないのですが・・・・、 http://XXXXXXXX/index.jsp と直接URLを入力して、画面を表示させた時 >*.doのアクションサーブレットを叩いて ↑が起きているわけですか?? それはstruts-config.xmlに書いてあるものなのでしょうか??
お礼
知識の乏しい私には大変わかりやすい回答でした。 どうもありがとうございます。 JSPにこだわる理由はないので .doを使用することにしました。