• ベストアンサー

サーブレットのスレッド管理について

umepapa05の回答

回答No.3

No.2さんが丁寧に回答されてるようなので 補足の情報として書かせていただきます。 質問を読ませていただいてる限りでは、マルチスレッドの長所・短所を勉強するのが一番良いのではないかと思います。synchronizedにしなければいけない意味がわかると理解が深まると思います。 No.2さんも書かれてますが、実際の業務では多数のアクセスがあることが多いので、SingleThreadModelではハンドリングしきれません。そこで、マルチスレッドにして複数の接続オブジェクトを生成することが多いです。 Servletに関連した業務で直接的にスレッド管理をすることはあまりないと思いますが、Servlet自身のスレッド管理に対しての話の場合は、tomcatとかjavaで書かれたウェブサーバのソースを参考にすると良いと思います。 http://jakarta.apache.org/ 一番いいのは自分で経験するのがベストだと思います。プロでも本番環境に移行するまでは、生のアクセスを経験することはできません。ですので、以下のようなフリーのソースを使ってテストしてますよ。 http://www.microsoft.com/japan/technet/archive/itsolutions/intranet/downloads/webstres.mspx では、頑張ってください

alovelybird
質問者

補足

フリーのソースの場所まで教えていただき感謝いたします。 >マルチスレッドにして複数の接続オブジェクトを生成 >することが多いです 同じJavaBeansクラスを使うとしても、違うインスタンスをそれぞれのリクエストに割り当てろということでしょうか?また >Servletに関連した業務で直接的にスレッド管理をす >ることはあまりない との事なのですが、Strutsにはスレッド管理を自動でプログラムしてくれる機能がすでにそなわっているのでしょうか?

