springまたはhibernateまたはその他のJava Webフレームワークを学習するには、サーブレットとJSPを知る必要がありますか?[閉まっている]


17

私は多くの人々にJava Web開発の学習を始める場所を尋ねてきましたが、コアJava(スレッド、ジェネリック、コレクション、(JDBC)の少しの経験)はすでに知っていますが、JSPとサーブレットは知りません。サーバーサイドにPHPを使用し、クライアントサイドにHTML、CSS、Javascript、HTML5を使用するいくつかのWebベースのアプリケーションで、開発の公平な配分を行いました。

私が尋ねたほとんどの人は、Hibernateにすぐに飛びつくように私に言ったが、一部の人は私がサーブレットとjspを学ぶ必要はなく、すぐにSpringフレームワークを勉強すべきだと言った。これは本当ですか?休止状態またはSpringを学習するためにサーブレットとJSPを学習する必要はありませんか?

彼らの答えはすべて私を混乱させ、今私は何を学ぶか勉強するかを完全に失います。JSPとサーブレットの学習をスキップした場合、将来役立つと思われる多くの重要な概念を見逃してしまうと思います。

だから、質問は、spring / hibernateまたは他のJava Webフレームワークを学ぶために、基礎と知識のサーブレットとJSPが必要ですか?


3
hibernateは単なるデータベース抽象化レイヤーであり、それ以上のものではないことに注意してください。これは、Webアプリケーションだけでなく、あらゆる種類のJavaアプリにデータソースをプラグインするために使用できます。
エドグリベル

1
サーブレットとJSPを知っていても害はありません。「Head First-Servlets and JSP」をご覧ください。読みやすいが、多くをカバーしています。
ジェイディー

@Jaydee現在、Marty Hall + MurachのサーブレットとJSPでコアサーブレットとJSPを率いています。
KyelJmD

この質問には十分に答えられていないと思います。Bear Bibeault、よく知られている開発者と著者は、フレームワークを学ぶ前にJSPとサーブレットを学ぶことを主張しています。誰がそれが今日適用可能かどうかを示すことに関心がありますか?こちらが彼の投稿です-coderanch.com/t/521300/JSP/java/JSP-servlets-struts
Borat Sagdiyev

さて、からいくつかの回答を得ましたBear Bibeault。-これらの二つのリンクを参照してくださいcoderanch.com/t/633527/Spring/...coderanch.com/t/633526/JSP/java/...
ボラットSagdiyev

回答:


17

HTML、CSS、およびJavaScriptを十分に理解していれば、最終的にWeb開発を行う多くの人々に足を踏み入れることができます。JSPの背後にある概念は、PHPに非常に似ています。癖は異なります。サーブレットは、リクエストを処理するJavaコードのチャンクの名前です。それは本当にそれです。元のStrutsフレームワーク全体が単一のサーブレットでした。

学習するテクノロジーのリストにTomcatまたはJettyを追加します。Tomcatは元のJavaサーブレットコンテナの実装であり、完全な機能を備えた人気のあるWebサーバーでもあります。GlassFishはその上に構築されています。新しいプロジェクトでは、Tomcatの代わりにJettyを使用しています。これは、Jettyがシンプルで、柔軟性があり、高速であるためです。Jettyは、WebアプリではなくWebサービスを作成するために設計されました。ただし、Webアプリは生のHTTPリクエストに応答してHTMLを提供するWebサービスにすぎないため、HTTP(数時間から1日で重要な部分を学習できる)を理解していれば、非常に簡単に作業できます。

TomcatとJSP(こちらのチュートリアルまたはJSF)を使用して小さなWebサイトを作成し、自分が知っていることだけを知って、チュートリアルを数時間費やしてください。そうすれば、ストレッチする前に快適な場所から始めることができます。次に、「<html> <head> <title> Hi </ title> </ head> <body> <h1> Hello World </ h1> </ body> </ html」と記述するjavax.servlet.http.HttpServletを作成します。 >」を応答オブジェクトに追加し、Tomcat web.xmlにリストして、WebブラウザーからHTTP要求を送信します。それはロケット科学ではありません。すべてのJava Webフレームワークは、これら2つの基本的なアクティビティのバリエーションです。

Jettyルートに行くと、さらに構造化されていません。このHello Jettyの例をご覧ください。

