Java を使用した Web 開発を開始しようとしています。基本的な Java の知識があるので問題ありませんが、Web アプリケーションで使用するさまざまなテクノロジを解読することになると途方にくれます。
どのようなオプションを利用できますか? それらはどのように機能しますか?単純化するために使用できる Django/Ruby on Rails に似たフレームワークはありますか?
利用可能なものを理解するのに役立つリンクは、非常に高く評価されます。
Java を使用した Web 開発を開始しようとしています。基本的な Java の知識があるので問題ありませんが、Web アプリケーションで使用するさまざまなテクノロジを解読することになると途方にくれます。
どのようなオプションを利用できますか? それらはどのように機能しますか?単純化するために使用できる Django/Ruby on Rails に似たフレームワークはありますか?
利用可能なものを理解するのに役立つリンクは、非常に高く評価されます。
Javaフレームワークには、2つの基本的なフレーバーがあります。1つは「アクション」フレームワークと呼ばれ、もう1つは「コンポーネント」フレームワークと呼ばれます。
アクションフレームワークは、HTTPリクエストをJavaコード(アクション)にマッピングし、HTTPリクエストをJavaオブジェクトにバインドすることに特化しています。サーブレットは、アクションフレームワークの最も基本的なものであり、他のすべてのフレームワークが構築される際の基本です。
Strutsは最も人気のあるアクションフレームワークですが、良心的に誰にもお勧めすることはできません。Struts 2とStripesはより現代的で、互いに非常に似ています。どちらも構成が軽く、箱から出してすぐに使用でき、非常に優れたバインディング機能を提供します。
コンポーネントフレームワークはUIに重点を置いており、高レベルのUIコンポーネント(ボタン、リストボックスなど)に基づいて、よりイベント駆動型のアーキテクチャを促進する傾向があります。フレームワークは、実際のHTTPリクエストをいくつかのレイヤーの下でコーダーから隠す傾向があります。これらにより、より高度なUIの開発がはるかに簡単になります。.NETは、Windowsのコンポーネントフレームワークです。Javaでは、一般的なコンポーネントフレームワークはJSF(標準)とWicketです。
原則として、「Webサイト」を作成する場合。これは、情報の提示(ブログやコミュニティサイトなど)に似ているため、アクションフレームワークの方がうまく機能します。これらのサイトは単純で、頻繁にブックマークされ、「きれいなURL」が必要になる傾向があります。これは通常、アクションフレームワークを使用した方が簡単です。
コンポーネントフレームワークは、多くのUI要素と複雑なワークフローを備えたバックオフィスアプリケーションなどにはるかに適しています。特にツールを使用すると、これらのスタイルのアプリがコンポーネントフレームワークを使用してより速く連携することがわかります。ただし、コンポーネントフレームワークには、より複雑なリクエストワークフローがあり、非表示の状態や多くのPOSTアクションなどに依存する場合があります。多くの場合、「恐ろしい」URLがあり、ブックマークが難しいページが作成されることがあります。
両方のフレームワークを両方のタスクに使用できますが、一部のフレームワークが他のフレームワークよりもタスクに適しています。
これらのフレームワークはいずれも永続性に直接対応していませんが、多くのフレームワークには、JPA/EJB3またはHibernateと緊密に連携する拡張モジュールまたはイディオムがあります。
基本的な Java Web テクノロジーはサーブレットです。サーブレットを使用すると、さまざまな HTTP イベント (doGet、doPost、doPut など) に応答する Java コードを記述できます。これらは通常、MVC アーキテクチャのコントローラーに使用されます。リンク: http://java.sun.com/products/servlet/
JSP を使用すると、(サーブレットで) 逆に Java を埋め込んで HTML を記述できます。JSP は JSF を介して拡張され、最新のアーキテクチャの進歩を取り入れています。これは PHP や ASP と同じ行にあります。これは、MVC アーキテクチャのビュー部分です。リンク: http://java.sun.com/developer/technicalArticles/GUI/JavaServerFaces/
より複雑なアプリケーションの多くは、セッション管理やクラスタリングなどに Enterprise Java Beans (EJB) を利用しています。これは、それ自体は Web テクノロジではありませんが、より複雑な Web アプリケーションを処理する際に密接に関連していることがわかります。代替手段には、Spring などのフレームワークが含まれます。EJB: http://docs.jboss.org/ejb3/app-server/tutorial/ Spring: http://www.springframework.org/
また、ORM テクノロジ (サーブレットと JSP/JSF の後) に慣れる必要があります。現在、主要な ORM フレームワークは Hibernate です。これにより、SQL テーブルを Java オブジェクトにマップし、それに応じて対話することができます。これはより高度な内容なので、EJB/Spring などについて理解しようとするときのために保存しておいてください。リンク: http://www.hibernate.org/
編集: ORM を定義するのを忘れていました。これは Object Relational Mapping/Mapper の略です (使用したい "Map" のバージョンに関係なく :)
Java クラスのロジックに裏打ちされた JSP から始めます。または、サーブレットを使用します。
JSP とサーブレットを使用する利点は、すべてのフレームワークが内部で何をしているのかを理解できることです。そして、その特定のフレームワークで X を実行する方法を理解するには、その理解が不可欠です。
さらに、JSP は非常に簡単です。自分が何をしているのかを簡単に確認でき、ビジネス ロジックでビューを台無しにすると非常に簡単に確認できます。
そして、かなり多くのフレームワーク (Struts、Spring MVC) がビュー テクノロジとして JSP を使用しています。これは、Java を使用した Web 開発の自然な第一歩です。
Django for Java ほど優れたものがあるかどうかはわかりませんが、Spring には J2EE 上に構築された軽量の Web フレームワークがあります。
http://www.springframework.org/about
Spring のコア機能に基づいて構築された、柔軟な MVC Web アプリケーション フレームワーク。このフレームワークは、戦略インターフェイスを介して高度に構成可能であり、JSP、Velocity、Tiles、iText、POI などの複数のビュー テクノロジに対応しています。Spring 中間層は、Struts、WebWork、Tapestry などの他の Web MVC フレームワークに基づく Web 層と簡単に組み合わせることができることに注意してください。
Jboss Seamを試すことができます:http ://www.seamframework.org/Documentation/GettingStarted
EclipeをIDEとして使用している場合は、Jboss Toolsを介して適切に統合するか、Seamに付属のSeam-Genツールを使用できます。これにより、データベーステーブル(または複数のテーブル)を定義し、いくつかの簡単なコマンドを使用して、そこから実行可能なWebプロジェクト全体を構築できます。ボールを転がすのに良い方法です。
サーブレットと JSPから始める必要があります。Java には多くの Web フレームワークがあり、それらはすべてこれら 2 つの技術に基づいています。
すでに Ruby On Rails を知っている場合は、JRubyでそれを使用し、 Warblerで Java サーバー (Tomcat など) にデプロイできます。
純粋な Java では、Wicketは優れたアプローチを採用しており、非常に人気が高まっています。
また、Java Server Faces
これは非常に自由回答形式の質問です。簡単な答えは「はい」です。HTTP 要求レベルでの記述から Java のコンテンツ管理システムまで、あらゆることを行うためのフレームワーク、ライブラリ、および標準があります。
そのために、JVM で他の言語 (Python、Ruby など) を使用することもできます。
Java のみのテクノロジーについては、JSP/サーブレット、Struts、Struts2 (Webwork の更新バージョン)、Spring MVC、Tapestry、web4j、Wicket を調べてください。
JVM 上に構築されたフレームワークは他にもありますが、Grails などの Java 以外の言語を使用しています。
まず、Eclipse (最新バージョン) と Tomcat をダウンロードします。Eclipse で新しい Web アプリケーションを作成します。あなたが始めることができる ガイドがあります。
JSP とサーブレットがどのように機能するかを学ぶことから始めます。これらは少し低レベルであり、実際にはフレームワークではありませんが、すぐに使い始めることができます。そこから、フレームワークを調査して選択します。
Spring MVC のセットアップと実行は非常に簡単です。他にもいると確信しています。
J2EE が標準です。これを使用して、Java Server Pages、サーブレット、および EJB を使用してアプリを構築できます。
Struts は、JSP とサーブレットを使用する非常に人気のあるフレームワークでもあります。セットアップが少し難しいですが、中規模のサイトには非常に適したオプションです。
一般に、Java はよりコンポーネント ベースです。つまり、すべてを実行するフレームワークはありません (たとえば、データベース アクセス フレームワークを自分で選択する必要があります)。データ アクセスについては、Hibernate または iBATIS をお勧めします。
フロントエンドには文字通り何百ものフレームワークがあります。JSF、Wicket、Struts 2、Stripes を調べてください。どれを使用しても、それぞれの強みが異なるため、特定のニーズによって異なります。
そして、ビジネスレイヤーについては、非常に包括的で優れたリファレンスガイド/チュートリアルがあるSpring Frameworkをお勧めします:)