プログラムの実行時間について困っています

このQ&Aのポイント
  • Servlet&JSPを使ってXMLデータベースにアクセスするプログラムの実行時間に困っています。
  • 投稿や表示、検索などの処理を別々のクラスで行っているため、データベースにアクセスするたびに時間がかかります。
  • 実験段階では実行時間は気にしなかったが、将来的に多くの人が利用する場合には時間がかかる可能性があります。
回答を見る
  • ベストアンサー

プログラムの実行時間

ええと..何から言えばいいのか…。私は今、Servlet&JSPを使って、XMLデータベースにアクセスするプログラムを作っています。 簡単な掲示板(見たいなもの)ですが、少し困っています。 それは、プログラムの実行時間についてです。 例えば、誰かが何かを投稿する度にデータベースにアクセスし、 投稿されたものを表示させる度にデータベースにアクセスし、 また、投稿されたものを検索する度にデータベースにアクセスしています。 なぜなら、それぞれの処理を違うクラスで行っているため、データベースにアクセスした時に取得したCollectionを渡すやりかたを知らないからです。 それに、実験段階ではあまり実行時間を気にする必要はないので取り合えずそのようにしました。 しかし、たくさんの人が使う場合にきっとこんなやり方では時間がかかることが 予想されます。 そこで、どなたか「こうすればいい」という意見のある方いませんか? 実際の処理じゃなくていいんです。「意見」で十分です。私に知識を下さい。 お願いします。

  • Java
  • 回答数1
  • ありがとう数1

質問者が選んだベストアンサー

  • ベストアンサー
noname#30871
noname#30871
回答No.1

 画面が遷移するときにオブジェクトを「サーブレット→JSP」「サーブレット→サーブレット」の間で受け渡したいという話でしょうか。典型的な例はショッピングサイトの買い物籠情報ですね。  それでしたら(Servlet&JSPで開発している以上、ご存知だと思いますが…? 私の解釈がズレてるのかな)HttpSessionというものを利用します。 http://www.atmarkit.co.jp/fjava/special/servlet2_01/jservlet02.html http://www.atmarkit.co.jp/fjava/special/servlet2_01/jservlet03.html  また実行時間という面から見ると、データベースの毎回のアクセスは高速に行いたいですね。データベースのアクセスでもっとも時間を要する処理は、コネクションの確立(java.sql.Connectionオブジェクトの生成)です。アクセスのたびにConnectionオブジェクトを毎回生成していたら、とてもパフォーマンスは得られません。そこで通常は「コネクション・プーリング」という仕掛けを行います。 http://www.atmarkit.co.jp/fjava/javafaq/jdbc/jdbc04.html  プーリングはアプリケーションサーバの機能を利用しますが、その機能を持たないサーブレットエンジン(Tomcatなど)に対しては自前で行う必要があります。私は参考URLの書籍(良書だと思います)に載っているサンプルコードをほとんどそのまま利用しました。

参考URL:
http://books.softbank.co.jp/bm_detail.asp?sku=4797314311
myrimyri
質問者

お礼

どうもありがとうございました。 URLも、本も調べさせて頂きました。

