Apakah saya perlu tahu servlets dan JSP untuk belajar spring atau hibernate atau framework web java lainnya? [Tutup]

17

Saya telah bertanya kepada banyak orang di mana untuk mulai belajar pengembangan web java, saya sudah tahu inti java (Threading, Generics, Collections, sedikit pengalaman dengan (JDBC)) tetapi saya tidak tahu JSP dan servlets. Saya melakukan pengembangan yang adil dengan beberapa aplikasi berbasis web menggunakan PHP untuk sisi server dan HTML, CSS, Javascript, HTML5 untuk sisi klien.

Kebanyakan orang yang saya minta mengatakan kepada saya untuk langsung menuju Hibernate sementara beberapa orang mengatakan kepada saya bahwa saya tidak perlu belajar servlet dan jsps dan saya harus segera mempelajari kerangka kerja Spring. Apakah ini benar? Apakah saya tidak perlu mempelajari servlets dan JSP untuk belajar hibernate atau Spring?

Semua jawaban mereka membingungkan saya dan sekarang saya benar-benar kehilangan apa yang harus dipelajari atau dipelajari. Saya merasa bahwa jika saya berhenti belajar JSP dan servlets saya akan kehilangan banyak konsep penting yang pasti akan membantu saya di masa depan.

Jadi pertanyaannya, apakah saya perlu memiliki fondasi / tahu servlets dan JSP untuk belajar spring atau hibernate atau kerangka kerja web java lainnya.?

KyelJmD
sumber
3
Perhatikan bahwa hibernate hanyalah lapisan abstraksi basis data, tidak lebih, dan dapat digunakan untuk menyambungkan sumber data ke segala jenis aplikasi java, bukan hanya aplikasi web.
Ed Griebel
1
Mengetahui tentang servlets dan JSP tidak ada salahnya, lihat "Head First - Servlets and JSP". Membaca mudah dipahami, tetapi juga mencakup banyak.
Jaydee
@Jaydee Saat ini saya sedang menuju Core Servlets dan JSP oleh Marty Hall + servlet dan JSP Murach.
KyelJmD
Saya kira pertanyaan ini belum dijawab dengan baik. Bear Bibeault, seorang pengembang dan penulis terkenal bersikeras bahwa seseorang mempelajari JSP dan Servlets sebelum mempelajari kerangka APAPUN. Adakah yang peduli untuk menunjukkan mengapa itu mungkin atau mungkin tidak berlaku hari ini? Inilah posnya - coderanch.com/t/521300/JSP/java/JSP-servlets-struts
Borat Sagdiyev
Oke, saya mendapat jawaban Bear Bibeault. Lihat dua tautan ini - coderanch.com/t/633527/Spring/… dan coderanch.com/t/633526/JSP/java/…
Borat Sagdiyev

Jawaban:

17

Jika Anda memiliki pemahaman yang baik tentang HTML, CSS, dan JavaScript, Anda memiliki kaki di banyak orang yang akhirnya melakukan pengembangan web. Konsep di balik JSP sangat mirip dengan PHP. Keunikannya berbeda. Servlet adalah nama untuk sepotong kode Java yang melayani permintaan. Itu benar-benar. Seluruh kerangka kerja Struts asli adalah servlet tunggal.

Saya akan menambahkan Tomcat atau Jetty ke daftar teknologi Anda untuk belajar. Tomcat adalah implementasi Java Servlet Container asli dan kebetulan juga merupakan server web berfitur lengkap dan agak populer. GlassFish dibangun di atasnya. Saya telah menggunakan Jetty daripada Tomcat dalam proyek-proyek baru saya karena lebih sederhana, lebih fleksibel, dan lebih cepat. Jetty dirancang untuk membuat layanan web yang bertentangan dengan aplikasi web. Tetapi aplikasi web hanyalah layanan web yang menyajikan HTML sebagai respons terhadap permintaan HTTP mentah, jadi jika Anda memahami HTTP (yang dapat Anda pelajari bagian-bagian penting dalam beberapa jam hingga sehari), ini sangat mudah untuk dikerjakan.

Anda dapat membuat situs web kecil dengan Tomcat dan JSP ( tutorial di sini atau JSF) mengetahui apa yang Anda ketahui dan menghabiskan beberapa jam melalui tutorial. Dengan begitu Anda bisa mulai di mana Anda merasa nyaman sebelum berbaring. Kemudian buat javax.servlet.http.HttpServlet yang menulis "<html> <head> <title> Hai </title> </head> <body> <h1> Hello World </h1> </body> </ html > "ke objek respons, daftarkan di Tomcat web.xml Anda dan kirim permintaan HTTP dari browser web. Itu bukan ilmu roket. Semua kerangka kerja Java adalah variasi dari dua aktivitas dasar tersebut.

Jika Anda pergi ke rute Dermaga, itu bahkan kurang terstruktur. Lihatlah contoh Hello Jetty ini .

Jika Anda hanya akan membuat blog atau situs e-commerce standar, saya akan mulai dengan SquareSpace atau Wordpress atau sesuatu. Anda mendapatkan begitu banyak dari rak, tidak ada cara untuk membenarkan pengkodean kustom semua itu lagi.

