IT用語辞典で調べてみたのですが、
1.「EJBとServletの違い」
2.「J2SEとJ2EEの違い」
の2つについてイメージがつかないというか、良くわかりません。
どう理解すればよいのでしょう?

このQ&Aに関連する最新のQ&A

A 回答 (2件)

あまりEJBは開発したことないんですが、わかる程度ということで・・。



1.「EJBとServletの違い」
これは、難しいですね。なかなか一口にはいえないように思えます。

サーブレットというのは、Webアプリケーションで使うものですね。これは、クライアントからアクセスして呼び出して実行します。では、「クライアントから直接呼び出しはしないけれど、常時これこれという機能を用意していつでもサーブレットなどから利用できるようにしたい」というときはどうすればよいでしょう?
 こういう場合に使われるのがEJBです。要するに、特定のWebアプリケーションの特定の処理などとは切り離して、非常に多用される汎用的な機能をコンポーネント的にサーバに追加し、外部からいつでも利用できるようにするものですね。

非常に重要なのは、「JavaサーバだからといってEJBが使えるわけではない」という点です。Javaサーバには、WebアプリケーションサーバとJ2EEサーバがあります。EJBを使うためにはJ2EEサーバでなければいけません。
 例えば、よく用いられているTomcatサーバはWebアプリケーションサーバではありますが、J2EEサーバではありません。従って、EJBは動かないのです。ですから、ちょっとした規模の開発ではEJBを使うことはないでしょう。

2.「J2SEとJ2EEの違い」
これは、よく勘違いすることが多いのですが、(現在の)J2EEは、サーバ向けに用意された特殊なJavaではありません。J2EEは、端的にいえば「J2SEに、サーバ用のライブラリやサーバプログラム、各種ドキュメントなどを足したもの」です。ざっと整理すると、J2EE 1.4はこんなもので構成されてます。

・J2SE 1.4
・J2EE基本ライブラリ(JSP/サーブレットなどのライブラリ)
・JavaServer Faces(新しいWebアプリケーションのフレームワーク)
・Sun Java Application Server PE(Sunのバンドル版サーバプログラム。pure JavaのデータベースサーバPointBase限定版を含む)
・ドキュメント

つまり、Javaの部分は、J2SEと全く同じなのです。ですから、今ではJ2EEをまるごと使うというより、普段使っているJ2SEに、必要に応じてJ2EEのライブラリなどを足して使う方が一般的になっています。
    • good
    • 1
この回答へのお礼

回答ありがとうございます。
J2EEサーバーがないとEJBは動かないんですね。
なるほどー。
わかり易い説明ありがとうございました。
回答を元に勉強させて頂きます。

また不明なことが出てきた際には質問させて頂きますので宜しくお願い致します。

お礼日時:2005/04/14 12:17

>2.「J2SEとJ2EEの違い」


J2SEはJavaの基本的な部分で、J2EEはJavaの中でもサーバ側技術に特化した(というか拡張された?)部分とでもいったものでしょうか?

>1.「EJBとServletの違い」
EJBは様々なサービスを提供するもので、JSP/Servletはその中でもWebサービスに特化したもの。EJBもJSP/ServletもJ2EE技術の一部です。

私はなんとな~くこんな風に分類しています。正確な定義は見たことないですがw
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
なろほど!簡潔でとてもわかり易いです。
また不明な事がありましたら質問させて頂きますのでその際には宜しくお願いします。

お礼日時:2005/04/14 12:13

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QJava サーブレット間の値の受渡について

こんにちは

サーブレットAからサーブレットBへ値を渡して、
サーブレットAで、戻り値を取得したいと考えています。

条件としては、
・サーブレットBの改修はできない
・サーブレットBへはGet,Postで値を渡すことができ、
戻り値を数値で貰える
というものです。

サーブレットA側からサーブレットBへリダイレクトするやり方はわかったのですが、それだと処理が完全にサーブレットBに移ってしまい、戻り値に応じた処理がサーブレットA側で行えないのです。
一般的なプログラミングのように、コールして戻り値に応じて処理を分ける・・といったことは出来ないのでしょうか?

Aベストアンサー

サーブレットAからBへリダイレクトしたのでは、そのままページを移るだけですからお望みのような働きにはなりません。