ブログや標準のeコマースサイトを作成するだけの場合は、SquareSpaceWordpressなどから始めます。既製のものがたくさんあるので、カスタムコーディングを正当化する方法はもうありません。

Webアプリケーション用のJavaの強みは、信頼性、保守性、およびパフォーマンスです。PHPまたはRuby / Railsはよりシンプルですが、Javaは必要に応じて拡張できます。私は、Java Webフレームワークに夢中になりません。大規模なWebアプリケーションで作業しているチームがある場合、またはHibernateを使用する必要がある場合は、Springのようなフレームワークが本当に優れています。春が最も人気があります。サーブレットとJSP / JSFにある程度精通している場合は、Springがそれらをデータモデルとどのように結び付けるかを学びます。

ブログやコンテンツ管理システムを作成している場合は、NoSQLデータベースを使用することもできます。しかし、NoSQLデータベースは基本的に、リレーショナルデータベースを置き換えるのではなく、ファイルシステム上の単なるキャッシュレイヤーであると主張します。NoSQLデータベースに適したプロジェクトがJavaでの開発に適していることはまれだと思います。

カスタムの高性能コード(Java、PHPなど)を引き続き必要とするものには、おそらくそれらを強化するリレーショナル/ SQLデータベースが必要です。最初にSQLとJDBC(Java Database Connectivity)の基本的な知識を習得することをお勧めします。Javaオブジェクトの世界、およびリレーショナルデータベースとSQLの世界に慣れたら、オブジェクトの世界をリレーショナルの世界に接続するEbean / JPA(Java Persistence API)/ ORM(オブジェクトからリレーショナルへのマッピング)を学習できます。

ORMはトリッキーで奇妙です。ほとんどは最終的に闘争の価値があります。Ebeanは私が知っている最も単純なものです。12年後にHibernateを使用するよりも、8か月後に使用する方が快適です。HibernateでSpringを使用する多くの人々を知っていますが、彼らは問題を抱えていないか、Hibernateが何であるか、または何をしているのかを特に意識していないようです。春まで。たぶん私がそれをもっと長く使ったからといって、テストのためにいくつかのハッシュマップを使ってHibernateを完全にスタブアウトすることに成功しました。

すでに最も重要なスキルをいくつか持っています。他の人を1つずつ連れて行き、圧倒されないようにしてください。


上記のテクノロジーの学習を開始できるリンクまたはチュートリアルはありますか?または本のための良い提案。私が作成したほとんどのアプリケーションは、SQL Serverから単純なMySQlまで、RDBMSを使用しています。
KyelJmD

回答を整理し、要求に応じてリンクを追加しました。Hibernate / JPAおよびさまざまなWebフレームワークは、学習と習得に時間がかかります。他のほとんどの技術については、すでに十分に知っているので、数時間または1日で作業できるはずです。私はSpringを知らないが、彼らのウェブサイトでドキュメントをチェックするか、Amazonで高評価の本を入手する。
グレンペターソン

これがどのように質問に答えているのかわかりません。Bear Bibeault、よく知られている開発者と著者は、フレームワークを学ぶ前にJSPとサーブレットを学ぶことを主張しています。それが今日適用可能かどうかを示すために気をつけてください?こちらが彼の投稿です-coderanch.com/t/521300/JSP/java/JSP-servlets-struts
Borat Sagdiyev

@GlenPeterson、「元のStrutsフレームワーク全体が単一のサーブレットでした。」意味?すべてのhttp呼び出しが遅くなりませんか?
Pacerier

@Pacerier以前はTomcatでStruts 1をサーブレットとしてロードしていました。Strutsコントローラーサーブレットは、コンテナーレベルではなくサーブレットレベルで、Webサーバーと同じように異なる要求を異なるスレッドに送信します。オーバーヘッドは最小だったと思います。最も遅くなる傾向があるのは、データベース呼び出しです。2番目に遅く、HTMLを構築してクライアントに返します。当時、速度を上げるために静的コンテンツ用に別のサーバーを使用することが一般的だったため、うまくいきました。
グレンペターソン

4