Kekuatan Java untuk aplikasi web adalah keandalannya, rawatannya, dan kinerjanya. PHP atau Ruby / Rails lebih sederhana, tetapi Java akan skala sebanyak yang Anda inginkan. Saya tidak terpesona oleh salah satu kerangka kerja web Java. Ketika Anda memiliki tim orang yang bekerja pada aplikasi web besar, atau Anda perlu menggunakan Hibernate, maka kerangka kerja seperti Spring benar-benar bersinar. Musim semi adalah yang paling populer. Ketika Anda memiliki sedikit pengetahuan tentang servlets dan JSP / JSF, maka pelajari bagaimana Spring mengikat mereka bersama dengan model data.

Jika Anda membuat blog atau sistem manajemen konten, mungkin Anda bisa lolos dengan database NoSQL. Tapi saya berpendapat bahwa database NoSQL pada dasarnya hanya lapisan caching pada sistem file, daripada mengganti database relasional. Saya pikir itu jarang bahwa proyek yang cocok untuk database NoSQL akan sesuai untuk dikembangkan di Jawa.

Hal-hal yang masih memerlukan kustom, kode kinerja tinggi (dalam Java, PHP, apa pun) mungkin akan memiliki basis data relasional / SQL yang mendukungnya. Saya akan merekomendasikan Anda untuk terbiasa dengan SQL dan JDBC (Java Database Connectivity) terlebih dahulu. Setelah Anda merasa nyaman dengan dunia objek Java, dan dunia database relasional dan SQL, maka Anda dapat mempelajari Ebean / JPA (Java Persistence API) / ORM (Object to Relational Mapping) yang menghubungkan dunia objek ke dunia relasional.

ORM rumit dan aneh. Sebagian besar akhirnya sepadan dengan perjuangan. Ebean adalah yang paling sederhana yang saya tahu. Saya lebih nyaman dengan itu setelah 8 bulan daripada saya dengan Hibernate setelah 12 tahun. Saya tahu banyak orang yang menggunakan Spring dengan Hibernate dan mereka tampaknya tidak memiliki masalah, atau bahkan sangat menyadari apa itu Hibernate, jadi saya akan mengatakan jika Anda akan menggunakan Hibernate, lakukan melalui Spring. Mungkin hanya karena saya sudah bekerja lebih lama, saya berhasil mematikan Hibernate dengan beberapa peta hash untuk pengujian, yang mengagumkan (tinjauan umum tersedia berdasarkan permintaan).

Anda sudah memiliki beberapa keterampilan paling penting. Ambil yang lain satu per satu dan cobalah untuk tidak kewalahan.

GlenPeterson
sumber
apakah Anda memiliki tautan atau tutorial di mana saya dapat mulai mempelajari teknologi tersebut? atau mungkin saran yang bagus untuk buku. Sebagian besar aplikasi yang saya buat menggunakan RDBMS, dari SQL Server ke MySQl sederhana.
KyelJmD
Saya membersihkan jawaban saya dan menambahkan tautan seperti yang diminta. Hibernate / JPA dan berbagai kerangka kerja web membutuhkan waktu untuk belajar dan menguasai. Sebagian besar teknologi lainnya, Anda sudah cukup tahu bahwa Anda harus dapat bekerja dalam beberapa jam atau sehari. Saya tidak tahu Spring, tetapi periksa dokumentasi di situs web mereka atau dapatkan buku berperingkat tinggi di Amazon.
GlenPeterson
Saya tidak melihat bagaimana ini menjawab pertanyaan. Bear Bibeault, seorang pengembang dan penulis terkenal bersikeras bahwa seseorang mempelajari JSP dan Servlets sebelum mempelajari kerangka APAPUN. Peduli untuk menunjukkan mengapa itu mungkin atau mungkin tidak berlaku hari ini? Inilah posnya - coderanch.com/t/521300/JSP/java/JSP-servlets-struts
Borat Sagdiyev
@GlenPeterson, "Seluruh kerangka kerja Struts asli adalah servlet tunggal." berarti? Bukankah itu membuat setiap panggilan http lambat?
Pacerier
@Pacerier Kami biasa memuat Struts 1 di Tomcat sebagai servlet. Servlet Controller Struts akan mengirim permintaan berbeda ke utas berbeda dengan cara yang sama seperti yang dilakukan server web, hanya pada tingkat servlet alih-alih level kontainer. Saya membayangkan biaya overhead yang minimal. Yang cenderung paling lambat adalah panggilan basis data. 2nd paling lambat, membangun HTML dan mengembalikannya ke klien. Pada saat itu populer untuk menggunakan server terpisah untuk konten statis untuk kecepatan, jadi itu berhasil.
GlenPeterson
4

Saya akan menyarankan belajar tentang JSP dasar dan Servlets karena akan membantu Anda memahami konsep-konsep yang disederhanakan di Spring. Karena Anda memiliki pengalaman dengan CGI berbasis PHP, sebagian besar JSP / Servlets hanya akan berbeda cara melakukan hal-hal yang Anda kenal sehingga harus berjalan cukup cepat. Hal tersulit yang mungkin Anda temukan adalah mengambil idiom unik di dunia java.