どうしてもというなら、サーブレットAの中から、URLConnectionでサーブレットBに接続をし、結果を受け取って処理する、というような形になるかと思います。要するに、サーブレットAの内部から、HTTPでサーブレットBにアクセスするわけです。

QJava J2SDK J2SE SE EE ME の違いについて

JavaによるWebアプリケーションを始めようと思い、Java、Tomcatをインストールしようと思います。
購入したテキストにはJ2SDK(j2sdk-1_4_2_13-windows-i8\589.exe)、
Tomcat(jakarta-tomcat-4.1.27-LE-jdk14.exe)をインストールせよとあり、指示されたHPを入力すると、sunのホームページ
http://sdc.sun.co.jp/java/docs/j2se/1.4/ja/index.html
にはJ2SEとなっていますし、ダウンロードのメニュをクリックすると、
SE、EE、MEと色々あります。
また、
http://java.sun.com/javase/downloads/index.jsp
を見に行くと、最新バージョンはJDK6となっています。
色々あって迷っています。
どれをインストールすればよいか、ご教授お願いします。

Aベストアンサー

バージョンによって異なった動きをしますので、j2sdk-1_4_2_13-windows-i8\589.exeと指示があるならば、指示されたものあるいは1_4_?_?というバージョンが若干異なる程度のものにしてください。そうしないとその本の通りやってもうまく動かないことが多発すると思われます。

EEは企業向け。MEは組み込みシステム向け。めったなことでは関わることはないと思いますので、とりあえず気になさらずに。

Qサーブレットforward時の実行メソッドについて

初歩的な質問で失礼します。

サーブレットAに doGet, doPost, serviceメソッドを実装しています。
サーブレットBのdoPostメソッド内にて
サーブレットAにforwardを実行する場合に、
呼出されるのはサーブレットAのどのメソッドですか?

JSPへのforwardはできたのですが、
サーブレットへのforwardができず悩んでいます。

サーブレットのAPIを読んでもいまいちわかりません。
何かメソッドに関する制約があるのでしょうか?
上の質問は全くマト外れでしょうか?

追加ですが・・・
サーブレットからforwardされたサーブレットで、
そこからさらにJSPへforwardすることはできますか?

Apache2.0.43+tomcat4.1.12+Java1.4.0_01です。

Aベストアンサー

> サーブレットBのdoPostメソッド内にて
> サーブレットAにforwardを実行する場合に、
> 呼出されるのはサーブレットAのどのメソッドですか?

doPost() のはず。実際には、forward するときの HttpServletRequest#getMethod() で取得できる文字列に従うはず。

> JSPへのforwardはできたのですが、
> サーブレットへのforwardができず悩んでいます。

forward に関して、servlet と JSP の違いはないはず(というか、JSP は自動コンパイルされる servlet だし)。
getRequestDispatcher() してるパスが間違っているのだと思います。

> サーブレットからforwardされたサーブレットで、
> そこからさらにJSPへforwardすることはできますか?

コンテナの実装次第だけど、forward() は、サブルーチン呼び出しと変わらないはずなので、
回数に制限はないはず。

QJ2EEとJ2SEについて

いつもお世話になっています。

現在、windows2000 + J2SE1.4.1 + TOMCAT4.06 + Apacheで
JAVAを学習しています。

現在作成している画面で、
ページに遷移してきた時刻が午前9時半以降だと
エラーページに遷移する仕組みをつくろうと考え、
エラーページに飛ばす処理として、
response.sendRedirectを使おうと思ったのですが、
sendRedirectを使うためには、J2EEに含まれる
パッケージjavax.servlet.httpをimportしておく
必要があることがわかりました。

現在J2SEをつかっているため、
J2EEの最新バージョンの1.3.1をインストールして
TOMCATの再起動、APACHEの再起動の順に行ったのですが
やはりjavax.servlet.httpを認識せず、
エラーになってしまいます。

J2SE1.4.1のうえから、J2EE1.3.1をインストールすると
認識されないのでしょうか(バージョンがJ2EEの方が古いため?)

それともJ2EEを追加したら
TOMCATやAPACHEを再インストールしなければいけないのでしょうか?