Springで簡素化された概念を理解するのに役立つため、基本的なJSPとサーブレットについて学習することをお勧めします。PHPベースのCGIの経験があるため、JSP /サーブレットのほとんどは、慣れ親しんだことを行う方法が異なるだけなので、かなり迅速に処理されるはずです。あなたが見つけるかもしれない最も難しいことは、Javaの世界でユニークなイディオムを拾うことです。

Hibernateに関する限り、私はMebAloneに同意し、必要に応じて学習すると言いますが、既に設定されている場合は、他の人が行ったことを切り取るだけで必要なものの90%を実行できます。


2

Javaでサーバー側のWeb開発を学びたいようです。いくつかのフレームワークがあります。実際、Spring MVCは最も人気があり、成熟しており、非常に多機能で、知っておくと良いフレームワークです。Spring MVCおよびその他のJava Webフレームワークは、プログラマからJavaサーブレットAPIを抽象化します。したがって、技術的にはそれを知る必要はありません。しかし、基本、特に重要なクラスを学ぶことをお勧めします。勉強の日はそこに着く必要があります。

JSPに関しては、PHPを知っているなら、あなたはすでに本質を理解しています。JSPは、サーバー側スクリプトのJavaバージョンです。

HibernateはJPAの実装(最も一般的)です。これは、オブジェクトをRDBMSに永続化するためのJava仕様です。NOSQL db(Hadoop、Mongoなど)の人気が爆発的に高まっているため、Hibernateは18か月前よりも「知っておくべき」ものではありません。個人的に私はストレージ技術を知る必要があるので学びます。なぜならそれらはたくさんあり、あなたはあなたが使わないものを失うからです。


Spring MVC向けにどのような本を提案できますか?SpringとSpring MVCの違いは何ですか?
KyelJmD

Springは、さまざまなプロジェクトを含むJavaテクノロジースタックです。Spring MVCはサーバー側のWebフレームワークです。Spring MVCを学習するには、Springのオンラインドキュメントとサンプルアプリケーションが最適な方法です。
MebAlone

2

簡単な答え:いいえ、Spring MVCや他の多くのJava Webフレームワークの前提条件としてサーブレットとJSP 学ぶ必要ありません。

最初にHibernateを画像から削除しましょう。これは永続層フレームワークであり、サーブレットやJSPとは何の関係もありません。

サーブレットAPIは、ほぼすべてのJava Webフレームワークの最低レベルです。JSPでさえ、サーブレットにコンパイルされます。

Spring MVCは、多くの便利な拡張機能とSpring Coreとの統合を備えたServlet API上のレイヤーです。JSPは、Spring MVCのレンダリングメカニズムとして使用できます。Spring MVCチュートリアルでは、Webアプリを作成するための最初から最後まで説明します。進むにつれて、JSPについて学習し、サーブレットAPIも理解できるようになります。


Spring MVCを学ぶために、どの本またはビデオチュートリアルをお勧めしますか?
KyelJmD


1
@YuriyZubarev-これが質問にどのように答えるかわかりません。Bear Bibeault、よく知られている開発者と著者は、フレームワークを学ぶ前にJSPとサーブレットを学ぶことを主張しています。それが今日適用可能かどうかを示すために気をつけてください?こちらが彼の投稿です-coderanch.com/t/521300/JSP/java/JSP-servlets-struts
Borat Sagdiyev

-1

私が最近直面した問題に悩まされているようです。私の目標は、Javaを使用したサーバー側の開発を学ぶことでした。そこで、私はサーブレットから始め、その動作を理解し、TomCatサーバーで実行する簡単なプログラムをいくつか作成しました。TomCatは、前提条件です。さらに先に進みたい場合は、TomCatに精通している必要があります。struts2またはSpringに関しては、struts2とspringはサーブレット上に構築されたフレームワークであるため、基本に強くなりたい場合はサーブレットを深く理解することが不可欠です。Java Brainsチュートリアルから始めました。初心者にとって、これらのチュートリアルは素晴らしいです。Jakob Jenkovの彼のブログのいくつかの作品も本当に素晴らしいです。サーブレットを知っていれば、Struts2とSpringはよりシンプルになります。休止状態に関する限り、JDBCに精通していることから始めることをお勧めします。サーブレット、ストラット、JDBC、Spring、Hibernateを段階的に実行します。私の答えが役立つことを願っています:)。


この投稿は読みにくい(テキストの壁)。それをより良い形に編集してもいいですか?
ブヨ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.