Sejauh Hibernate berjalan, saya akan setuju dengan MebAlone dan mengatakan mempelajarinya jika Anda perlu, tetapi jika sudah diatur Anda dapat melakukan 90% dari apa yang Anda perlukan dengan hanya mengutip apa yang telah dilakukan orang lain.

Ed Griebel
sumber
2

Kedengarannya seperti Anda ingin belajar pengembangan web sisi server dengan java. Ada sejumlah kerangka kerja. Spring MVC sebenarnya yang paling populer, dewasa, fitur lengkap, dan kerangka kerja yang baik untuk diketahui. Spring MVC dan kerangka kerja java lainnya mengabstraksi java servlet API dari programmer - jadi secara teknis Anda tidak perlu mengetahuinya. Tetapi saya akan menyarankan untuk mempelajari dasar-dasarnya - khususnya kelas-kelas utama. Sehari belajar harus mengantarmu ke sana.

Adapun JSP, jika Anda tahu PHP Anda sudah memahami hal-hal yang penting. JSP adalah versi java dari skrip sisi server.

Hibernate adalah implementasi (yang paling populer) dari JPA, yang merupakan java spec untuk objek yang ada ke RDBMS. Dengan ledakan popularitas NOSQL db's (Hadoop, Mongo, dll), Hibernate jauh lebih sedikit dari 'harus tahu' daripada 18 bulan yang lalu. Secara pribadi saya belajar teknologi penyimpanan berdasarkan kebutuhan-untuk-tahu karena ada banyak, dan Anda kehilangan apa yang tidak Anda gunakan.

MebAlone
sumber
Buku apa yang bisa Anda sarankan untuk Spring MVC? apa bedanya taruhan Spring dan Spring MVC?
KyelJmD
Spring adalah tumpukan teknologi java yang mencakup berbagai proyek. Spring MVC adalah kerangka kerja sisi server. Dokumentasi dan contoh aplikasi Spring online adalah cara terbaik untuk belajar Spring MVC.
MebAlone
2

Jawaban singkat: tidak, Anda tidak perlu mempelajari Servlets dan JSP sebagai prasyarat untuk Spring MVC dan banyak kerangka kerja web Java lainnya.

Mari Hibernate keluar dari gambar terlebih dahulu. Ini adalah kerangka kerja ketekunan dan tidak ada hubungannya dengan Servlets dan JSP.

Servlet API adalah level terendah untuk hampir semua kerangka kerja web Java. Bahkan JSP dikompilasi ke servlets.

Spring MVC adalah lapisan di atas Servlet API dengan banyak ekstensi bermanfaat dan integrasi dengan Spring Core. Anda bisa menggunakan JSP sebagai mekanisme rendering untuk Spring MVC. Tutorial Spring MVC akan membawa Anda sepenuhnya dari bawah ke atas untuk membuat aplikasi web. Seiring berjalannya waktu, Anda akan belajar tentang JSP, dan Anda akan diperlengkapi dengan baik untuk memahami Servlet API juga.

Yuriy Zubarev
sumber
tutorial buku atau video apa yang akan Anda sarankan untuk belajar Spring MVC?
KyelJmD
1
@YuriyZubarev - Saya tidak melihat bagaimana ini menjawab pertanyaan. Bear Bibeault, seorang pengembang dan penulis terkenal bersikeras bahwa seseorang mempelajari JSP dan Servlets sebelum mempelajari kerangka APAPUN. Peduli untuk menunjukkan mengapa itu mungkin atau mungkin tidak berlaku hari ini? Inilah posnya - coderanch.com/t/521300/JSP/java/JSP-servlets-struts
Borat Sagdiyev
-1

sepertinya Anda terjebak pada masalah yang saya hadapi baru-baru ini. Tujuan saya adalah mempelajari pengembangan sisi server dengan Java. Jadi, saya mulai dengan servlets, mengerti cara kerjanya dan menulis beberapa program sederhana untuk dijalankan di server TomCat. TomCat, adalah prasyarat. Anda pasti harus terbiasa dengan TomCat jika Anda ingin melangkah lebih jauh. Sejauh menyangkut struts2 atau Spring, struts2 dan spring adalah kerangka kerja yang dibangun di atas servlets, yang membuat memiliki pemahaman yang mendalam tentang servlets penting jika Anda ingin menjadi kuat di dasar-dasar. Saya mulai dengan tutorial Java Brains. Untuk pemula, tutorial ini luar biasa. Beberapa karya Jakob Jenkov di blognya juga sangat mengagumkan. Struts2 dan Spring menjadi lebih sederhana ketika Anda tahu servlets. Sejauh menyangkut hibernasi, saya sarankan Anda untuk mulai benar-benar akrab dengan JDBC. Pergi bertahap, servlets, struts, JDBC, Spring, Hibernate. Semoga jawaban saya membantu :).

Chan_k
sumber
posting ini agak sulit dibaca (dinding teks). Maukah Anda mengeditnya menjadi bentuk yang lebih baik?
nyamuk