Java EE Web開発、どこから始めればいいですか、またどのようなスキルが必要ですか?[閉まっている]


215

少なくとも基本的なレベルで、(。NETのバックグラウンドから)Java Webアプリケーションを構築する方法を学びたいです。シンプルなCMSタイプのアプリケーションをゼロから構築、デプロイできるようにしたいと思います。

正確に何を学ぶ必要がありますか?

TomcatはJavaに適したWebサーバーのようです。

Webにはどのようなオプションがありますか?ORMのHibernateがあることは知っています。

JavaにはMVCがありますか?何についてのJSP?MVCとJSPを一緒にすることはできますか?NetBeans

多分これらすべてをカバーする本ですか?

回答:


260

(2020年3月更新)

まず、「Java EE」は2019年9月以降、バージョン8 から「Jakarta EE」に名前が変更されました。歴史的に、バージョン1.2から1.4までをカバーする「J2EE」という用語もありました。「Java EE」はバージョン5から8までをカバーしました。WikipediaのJava Platform、Enterprise Edition、Historyも参照してください。

正確に何を学ぶ必要がありますか?

HTMLCSSJSなどのクライアント側の技術についてはすでにご存知だと思いますので、詳しくは触れません。また、読者は基本的なJavaに既に精通していることも前提としています。OracleのJavaチュートリアルに従ってください。可能であれば、OCPの本やコースも入手してください。

次に、JSP /サーブレットから始めて、Java Web開発の基本概念を学ぶことができます。優れたチュートリアルは、OracleのJava EE 5チュートリアルパートIIの第3章から第8章、およびCoreservlets.com(初級-中級および上級、JDBCにあります。Java EE 6以降、JSPはJava EEチュートリアルから削除され、JSFが採用されています。JSPは基本的に変更されていません。これが、かなり古いJava EE 5チュートリアルを安全に使用できる理由です。JSPに関して最も重要なことは、<%スクリプトレットを使用してJSPファイルにプレーンJavaコードを書き込むことが%>2003年以降公式に推奨されていないことです。JSPファイルでJavaコードを回避する方法も参照してください したがって、スクリプトレットをカバーしているチュートリアルはすべて、スキップする必要があります。これは、悪い習慣を学ぶという下向きのスパイラルにあなたを確実に連れて行くからです。

ここStack Overflowには、JSPサーブレットJSTLELに関する素晴らしいWikiページがあり、基本を学び、より役立つリンクを見つけることができます。


TomcatはJavaに適したWebサーバーのようです。

そうです。ただし、機能に制限があります。これは基本的にはベアボーンサー​​ブレットコンテナであり、巨大なJava EE APIのJSP /サーブレット部分のみを実装しています。EJBまたはJPAに行きたい場合は、WildFlyTomEEPayaraLibertyWebLogicなどの別のものを選択します。それ以外の場合は、Java EEではなくSpringを使用する必要があります。つまり、コアエンジンを変更せずにベアボーンサー​​ブレットコンテナーにEJBをインストールすることは不可能です。Tomcatの場合、基本的にはTomEEを再発明することになります。「Java EEとは正確には何ですか?」も参照してくださいMaven経由でJSFライブラリを適切にインストールおよび構成する方法 およびTomcatにCDIをインストールして使用するにはどうすればよいですか?


ORMのHibernateがあることは知っています。

以前は、J2EEの時代、JPAが存在せず、EJB2がひどかったとき、Hibernateはスタンドアロンフレームワークであり、EJBに代わってSpringと組み合わせて使用​​されることがよくありました。Java EE 5(2006)にJPAが導入されて以来、HibernateはJPA実装になりました。JPAはJakarta EEチュートリアルパートVIIIで学ぶことができます。また、EJB3は、Springから学んだ教訓に基づいて大幅に改善されました。関連項目SpringやEJB3、あるいはそれらすべてを一緒に使用する必要がある場合、または便利な場合


JavaにはMVCがありますか?JSPはどうですか?MVCとJSPを一緒にすることはできますか?JavaBeans?

できますが、ビューとモデルを結び付けること(つまり、変換、検証、変更リスナーなど)に関しては、ホイールの多くの再発明です。Java EEのMVCフレームワークはJSFと呼ばれます。Java EE 6より前は、JSP上で実行されていました。これはかなり古いレガシービューテクノロジーです。JSPはFaceletsに置き換えられました。JSFは、Jakarta EEチュートリアルパートIIIの第7章から第17章で学ぶことができます。ちなみに、TomcatでJSFを使用することもできます。別途インストールする必要があります。インストール手順はMojarraホームページにあります。WildFly、TomEE、Payara、Liberty、WebLogicなどは完全なJava EE実装であるため、JSF(およびCDI、BV、JSONP、JAX-RS、EJB、JPAなど)はすでに提供されているため、以下を行う必要はありません。別途インストールしてください。Mavenを介してJSFライブラリーを適切にインストールおよび構成する方法も参照してください


多分これらすべてをカバーする本ですか?

いくつかの本があります。まず、Jakarta EEに焦点を当てた本、JSF焦点を当てた本、JPAに焦点を当てた本から始めることをお勧めします。あなたが主題をカバーする最新の本を選択することを確認してください。最初に最新の利用可能なバージョンを調べ、次に選択した本がそれをカバーしていることを確認してください。したがって、現在すでにJakarta EE 8とJSF 2.3が利用可能であるにもかかわらず、Java EE 5やJSF 1.0などの古い本を選択しないでください。

最後に重要なことですが、Rosedindia、tutorialspoint、javabeat、journaldev、javatpoint、codejavaなど、教育ではなく広告収入に主眼を置いているアマチュアが管理するコードスニペットスクレイピングサイトは無視してください。広告リンクを妨害することで簡単に認識できます/バナーおよびスクリプトレットを含むJSPコードスニペット。

以下も参照してください。


グレート!役に立つ、ありがとう。.Netでは、通常、Wrox Pressの本で.netのすべての知識をカバーできます。とても厚い本。
gfan 2016年

5
StackOverflowにはピンポスト機能はありませんか?それができたらいいので、この答えをピン留めすることができました。ありがとう!
dww

JavaEE 5チュートリアルに代わるものがあるはずです。私は初心者であることを知っています。しかし...そのチュートリアルから学ぼうとしています。その非常にロックされ、特定の設定に依存しています。したがって、NetBeansを学ぶ必要があります。それから私は自分のサーバーをあきらめて、多分Glassfishに移動する必要があります。実行するサンプルコードを見つけて、最も簡単な方法から学ぶ必要はありませんでした。サーバーで実行できませんでした。代わりに、mavenビルドと呼ばれるものに遭遇しました。私が試したと思ったのですが、その結果日食はナッツになります!aparently私もMavenを学ぶ必要があり、この、他と悪魔がgrandmoこと...
ガキ

@brat:回答には代替案と本へのリンクが含まれています。
BalusC

上手。多くをカバーする1つだけ。Coreserv ...あちこちでスニペットを拾わなければなりませんでした。私は今、公式のJavaEEでいっぱいになりました:)ダウンロードする必要があるSDKを見つけるためだけに、サンプルコードを実行するには、JDK 10で動作しないGlassFishサーバーがあります:(、起動時にNullPointerException。ハックスタックオーバーフロー.comが見つかりました。/ questions / 47458119 /…そして、私はダウンロードする必要があります...などなど。私は、学習のためにフープを飛び越えなければならないために、少しばかり落ち込んでいるだけなのだと思います。初心者x)の乾杯:)。
ガキ