関連するQ&A

  • Tomcatでプログラムが動きません

    開発環境: Windows Vista SP2 Home java 2 SDK 1.6.0_24 Tomcat 6.0 です。 現在javaのservletとJSPをtomcatで勉強している者です。 http://journal.mycom.co.jp/special/2007/struts2/menu.html http://codezine.jp/article/detail/2296 を参考にしてTomcatを使い自分で作成したservletやJSPを動作させようとしたのですが 404エラー(存在しないファイル)が排出されるだけで実行できません。 上記のページが提供しているプログラムやweb.xml及びservlet.xml(javaroad.xml)を 配備しましたが404エラーが排出されるだけで動作しません。(編集するたびにTomcatを再起動させています) http://localhost:8080/のトップページは表示されますのでtomcatは動作していると思いますが、残念ながらどこが間違っているのか検討がつきません。 Tomcat Webアプリケーションマネージャで表示はされ、起動しようとするとアプリケーションが起動できませんと表示されます どのようにすれば宜しいのでしょうか、どうかご教授願います。

  • Tomcatでプログラムが動作しません。

    Apache tomcatの事なのでオープンソースかこちらにご相談させていただこうか悩みましたがこちらにさせていただきました。 開発環境: Windows XP SP3 Professional java 2 SDK 1.5.0_16 Jakarta Tomcat 5.5.26 です。 現在javaのservletとJSPをtomcatで勉強している者です。 http://www.javaroad.jp/opensource/index.html#tomcat http://www.thinkit.co.jp/cert/article/0708/2/6/2.htm http://www.javadrive.jp/servlet/index.html などを参考にしてTomcatを使い自分で作成したservletやJSPを動作させようとしたのですが 404エラー(存在しないファイル)が排出されるだけで実行できません。 試しに上記のページが提供しているプログラムやweb.xml及びservlet.xml(javaroad.xml)を 配備しましたが404エラーが排出されるだけで動作しません。(編集するたびにTomcatを再起動させています) http://localhost:8080/のトップページとROOTフォルダに上記のサイトのJSPを配備したものは 表示されますのでtomcatは動作していると思いますが、残念ながらどこが間違っているのか検討がつきません。 似たような事例に http://questionbox.jp.msn.com/qa1321207.html?StatusCheck=ON という物を見つけました。 同じように「JSP Examples」と「Servlet Examples」は404エラーが排出されます。 どのようにすれば宜しいのでしょうか、どうかご教授願います。

    • ベストアンサー
    • Java
  • cronの実行時間帯を。。。

    超初心者ですが宜しくお願い致します。 今、クリスタルレポートというツール(Accessみたいなものです)を使って、以下のようなことをしたいと考えております。 1.Cronに設定されてある、例えばバックアップ実行のコマンドが開始された時間をデータベース(mysql)に入れる。 2.データベースからその情報をクリスタルレポートで引っ張ってきてcronの実行時間をレポート化。 で、結局言いたいのはcronの開始時間をレポート化したいということになんです・・・ クリスタルレポートとmysqlの接続まではしたのですが、cronの実行時間をどうやってデータベースに入れるかが全くわかりません(たぶんプログラムで書くのでしょうが。) ご教授、もしくは私がやりたいようなことを書いているサイトなどをご存知でしたら、教えて下さい。 宜しくお願い致します。

  • JavaServletでJavaプログラムを実行するには

     JavaServletやJSPを用いて、Javaプログラムを実行するにはどうしたら良いのでしょうか?  理想としては、クライアントがブラウザを通してサーバにアクセスし、サーバ内のJavaプログラムを実行できるようにプログラミングしたいです。  クライアントが実行しているか確認できなくても、サーバで実行されていれば問題は解決できます。 参考のURLなどがあれば、とても助かります。 知っている方がいましたら御指導をお願いいたします。

    • ベストアンサー
    • Java
  • 実行中のプログラムについて

     こんにちわ。 どうしても分からない事がありまして、投稿しました。 私の使用しているPCはNECのノートPCで、OSはWindows XP SP2です。 私はPCにパスワードを設定していて、電源を入れてもパスワードを入力しないとWindowsが起動しないようになっています。 それで最近気が付いたのですが、電源を入れてパスワードを入力する画面が表示された時に「7個のプログラムを実行しています」と表示されます。 何のプログラムが実行されているのか気になって、「7個のプログラムを実行しています」をクリックして見たら 「実行しているプログラムが多すぎるためにコンピュータの処理速度が、通常より遅い場合はプログラムをいくつか終了して下さい」と表示されました。 実行されているプログラムの内2個は分かるのですが「多分、ウイルスバスター2007と日記帳」残り5個がどうしても分からないのです。 実行されている残り5個のプログラムを見つける方法を教えてください、よろしくお願い致します。

  • javaプログラムの実行時間

    某javaベースのウェブサービスのプログラムをやってます。antでプログラムの実行を行っているので、処理時間を測定したくてSystem.currentTimeMillis()をソースコードに入れても端末には何も表示されませんでした。初心者で申し訳ないが、このようなのをどうすれぼ良いですか。

  • Tomcatのセットアップ

    ただ今、servletとjspの勉強をしている者です。 今までTomcatを使っていたのですが、最近動きがおかしいので、解決方法をお聞きしたく、投稿させていただきます。 Tomcat4.0でOSはMeです。 おかしい、というのは、jspがうまく表示されないのです。コードを書き換えたファイルを古いものと差し替えても、実行すると古いもののほうが表示されてしまうのです。workにあるファイルを全部消してから実行しても同じです。jspファイル自体を削除しても、古いものが表示され続けます。 そこでそのTomcatを削除し、新しく入れ直したのですが、今度はServletが実行されません。 自分で作った、Servletで画面遷移をしjspで表示するプログラムを実行すると、画面が真っ白になります。コードを見ると、中身が空のHTMLがはかれていました。 そこで画面表示する役割のjspにURLを入れて直接アクセスすると、それは表示されるのです。 私がつくったServletが変なのかな、と思い、参考書についているCDからコピーしてきたServlet(Servletを頑張ろう、と表示されるだけの、簡単なもの)を実行しても画面が真っ白なのです。 エラーがでるならコードの直しようがありますが、画面が真っ白、というのはどう対応して良いのか皆目検討もつきません。 解決方法をどなたか私にご教示いただけないでしょうか?

  • jspからServletを呼び、元のjspページに戻るにはどうしたらよいですか?

    ・jspページにあるボタンを押すとServletに値を渡す。 ・Servletで処理をする。 ・処理の結果を元のjspページに表示する。 というプログラムを作りたいと考えています。 jspページ→Servletで処理をする、という所までは出来たのですが その後元のページに戻すというところで困っています。 jspページは複数(十数ページ)あり、Servletは1つです。 a.jsp→Servlet→a.jsp b.jsp→Servlet→b.jsp このように、どのjspページから呼ばれても、元のjspページに 戻したいのですが、どのようにすれば実現できるでしょうか?

    • ベストアンサー
    • Java
  • JBuilderでのJSP実行

    JBuilder5 Professionalを使って開発しようと しています。手始めに、 簡単なServletのサンプルの実行はできたのですが JSPとBeanをあわせたサンプルの実行で エラーがおきてしまいます。 実際やってみたのは下記のサンプルです。 http://www.atmarkit.co.jp/fjava/rensai/jbias02/jbias02_2.html このとおりにしてJSPを実行すると以下のような エラーメッセージがでてきます。(長いのですが活用します) また、JBuilderに付属のSampleを使っても同様のエラーに なります。 これは、tools.jarファイルをおく位置が関係 しているということでしょうか?(エラーに でているので・・・) 何かご教授願いたく思います。よろしくお願いします。 ***エラーメッセージ*************** Error: 500 Location: /jspwebapp/JSPWithCounter.jspInternal Servlet Error:javax.servlet.ServletException: sun/tools/javac/Main at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:399) ・・・こんな感じでつづきます。 実験環境は以下の通りです。 WindowsNT4 JBuilder5 pro jdk1.3

    • ベストアンサー
    • Java
  • プログラムを実行するとクエスチョンと出るのですが

    ショートカット及びEXEファイルをクリックするとQuestionと出てはい、いいえを選択しないと実行出来なくなりました なにかするたび聞かれてはいを選択しないとプログラムが実行出来ないのはなぜでしょうか? セキュリティソフトはウィルスバスター2009が入れてあります いいえを選択すると指定されたデバイス、パス、またはファイルにアクセスできません。アクセス許可がない可能性がありますと出ます

専門家に質問してみよう