関連するQ&A

  • jsp/サーブレット

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

  • javaサーブレットでjspへのフォワード処理と、ファイルに出力処理を行いたいのですが。。

    今javaサーブレットとjspでツール作成中です。 DBにアクセスして、その内容をCSVファイルに書き出すというツールなのですが、サーブレットではjspにフォワードという処理と、ファイルに出力という処理の二つを同時に行うことができるのでしょうか。 たくさんの本やサイトにそれぞれ片方の処理だけする場合は載っているのですが、両方を並行して処理させる場合のサーブレットの書き方がわかりません。。 jspからの情報をもとにサーブレットでDAOを生成、DBにアクセスし、検索結果をDTO(一行の情報はBean)に格納し、それをサーブレットからjspにフォワード&CSV出力というものを作りたいと思っています。 よろしくお願いします。

  • サーブレットとJSPの連携

    今、サーブレットとJSPについて勉強しまいます。 HTMLからサーブレットでリクエストを受け付け、 JSPに転送し表示させたいのですが、フォームからの入力の場合は String carname = request.getParameter("cars"); で入力データを取得するコードを書きますよね? (本ではこう書いてました・・・。) では、HTMLの入力フォームからではなくリンクからの 受付けの場合はどう書けばいいのですか? 勉強を始めたばかりで初心者なので、説明不足の点もあるかも 知れませんが分かりやすくご指導宜しくお願いします…。

  • javaサーブレットとmysqlと接続で困ってます

    参考書見ながらjava サーブレットの勉強してるんですがmysqlと繋ぐのに苦戦しています。 プロジェクトのwebcontentのweb-infのlibにJDBCを入れたのですが、こんなエラーがでます。 java.sql.SQLException: No suitable driver found for jdbc:mysql://localhost/sample_db?useUnicode=true&characterEncoding=utf8 これはパスの設定がされてないからでしょうか?

    • ベストアンサー
    • Java
  • サーブレットからJSPの呼び出しについて

    こんにちは。 JSPの呼び出しについて質問です。 サーブレットで RequestDispatcher dispatcher = req.getRequestDispatcher("/jsp/java.jsp"); dispatcher.include(req, res); としてJSPファイルを呼び出そうとしているのですが、うまくいきません。コンパイルは通ります。 dispatcher.include(req, res); の部分で例外処理にいってるのでそこがおかしいようですが。urlの指定もjspファイルの内容も何度も確認したのですがミスはないみたいで原因がわかりません。 またTomcatのログファイルlocalhost_logを見ると 2002-07-11 16:05:35 ApplicationDispatcher[/DB] サーブレット jsp のServlet.service()は例外を投げました という文が出力されています。

    • ベストアンサー
    • Java
  • サーブレットからBeanを呼び出すやり方

    AccessのDB接続部分をjava Beanで作成し、それをサーブレット側から呼び出して実行したいのですが、サーブレットからBeanを呼び出すやり方がわかりません。 またBeanのプログラムは http://www.atmarkit.co.jp/fjava/rensai/smartj02/smartj02_1.html#ap01 に書かれているものとほとんど変わらないものです。 初歩的な質問かと思いますがよろしくお願いします。

  • サーブレットからJavaBeansを利用したDB接続について

    初歩的な質問ですみません。 下記環境で、Javaを勉強しています。 教材 :やさしいJava 活用編 Lesson8 Sample5 実行環境:j2sdk1.4.1_07 (教材では、j2sdk-1_4_0) Tomcat 5.0(教材では、Tomcat-3.2.3) IE6.0 サーブレットでリクエストを受付け、JavaBean経由でDBに接続(Access2000を利用)しDBの中身をJSPで表示するいう流れです。サーブレットのURLを指定して実行してもjspページには何も表示されません。 ログファイルには下記エラーが記述されています。 勘違いか、何らかの初歩的なミスだと思いますが、解決方法が見つかりません。解決方法をご存知の方教えて下さい。よろしくお願いします。 尚、JDBC-ODBCドライバを使用していますが、サーブレットからではなくJavaアプリからではAccess2000のDB参照更新が出来ています。サーブレットから(JavaBean経由)だとうまくいかないという事象です。 java.sql.SQLException: [Microsoft][ODBC Driver Manager] データ ソース名および指定された既定のドライバが見つかりません。 at sun.jdbc.odbc.JdbcOdbc.createSQLException(JdbcOdbc.java:6879) at sun.jdbc.odbc.JdbcOdbc.standardError(JdbcOdbc.java:7036) at sun.jdbc.odbc.JdbcOdbc.SQLDriverConnect(JdbcOdbc.java:3028) at sun.jdbc.odbc.JdbcOdbcConnection.initialize(JdbcOdbcConnection.java:323) at sun.jdbc.odbc.JdbcOdbcDriver.connect(JdbcOdbcDriver.java:174) at java.sql.DriverManager.getConnection(DriverManager.java:512) at java.sql.DriverManager.getConnection(DriverManager.java:171) at CarDB.CarDBBean.<init>(CarDBBean.java:22) at Sample5.doGet(Sample5.java:16) at javax.servlet.http.HttpServlet.service(HttpServlet.java:689) at javax.servlet.http.HttpServlet.service(HttpServlet.java:802) at ~略~

  • Javaのサーブレットについて(マルチスレッド)

    サーブレットについて質問です。 サーブレットは1インスタンス・複数スレッドという形態で、 サーブレットコンテナにより管理されていると思います。 では、このコンテナ内では、どのように1インスタンス・複数スレッドを 実現しているのでしょうか? 以下、自分なりに考えたプログラムです。 たぶん、このようにすれば、1インスタンス・複数スレッドになるのかと思うのですが。 どなたかご教授願いますでしょうか。 よろしくお願いいたします。 【1インスタンス・複数スレッドプログラム例】 public class TestThread extends Thread { public void run() { System.out.println("TestThread.run()"); } public static void main(String[] args) { Thread tt = new TestThread(); Thread th1 = new Thread(tt); Thread th2 = new Thread(tt); th1.start(); th2.start(); } }

  • JSPのスレッドセーフについて

    Strutsを用いて開発しております。 「スレッドセーフにするように」と言われ、 JSPのコードを見ると<% %>で囲まれた部分がありました。 こちらで他の質問を見させていただいたときは 「<%! %>で囲まれた部分はインスタンス変数として扱われる」 とあったのですが、<% %>で囲まれた部分に定義された変数は ローカル変数なのでスレッドセーフであると考えて 間違いないでしょうか? (JSPから生成されたjavaコードを見ると、_jspServiceメソッドの中で  定義されていました。)

    • ベストアンサー
    • Java
  • サーブレットか、phpか?

    ご質問させて頂きます。 現在、サーブレットでhtmlからテキストファイルに落として、ACCESS2000にデータを吸い上げて、ACCESS上で集計などのデータ管理を行うというシステムがあります。 このたび、データ管理など全てサーバ上で構築することになりました。 ACCESSの部分をmysqlに移行しようと思ったのですが、その場合、mysql+サーブレットになります。しかし調べたところ、mysql+phpというのが多いのです。 mysql+phpで構築した方が良いのでしょうか?

    • ベストアンサー
    • Java