28

正確に何を学ぶ必要がありますか?

最低限、

  • Java言語
  • Java、データベースアクセス用のJDBCを含むAPI
  • IDE、またはテキストエディタ+ Ant
  • Java EE、基本的にはサーブレットとJSP
  • サーブレットコンテナ(Tomcatなど)

TomcatはJavaに適したWebサーバーのようです。

「まとも」です。EJBに慣れていない場合は、他に何も学ぶ必要はないでしょう。Glassfish 3は最近かなりクールに見えますが、まだあまり遊んでいません。これはWebサーバーより「多い」ことに注意してください。これはサーブレットコンテナーです(つまり、サーブレットテクノロジーを使用してアプリを実行できます)。

Webにはどのようなオプションがありますか?

約十億の異なるフレームワーク。本当に、どれを選ぶかは本当に「難しい」。それらすべてを試すのは非常に魅力的ですが、最終的には実行不可能です。

ORMには休止状態があることは知っています。

私はやや反ORMですが、「完全な」ORMが必要な場合はHibernateが必要です。また、SpringのJDBCサポートやiBatisなどの「部分的な」ORMを試すこともできます。

JavaにはMVCがありますか?JSPはどうですか?MVCとJSPを一緒にすることはできますか?豆?

はい、ほとんどのJava WebフレームワークはMVCを実行します。SpringのMVCは素晴らしいですが、他には何もお勧めできません(特に、Struts 1ではありません)。JSPは単なるHTML(またはXML)テンプレートエンジンです。Javaコードが埋め込まれた旧式のJSPはクールではありません。タグファイルとライブラリを備えた最新のJSPは非常に優れています。

ほとんどのフレームワークでは、JSPを使用してVsをレンダリングできると思います。SpringのMVCとStrutsはそうします。他のものを使用できるようにするものもあります(Velocity、Freemarkerなど)。

Beansはオブジェクトの規約にすぎません。基本的に、これはゲッターとセッター(またはいくつかの代替手段)を使用していて、いくつかのルールに従っていることを意味します。これらにより、特定のツールでオブジェクトを操作できるようになります。典型的な例はGUIです。一部のツールでは、任意のBeanを編集するためのGUIコンポーネントを構築できます(つまり、フォームをレンダリングしてフィールドを編集します)。


16

HTML、CSS、JavaScriptが必要です-Web開発のすべての通常の容疑者。