なにかお気づきの方が居られましたら
ご教授ください。
宜しくお願いします。

いつもお世話になっています。

現在、windows2000 + J2SE1.4.1 + TOMCAT4.06 + Apacheで
JAVAを学習しています。

現在作成している画面で、
ページに遷移してきた時刻が午前9時半以降だと
エラーページに遷移する仕組みをつくろうと考え、
エラーページに飛ばす処理として、
response.sendRedirectを使おうと思ったのですが、
sendRedirectを使うためには、J2EEに含まれる
パッケージjavax.servlet.httpをimportしておく
必要があることがわかりました。

現在J2SEをつかっているため、
J2EEの...続きを読む

Aベストアンサー

sendRedirect使うには、javax.servlet.httpが必要ですが、
それはtomcatにすでに入っています。
JSPから使うのであればすでに使用可能です。

<% response.sendRedirect("/~~"); %>

と書いてもらえれば使えるはずです。
responseはJSPの中では暗黙のオブジェクトとして、宣言しなくても
使えます。

余談ですが、J2EEではサーブレット技術が含まれていますが、
sendRedirectを使用したいがために、J2EEを入れるのは大げさです。
たとえて言うならば、ラジオ放送を聞きたいがために車を購入するみたいな。

QJavaサーブレットのライフサイクルについて

Javaサーブレットのライフサイクルについての質問です。
まだJavaサーブレットの開発に携わってから間もないので、不足な点がありましたら申し訳ございません。

サーブレットは一度アクセスするとサーブレットコンテナ上で動作を続けますが(コンテナ上で実体が常駐する)、サーブレットがデータベースと接続しているという前提での文ですが、サーブレットの中のdoPostメソッド内でtry~catch~finally文のfinallyのところでデータベースの切断(close()メソッドで)等のリソースの開放を行い、それ以降はそのサーブレットにアクセスが無くなったとしたら、サーブレットはどの位の期間でライフサイクルが終了するのでしょうか。

サーブレットではdestroyメソッドでサーブレットの消滅がされると思いますが、サーブレットへのアクセスがそれ以降無かったりしても、もう一度アクセスされたりしても、ライフサイクルを考えるとdestroyを入れた方がよいのか、という事もどうすればよいのか分からなくて・・・。

是非、サーブレットのライフサイクルに関して詳しい方がいらっしゃいましたら、ご教授宜しくお願いします。

Javaサーブレットのライフサイクルについての質問です。
まだJavaサーブレットの開発に携わってから間もないので、不足な点がありましたら申し訳ございません。

サーブレットは一度アクセスするとサーブレットコンテナ上で動作を続けますが(コンテナ上で実体が常駐する)、サーブレットがデータベースと接続しているという前提での文ですが、サーブレットの中のdoPostメソッド内でtry~catch~finally文のfinallyのところでデータベースの切断(close()メソッドで)等のリソースの開放を行い、それ以降はその...続きを読む

Aベストアンサー

一言で言えばサーブレットエンジンの設定次第、でしょうか。
各社からWebアプリケーションサーバーが出ていますが、大体どれもDBのコネクションプールやスレッドプール機能を持っています。
またこれによりサーブレット自体が直接DBと接続するのではなく、リソースの管理はWebアプリケーションサーバーが行うことになります。
不要な(=未使用)のサーブレットは設定された時間やリソースに空きが無ければ古いものから順に捨てられて(=destroy)いきます。

詳しい設定方法やデフォルト値についてはお使いのアプリケーションサーバー製品のマニュアルをご覧ください。

QJ2EE1.3の頃のチュートリアルの本がでてきましたがJ2EE5でもソースを組めば動きますか?

巨大掲示板で聞いたんですが、悪口しかいわれなかったので、ここで聞かせてください。

だいぶ前(4,5年前?)に買ったJ2EEチュートリアルという本(ピアソンエデュケーション)が倉庫から出てきたのでやりたいのですが、J2EE5(現行バージョン)のアプリケーションサーバでも勉強できますか?

JBOSSならEJBソースをうってxmlファイルをうってEarファイルにしてデプロイすると動きそうな予感がするんですが、この本は純正サーバを対象にしているので、不安です。J2EE5のあおい分厚い本を買うのがいいのかもしれませんが、高いので・・

