- ベストアンサー
Javaはmainメソッドからじゃないの??
Java基礎の本にはmainメソッドから処理が始まるって書いてあるのにServletなどはmainメソッドから始まっていません。 いったいどういう事でしょうか?
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
#2の方の回答をもう少し、簡単に説明をすると以下のようになります。 1.初期化[initメソッド] 2.要求/応答処理[serviceメソッド] 3.終了[destroyメソッド] より詳しく知りたいのであれば、検索エンジンなどで「サーブレット ライフサイクル」をキーワードにすると、いろいろと引っかかると思います。 Javaアプリケーションの全てが、mainメソッドから始まるわけではありません。アプレットなども、サーブレットと同じく、initメソッドから始まりますし、iアプリなどでは、startメソッドから始まります。
その他の回答 (2)
- mmitsu
- ベストアンサー率40% (2/5)
まず、Servletを実行するためにはServletコンテナ(J2EEコンテナ,Javaサーバ)が必要です。mainメソッドはそのServletコンテナ内にあります。 で、TomcatやWeblogicなどのServletコンテナを起動した時に実行されます。 だいたい以下のような感じで実行されます。 (1)mainメソッドを実行してコンテナ起動(Servletコンテナのプロセス起動) (2)Servletを利用したWebアプリをデプロイする -Servletコンテナによって、Webアプリがロードされる -Servletを実行するためのスレッドを生成する (3)コンテナがHTTPリクエストを受取ったら、リクエストを解析しHttpServletRequestとHttpServletResponseオブジェクトを生成する (4)リクエストURLがマッピングされたServletのserviceメソッドを呼び出す 設定によって多少順番や動きは異なりますがだいたいあってると思います。
- rinkun
- ベストアンサー率44% (706/1571)
Servlet等では使っているクラスライブラリの中にmainメソッドを持つクラスがあり、そこから処理が始まっています。Servlet等のメソッドはそちらから呼ばれているわけです。