TomcatにはWebサーバーが組み込まれていますが、それはサーブレット/ JSPエンジンです。Apacheは純粋なWebサーバーです。

HTML出力を生成するサーブレットを生成するためのテンプレート言語であるJSPを学ぶ必要があります。スクリプトレットではなく、JSTLを使用して記述します。

CRUDアプリケーションを実行している場合は、JDBCとリレーショナルデータベースについて学ぶ必要があります。これは、Hibernateまたはその他のORMを構築する基盤であるため、Hibernateまたはその他のORMを試す前に行う必要があります。

JavaBeansは、Javaオブジェクトの単なる標準です。

準備ができているなら、Springフレームワークをお勧めします。


あなたはtomcatにWebサーバーが組み込まれていると言いますが、それ以外には何ですか?私はそれがすべてウェブサーバーだと思っていましたか?
mrblah

6
@mrblah-Tomcatはサーブレットエンジンです。これは、サーブレットクラス(JSPが変換されるクラス)を処理し、ブラウザに出力を提供するために作成されました。それとともに、Webサーバーと同じようにすべての通常のファイル(画像、html、cssなど)も提供します。これは、phpモジュールを備えたApacheに匹敵します。
Nemiの

13

JavaにはMVCがありますか?

JavaにはStruts2Spring MVCなどのさまざまなフレームワークがあります

JSPはどうですか?

JSPはテンプレートライブラリです。FreeMarkerVelocityのように試すことができる代替手段はほとんどありません。AFAIK Freemarkerは、優れたテンプレートライブラリとして出現しています。JSPよりも軽量です。このFreeMarkerを確認してください:JSPのオープンな代替手段-JavaWorld

MVCとJSPを一緒にすることはできますか?

私は前述のフレームワークとしてMVCを採用しています。すべてのフレームワークはJSPをサポートしていますが、それぞれのフレームワークのドキュメントで他のテンプレートライブラリのサポートを確認する必要があります。AFAIK Struts2はFreemarkerを非常によくサポートしています。

豆?

私はそれについてあまり知りません。しかし、Beanを使用すると、フォームデータをデータベースに直接マップできます。

多分これらすべてをカバーする本ですか?

各フレームワークには独自の本があります。以下のためのStruts2の - Strutsのアクションで2

String MVC -SpringおよびSpring MVCの本を推奨するこれらの質問を見てください。SpringフレームワークSpring Books に関する本の提案:どちらを選択するか

Fremarkerには非常に優れたドキュメントがあります-FreeMarker マニュアル

JavaでのWeb開発の開始 -

代替テキスト

http://www.amazon.com/SCWCD-Exam-Study-Kit-Certification/dp/1930110596


5

私は従来のJava Web開発オプションのほとんどをかなり重いと考えており、いくつかの良い代替案があります。

  • Playは、軽量でわかりやすく、迅速な開発を可能にすることに重点を置いたMVCフレームワークであり、より動的なJVMベースの言語とは対照的に、純粋なJavaにこだわっています。それはかなり新しいですが、すでに印象的であり、良いコミュニティが急速にそれを中心に構築されています。

  • Grailsは、Ruby on Railsに触発されたMVCフレームワークであり、Javaベースのスクリプト言語であるGroovyで作成され、使用されています。Grailsは成熟していて、堅牢で、広く尊敬されており、強力なコミュニティを持っています。Groovyは基本的にJavaのスーパーセットであり、より良い構文とクロージャーなどのいくつかの優れた機能を備えているので、Groovyを学ぶことはJavaを学ぶための素晴らしい方法です。

  • RESTful Webサイト/サービス/アプリケーションを構築する必要がある場合、Restletは素晴らしいフレームワークです—私は大ファンです。シンプルでわかりやすく、しかも柔軟性があります。素晴らしいコミュニティも。

  • GoogleのApp Engineも興味深いオプションです。それはホストされているので、興味があってもなくてもかまいませんが、かなりシンプルなAPIと優れたSDKを備えています。

他にもきっとあると思いますが、これらは頭上から考えることができるものです。

頑張って楽しんでね!


ああ、そして私は先日プルデンスを発見しました:threecrickets.com/prudence
Avi Flax

3

私はPHP / Cプログラミングであり、Javaプログラミングに固有のすべてのクラスとパラダイムを学習しなくても、Javaに飛び込むことができるグルーヴィーな方法を見つけました。Groovyを使用すると、Javaと利用可能なすべてのツール/フレームワーク/ライブラリの詳細を学ぶために時間をかけながら、迅速に生産性を高めることができました。


3

html、css、xml、javascriptなどで作業しない場合。

Vaadinフレームワークを試してください。十分に文書化されており、簡単に学習でき、見栄えの良いUIを簡単な方法で作成できます。(Javaコードを記述するだけです。もちろん、サーブレットサーバーが必要です。TomcatまたはJettyで結構です)


2

javaを学んだ方がいい。次にServletとJSPを学んだ。次にMVCの場合は、StrutsやSpring、またはその他のjava / java対応のフレームワークに行く。


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.