分かる方、回答よろしくお願いします。

Aベストアンサー

多分大体の部分は大丈夫じゃないかと。

実際にやってみておかしい部分だけ調べてみればどうでしょうか?

質問したからといって100%動作が保障されることはないでしょうし。

Qサーブレットコンテナのメモリ解放について

お世話になっております。
今回質問させていただきたいのはサーブレットコンテナ上のメモリ解放についてです。サーブレットの動作フローとしては、

(1)クライアントからHTTPリクエストが投げられる。
(2)Webサーバがリクエストを受け取り、コンテナへリクエストを委譲する。
(3)サーブレットコンテナは、リクエストとレスポンスのラッパーオブジェクトを生成し、リクエストへリクエスト情報をマッピングする。
(4)(3)で生成したリクエスト/レスポンスオブジェクトをサーブレットへ参照渡しする。
(5)サーブレットが処理を実行する
(6)レスポンスを生成し、クライアントへ返す。

という流れかと思いますが、この際に(3)で生成されるラッパーオブジェクトや、ロードされたサーブレットが解放されるのは、レスポンスを返した後なのでしょうか。それとも次のリクエストに備え、オブジェクト本体は確保されたまま、次のマッピングに備えるのでしょうか。(サーブレットの解放はコンテナが終了した際?)
はたまた、やはりJava特有のガベージコレクションが働き、メモリ解放はガベージコレクションのタイミングで行われるのでしょうか、、

よろしくお願い致します。。m(._.)m

お世話になっております。
今回質問させていただきたいのはサーブレットコンテナ上のメモリ解放についてです。サーブレットの動作フローとしては、

(1)クライアントからHTTPリクエストが投げられる。
(2)Webサーバがリクエストを受け取り、コンテナへリクエストを委譲する。
(3)サーブレットコンテナは、リクエストとレスポンスのラッパーオブジェクトを生成し、リクエストへリクエスト情報をマッピングする。
(4)(3)で生成したリクエスト/レスポンスオブジェクトをサーブレットへ参照渡しする。
(5)サー...続きを読む

Aベストアンサー

サーブレット自体のアンロードは、明示的にサーブレットをシャットダウンしたとき以外は行われません。
基本的に、サーバが生きてる限りずーっとオンメモリです。

リクエスト/レスポンスのラッパーオブジェクトは基本的には(サーブレットでブールするような仕組みで作らない限り)破棄されると思います。
オブジェクトの破棄は、Javaの仕様通りにGCが行います。

QJ2EEパターンの用語について

FrontControllerなどで出てくる用語で下記のものがわかりません。
1.共通ロジック
2.ログ


わかるかたがいれば、簡潔に教えてください。
宜しくお願いします。

Aベストアンサー

この2つは一般的なコンピュータ用語です。

>1.共通ロジック

ロジックは直訳すれば「論理」ですが、サブルーチンのような意味合いでも使われます。共通ロジックはFrontControllerパターンがなぜ必要なのかを説明する中心的な単語です。もしFrontControllerパターンを使用しないと、認証やセッション管理などの「同じ処理内容」を個々のJSPの全てに書かなければならなくなり保守性が著しく低下します。各JSPに「共通」するこのような「ロジック」を抜き出して一か所に記述しておくことができれば、この問題は解決します。

共通ロジック=複数のプログラム(この場合はJSP)で共通して使用される処理

>2.ログ

共通ロジックのひとつとしてFrontControllerパターンのController部分に実装される処理の一例です。ログというのは直訳すると「記録」です。Webアプリケーションの場合は利用状況等を管理するため、日時、ユーザID、呼び出し元のIPアドレス、呼び出されたページIDなどの情報を記録しておくことを指します。一般的にはログファイルと呼ばれるファイルに記録しておきたい内容を1行にまとめて追記していく処理になります。

この2つは一般的なコンピュータ用語です。

>1.共通ロジック

ロジックは直訳すれば「論理」ですが、サブルーチンのような意味合いでも使われます。共通ロジックはFrontControllerパターンがなぜ必要なのかを説明する中心的な単語です。もしFrontControllerパターンを使用しないと、認証やセッション管理などの「同じ処理内容」を個々のJSPの全てに書かなければならなくなり保守性が著しく低下します。各JSPに「共通」するこのような「ロジック」を抜き出して一か所に記述しておくことができれば、この問題...続きを読む

Qjava JSP/サーブレット

Javaの参考書をやったのですが(参考書:やさ○いJava)、これはアプレットと聞きました。アプレットは現場では殆ど使われないと聞き、JSP/サーブレットは現場で使うと聞いたのでJSP/サーブレットをやっています。
でも、構文が少し違います。
***********************************
例えば、Javaなら表示するときには
System.out.printlnでしたが、
JSP/サーブレットでは違う構文です。
また、Javaならファイルが一つしかありませんでした。(コンパイルするとclassファイルができる)
JSP/サーブレットは、スーパークラスやサブクラスは
別のファイルになっています。
************************************
JSP/サーブレットはプログラム言語なんですか?
JSP/サーブレットの中にもJavaの構文があるんですが、先にも述べたようにJavaと違う構文も含まれています。
ちょっと戸惑っています。
しかも、JSP/サーブレットに関する参考書が本屋さんで殆ど見られないのです。
お勧めの参考書などあればいいのですが、
数が少ないためか見当たりません。
それで、とりあえづ「10日で覚○るJSP/サーブレット」という本を買ったのですが、9割がたJSPです。
1割がサーブレットです。
こうなってくると意味がわからなくなってきます。
現場ではサーブレットと聞いていたのに、そのサーブレットが1割しか載っていない。え!?どういうこと!?更にはJSPとサーブレットの書き方も少し違うような気が・・・・。
もう何が何かさっぱりわからなくなってきました。
結局何を勉強すれば良いのか?
そもそも、JSPとは?サーブレットとは?
ネットで調べはしたもののピンときません。
現場でJavaをやりたいのですが、独学方法というか、
アドバイスを宜しくお願いします。

Javaの参考書をやったのですが(参考書:やさ○いJava)、これはアプレットと聞きました。アプレットは現場では殆ど使われないと聞き、JSP/サーブレットは現場で使うと聞いたのでJSP/サーブレットをやっています。
でも、構文が少し違います。
***********************************
例えば、Javaなら表示するときには
System.out.printlnでしたが、
JSP/サーブレットでは違う構文です。
また、Javaならファイルが一つしかありませんでした。(コンパイルするとclassファイルができる)
JSP/サーブレットは、ス...続きを読む

Aベストアンサー

今、現場でJAVAをやっています。
前の方々も書いていらっしゃいますが、まずはJAVAを勉強してからJSP&サーブレットを勉強した方がいいです。
あと、JSPを単独で使用することもありますが、大体がフレームワークを使っています。各社の独自のフレームワークを構築しているところもありますが、(大手だとほとんどそう)StrutsベースかStrutsを使用してのプログラミングです。JSPをやるのであればStrutsは覚えておくと武器にはなりますね。大体JAVAが出来る人はほとんどJSP等はわかりますので。

また、最近はJAVAのアプリの開発は少ないという声を結構聞きますが、仕事があるところはありますね。
逆にWevばかりやってきて、Swingやawtが出来ないJAVAの技術者の方とか結構いらっしゃってます。JAVAを極めるのであれば、Swingやawtもしっかり覚えていた方がいいと思います。

Qj2sdkee1.3.1 で、j2ee が実行できない…

j2sdkee1.3.1 をインストールしたのですが、j2ee を実行しても、
****************************
/java/re/jdk/1.3.1_02/latest/binaries/linux-i386/bin/java:そのようなファイルやディレクトリはありません
****************************
というエラーがでてしまいます。
どうすればいいのでしょうか?
どうか分かっている方、教えてください。よろしくお願いします。

<自分インストールの仕方>

tar xvfz j2sdkee1.3.1.tar.gz
cp -Rf j2sdkee1.3.1 /usr/local/etc/

*****
<.bashrcの設定>
JAVA_HOME=/usr/local/etc/j2sdk1.4.0
J2EE_HOME=/usr/local/etc/j2sdkee1.3.1
PATH=$PATH:$JAVA_HOME/bin:$J2EE_HOME/bin
CLASSPATH=$CLASSPATH:$J2EE_HOME/lib/j2ee.jar:$J2EE_HOME/lib/locale

パスは問題なく通っているのですが…
どうかよろしくお願いします。

j2sdkee1.3.1 をインストールしたのですが、j2ee を実行しても、
****************************
/java/re/jdk/1.3.1_02/latest/binaries/linux-i386/bin/java:そのようなファイルやディレクトリはありません
****************************
というエラーがでてしまいます。
どうすればいいのでしょうか?
どうか分かっている方、教えてください。よろしくお願いします。

<自分インストールの仕方>

tar xvfz j2sdkee1.3.1.tar.gz
cp -Rf j2sdkee1.3.1 /usr/local/etc/

*****
<.bashrcの設定>
JAV...続きを読む

Aベストアンサー

あれれ!、誰もアドバイスしない。冷たいね!それとも、過去にも同じ質問があるのかな。

j2ee(Enterprise Edition)の前提は、j2se(Standard Edition)、そのようになっています。

j2sdk-1_4_1_01-linux-i586.bin(binの部分は、sh、tar.gzのものがある)。
一般的には、/usr/localにこのファイルをおいて、
tar xvfz j2sdk-1_4_1_01-linux-i586.tar.gz
自己解凍ファイルのshや、binの場合
sh j2sdk-1_4_1_01-linux-i586.bin
とすればよい。

>tar xvfz j2sdkee1.3.1.tar.gz
>cp -Rf j2sdkee1.3.1 /usr/local/etc/
ファイルをどこで展開しようが好みの問題なのでいいとして、/usr/localにおくことを推奨します。

cp tar xvfz j2sdkee1.3.1.tar.gz /usr/local
cd /usr/local
tar xvfz tar xvfz j2sdkee1.3.1.tar.gz

><.bashrcの設定>
>JAVA_HOME=/usr/local/etc/j2sdk1.4.0
>J2EE_HOME=/usr/local/etc/j2sdkee1.3.1
>PATH=$PATH:$JAVA_HOME/bin:$J2EE_HOME/bin
>CLASSPATH=$CLASSPATH:$J2EE_HOME/lib/j2ee.jar:$J2EE_HOME/lib/locale

PATHが記述されているのは、.bashrcそれとも、.bashrc_profile
ログインの時によみこまれるのが、.bash_profile、シェルが呼び出されるときが、.bashrc

PATH=$PATH:$JAVA_HOME/bin:$J2EE_HOME/bin
バスの記述はよいとして、

export JAVA_HOME=/usr/local/etc/j2sdk1.4.0
export J2EE_HOME=/usr/local/etc/j2sdkee1.3.1
export CLSSPATH=$CLASSPATH:$J2EE_HOME/lib/j2ee.jar:$J2EE_HOME/lib/locale

exportが抜けています。

終ったら
source .bashrc
で、環境に反映させます。

echo $JAVA_HOMOE
echo $J2EE_HOME
echo #CLASSPATH

set

で、いずれも、正しく設定されているかを確認します。もし、.bash_profileに記述した場合は、一度ログアウトしてから、再度ログインをします。

j2ee
これで、J2EEサーバーの起動
確認で、
java -version
java version 1.3.1
とでれば、終り。

j2sdkまでしか使用したことがないから、間違っているかもしれません。私め、しばしば、参考リンク先の件でシステム管理者から怒られますねん。今回も赤字で<注意>が表示されています。したがって今回は、記憶からしぼりだしましたので、あしからず。

あれれ!、誰もアドバイスしない。冷たいね!それとも、過去にも同じ質問があるのかな。

j2ee(Enterprise Edition)の前提は、j2se(Standard Edition)、そのようになっています。

j2sdk-1_4_1_01-linux-i586.bin(binの部分は、sh、tar.gzのものがある)。
一般的には、/usr/localにこのファイルをおいて、
tar xvfz j2sdk-1_4_1_01-linux-i586.tar.gz
自己解凍ファイルのshや、binの場合
sh j2sdk-1_4_1_01-linux-i586.bin
とすればよい。

>tar xvfz j2sdkee1.3.1.tar.gz
>cp -Rf j2sdkee1.3.1 /usr/...続きを読む


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング

おすすめ情報