Pengembangan web Java EE, di mana saya memulai dan keterampilan apa yang saya butuhkan? [Tutup]

216

Saya ingin belajar, setidaknya di tingkat dasar, bagaimana membangun aplikasi web Java (berasal dari latar belakang .NET). Saya ingin dapat membangun, menggunakan aplikasi tipe CMS sederhana dari bawah ke atas.

Apa sebenarnya yang harus saya pelajari?

Tomcat tampaknya merupakan server web yang bagus untuk Java.

Opsi apa yang ada untuk web? Saya tahu ada Hibernate untuk ORM.

Apakah Java memiliki MVC? Bagaimana dengan JSP ? Bisakah MVC dan JSP bersama? NetBeans ?

Mungkin buku yang membahas semua ini?

mrblah
sumber

Jawaban:

261

(Diperbarui Mar 2020)

Pertama-tama, "Java EE" sejak Sep 2019 telah diubah namanya menjadi " Jakarta EE ", dimulai dengan versi 8. Secara historis, ada juga istilah "J2EE" yang mencakup versi 1.2 hingga 1.4. "Java EE" mencakup versi 5 hingga 8. Lihat juga Platform Java, Edisi Perusahaan, Sejarah di Wikipedia .

Apa sebenarnya yang harus saya pelajari?

Saya berasumsi bahwa Anda sudah terbiasa dengan teknologi sisi klien seperti HTML , CSS dan JS , jadi saya tidak akan menjelaskannya secara terperinci. Saya juga berasumsi bahwa Anda sudah terbiasa dengan Java dasar. Ikuti Oracle's The Java Tutorials dan jika mungkin, dapatkan buku atau kursus OCP juga.

Kemudian Anda bisa mulai dengan JSP / Servlet untuk mempelajari konsep dasar pengembangan web Java. Tutorial yang baik dapat ditemukan di tutorial Java EE 5 Oracle bagian II bab 3 - 8 dan di Coreservlets.com ( Pemula-Menengah dan Lanjutan, juga JDBC ). Perhatikan bahwa sejak Java EE 6, JSP dihapus dari tutorial Java EE yang mendukung JSF dan JSP pada dasarnya tidak berubah sejak saat itu. Itu sebabnya Anda bisa menggunakan tutorial Java EE 5 yang cukup lama untuk ini. Yang paling penting berkenaan dengan JSP adalah fakta bahwa menulis kode Java sederhana dalam file JSP menggunakan <%scriptlets %>secara resmi tidak dianjurkan sejak tahun 2003. Lihat juga Bagaimana cara menghindari kode Java dalam file JSP? Jadi setiap tutorial yang masih mencakup scriptlets harus dilewati karena pasti akan membawa Anda ke dalam spiral belajar praktik buruk.

Di sini, di Stack Overflow, Anda juga dapat menemukan halaman wiki yang bagus tentang JSP , Servlets , JSTL dan EL di mana Anda dapat mempelajari hal-hal yang penting dan menemukan tautan yang lebih berguna.


Tomcat tampaknya merupakan server web yang bagus untuk Java.

Ini. Namun kemampuannya terbatas. Ini pada dasarnya adalah wadah servlet barebones, hanya menerapkan bagian JSP / Servlet dari Java EE API yang besar. Jika Anda ingin menggunakan EJB atau JPA, maka Anda ingin memilih yang lain, misalnya WildFly , TomEE , Payara , Liberty , WebLogic , dll. Jika tidak, Anda harus menggunakan Spring alih-alih Java EE. Itu berarti tidak mungkin untuk menginstal EJB dalam wadah servlet barebones tanpa memodifikasi mesin inti, Anda akan dalam kasus Tomcat pada dasarnya akan menciptakan kembali TomEE. Lihat juga Apa sebenarnya Java EE? , Bagaimana cara menginstal dan mengkonfigurasi pustaka JSF dengan benar melalui Maven? dan Bagaimana cara menginstal dan menggunakan CDI di Tomcat?


Saya tahu ada Hibernate untuk ORM.

Sebelumnya, selama era J2EE, ketika JPA tidak ada dan EJB2 mengerikan, Hibernate adalah kerangka kerja mandiri dan sering digunakan dalam kombinasi dengan Spring untuk menggantikan EJB. Sejak diperkenalkannya JPA di Java EE 5 (2006), Hibernate telah menjadi implementasi JPA. Anda dapat mempelajari JPA di tutorial EE Jakarta bagian VIII . Juga, EJB3 jauh lebih baik berdasarkan pelajaran dari Spring. Lihat juga Kapan perlu atau nyaman untuk menggunakan Spring atau EJB3 atau semuanya?


Apakah Java memiliki MVC? Bagaimana dengan JSP? Bisakah MVC dan JSP bersama? JavaBeans?

Anda bisa , tetapi itu banyak reinvention of the wheel ketika datang untuk mengikat model dengan tampilan (konversi, validasi, ganti pendengar, dll). Kerangka kerja MVC Java EE disebut JSF . Sebelum Java EE 6 digunakan untuk berjalan di JSP, yang merupakan teknologi tampilan yang cukup lama. JSP digantikan oleh Facelets . Anda dapat mempelajari JSF di tutorial EE Jakarta bagian III bab 7 - 17 . Anda juga dapat menggunakan JSF di Tomcat, Anda hanya perlu menginstalnya secara terpisah. Instruksi pemasangan dapat ditemukan di beranda Mojarra. WildFly, TomEE, Payara, Liberty, WebLogic, dll sebagai implementasi Java EE lengkap sudah menyediakan JSF (dan CDI, BV, JSONP, JAX-RS, EJB, JPA, dll) di luar kotak, jadi Anda tidak perlu pasang secara terpisah. Lihat juga Cara menginstal dan mengkonfigurasi pustaka JSF dengan benar melalui Maven?


Mungkin buku yang membahas semua ini?

Ada beberapa buku. Saya akan merekomendasikan untuk memulai dengan buku yang fokus pada Jakarta EE secara umum , buku yang lebih fokus pada JSF , dan buku yang lebih fokus pada JPA . Pastikan Anda memilih buku terbaru yang membahas topik tersebut. Pertama-tama selidiki versi terbaru yang tersedia dan kemudian pastikan bahwa buku yang dipilih mencakup itu. Jadi jangan memilih buku lama untuk Java EE 5 atau JSF 1.0 atau lebih, sementara saat ini sudah ada Jakarta EE 8 dan JSF 2.3 tersedia.

Last but not least, abaikan situs pengikis snipet kode yang dikelola oleh amatir dengan fokus utama pada pendapatan iklan alih-alih pada pengajaran, seperti roseindia, tutorialspoint, javabeat, javaldeat, javatpoint, codejava, dll. Mereka mudah dikenali oleh tautan iklan yang mengganggu / spanduk dan cuplikan kode JSP yang berisi skrip .

Lihat juga:

BalusC
sumber
Greate! berguna, terima kasih. Di .Net, biasanya buku Wrox Press dapat mencakup semua pengetahuan dalam .net. Buku yang sangat tebal.
gfan
5
Apakah StackOverflow tidak memiliki fitur Pin post? Berharap begitu, jadi saya bisa menyematkan jawaban ini. Terima kasih!
dww
Ada HAS untuk menjadi alternatif untuk tutorial JavaEE 5. Aku tahu aku noob, dan kamu semua sangat pandai dalam hal itu. Tapi ... Mencoba belajar dari tutorial itu. Sangat terkunci dan tergantung pada pengaturan tertentu. Jadi, saya perlu belajar NetBeans. maka saya harus menyerah di server saya dan prolly pindah ke glassfish, mencoba mencari samplecode untuk dijalankan dan belajar dari bukan yang paling mudah. Saya tidak bisa berjalan di server. sebaliknya saya bertemu dengan sesuatu yang disebut pakar bangunan. Saya pikir saya sudah mencoba yang mengakibatkan gerhana menjadi gila! aparently saya perlu belajar pakar juga, dan ini, bahwa yang lain dan nenek iblis ...
brat
@brat: jawabannya berisi tautan ke berbagai alternatif dan buku.
BalusC
Baik. Hanya satu yang mencakup banyak. Coreserv ... Harus mengambil cuplikan di sana-sini. Saya masuk penuh dengan tut JavaEE resmi sekarang :) Hanya untuk mengetahui SDK yang perlu diunduh, untuk menjalankan contoh kode memiliki server GlassFish yang tidak bekerja dengan JDK 10 :(, NullPointerException pada saat startup. Menemukan hack stackoverflow.com / pertanyaan / 47458119 / ... dan jadi saya harus mengunduh ... dan seterusnya dan seterusnya. Saya kira saya hanya sedikit turun dan bitchy karena harus melompat melalui lingkaran untuk belajar. :(. Mereka tidak membuatnya mudah untuk noobs x). Cheers :)
bocah
28

Apa sebenarnya yang harus saya pelajari?

Minimal,

  • Bahasa jawa
  • Java API, termasuk JDBC untuk akses basis data
  • IDE, atau editor teks + Ant
  • Java EE, pada dasarnya, servlets dan JSP
  • Wadah servlet (seperti Tomcat)

Tomcat tampaknya merupakan server web yang bagus untuk Java.

Itu "layak". Jika Anda tidak menyukai EJB, mungkin Anda tidak perlu mempelajari hal lain. Glassfish 3 tampaknya cukup keren akhir-akhir ini, tetapi saya belum banyak bermain dengannya. Perhatikan, ini "lebih" dari server web. Ini adalah wadah servlet (artinya dapat menjalankan aplikasi menggunakan teknologi servlet).

Opsi apa yang ada untuk web?

Tentang miliaran kerangka kerja yang berbeda. Sungguh, memilih satu benar-benar "sulit". Sangat menggoda untuk mencoba semuanya, tetapi pada akhirnya tidak mungkin.

Saya tahu ada hibernasi untuk ORM.

Saya agak anti-ORM, tetapi Hibernate adalah apa yang Anda butuhkan jika Anda membutuhkan ORM "penuh". Anda juga dapat mencoba "sebagian" ORM, seperti dukungan JDBC Spring atau iBatis.

Apakah java memiliki MVC? bagaimana dengan JSP? dapatkah MVC dan JSP bersama? kacang polong?

Ya, sebagian besar kerangka kerja web Java mengerjakan MVC. MVC Spring bagus, tetapi saya tidak bisa merekomendasikan hal lain (terutama, bukan Struts 1!). JSP hanyalah mesin templat HTML (atau XML). JSP sekolah lama, dengan kode Java tertanam tidak keren; JSP modern dengan file tag dan pustaka cukup bagus.

Saya kira sebagian besar kerangka kerja akan membiarkan Anda menggunakan JSP untuk membuat Vs Anda; MVC dan Struts Spring melakukannya. Beberapa akan membiarkan Anda menggunakan sesuatu yang lain juga (Velocity, Freemarker, dll.).

Kacang hanyalah konvensi benda. Pada dasarnya, ini berarti Anda menggunakan getter dan setter (atau beberapa alternatif) dan Anda mengikuti beberapa aturan. Ini harus membiarkan objek Anda dimanipulasi oleh alat tertentu. Contoh khas adalah GUI, beberapa alat akan memungkinkan Anda membangun komponen GUI untuk mengedit kacang sewenang-wenang (yaitu mereka akan membuat formulir untuk mengedit bidangnya).

alex
sumber
16

Anda membutuhkan HTML, CSS, dan JavaScript - semua tersangka yang biasa untuk pengembangan web.

Tomcat memang memiliki server web bawaan, tetapi ini adalah mesin servlet / JSP . Apache adalah server web murni.

Anda perlu mempelajari JSP, yang merupakan bahasa templating untuk menghasilkan servlet yang menghasilkan output HTML. Anda ingin menulisnya menggunakan JSTL, bukan scriptlets.

Jika Anda melakukan aplikasi CRUD, Anda harus mempelajari JDBC dan database relasional. Anda harus melakukan itu sebelum mencoba Hibernate atau ORM lainnya, karena itu adalah fondasi tempat mereka dibangun.

JavaBeans hanyalah standar untuk objek Java.

Jika Anda siap, saya akan merekomendasikan kerangka Spring.

Duffymo
sumber
Anda mengatakan kucing jantan memiliki server web bawaan, lalu apa lagi? saya pikir semua itu adalah server web?
mrblah
6
@ mrblah - Tomcat adalah mesin servlet. Itu dibuat untuk memproses kelas servlet (yang diubah menjadi jsp) dan melayani output ke browser. Bersamaan dengan itu, ia juga melayani semua file biasa (gambar, html, css, dll) seperti halnya server web. Ini sebanding dengan Apache dengan modul php.
Nemi
13

Apakah java memiliki MVC?

Java memiliki kerangka kerja yang berbeda seperti Struts2 , Spring MVC

bagaimana dengan JSP?

JSP adalah pustaka template. Ada beberapa alternatif yang bisa Anda coba seperti FreeMarker dan Velocity . AFAIK Freemarker adalah pustaka templat yang bagus. Lebih ringan dari JSP . Lihat FreeMarker ini : Alternatif terbuka untuk JSP - JavaWorld

dapatkah MVC dan JSP bersama?

Saya menggunakan MVC sebagai kerangka kerja yang disebutkan sebelumnya. Semua kerangka kerja memiliki dukungan untuk JSP tetapi Anda perlu memeriksa dukungan untuk pustaka templat lain dalam dokumentasi kerangka kerja masing-masing. AFAIK Struts2 memiliki dukungan yang sangat baik untuk Freemarker.

kacang polong?

Saya tidak tahu banyak tentang itu. Tetapi dengan menggunakan kacang, kita bisa langsung memetakan data formulir ke basis data.

Mungkin buku yang membahas semua ini?

Setiap kerangka kerja memiliki buku sendiri. Untuk Struts2 - Struts 2 dalam Aksi

String MVC - Lihatlah pertanyaan-pertanyaan ini merekomendasikan buku-buku untuk Spring dan Spring MVC. Saran buku untuk kerangka kerja Spring dan Buku Musim Semi: Yang mana yang harus dipilih

Fremarker memiliki dokumentasi yang sangat bagus - FreeMarker Manual

Untuk memulai pengembangan web di Jawa -

teks alternatif

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

Xinus
sumber
5

Saya menganggap sebagian besar opsi pengembangan web Java tradisional cukup berat, dan ada beberapa alternatif yang baik:

  • Play adalah kerangka kerja MVC yang difokuskan untuk menjadi ringan, lugas, dan memungkinkan pengembangan cepat - sambil tetap menggunakan Java murni, sebagai lawan dari bahasa berbasis JVM yang lebih dinamis. Ini cukup baru tetapi sudah mengesankan, dan komunitas yang baik telah membangun di sekitarnya dengan cepat.

  • Grails adalah kerangka kerja MVC, terinspirasi oleh Ruby on Rails, yang ditulis dalam, dan menggunakan, Groovy , bahasa scripting berbasis Java. Grails dewasa, kuat, dan dihormati, dengan komunitas yang kuat. Groovy pada dasarnya adalah superset dari Jawa, dengan sintaksis yang lebih baik dan beberapa fitur hebat seperti closure, jadi belajar itu adalah cara yang bagus untuk belajar Java.

  • Jika Anda ingin / ingin membangun situs / layanan / aplikasi RESTful , Restlet adalah kerangka kerja yang fantastis - Saya penggemar berat. Sederhana, lugas, namun fleksibel. Komunitas hebat juga.

  • Google App Engine juga merupakan opsi yang menarik. Di-host, yang mungkin atau mungkin tidak menarik, tetapi memiliki API yang cukup sederhana, dan SDK yang baik.

Saya yakin ada orang lain, tetapi ini adalah yang bisa saya pikirkan dari atas kepala saya.

Semoga berhasil dan selamat bersenang - senang!

Avi Flax
sumber
Oh, dan saya baru saja menemukan Prudence tempo
Avi Flax
3

Saya pemrograman PHP / C dan saya telah menemukan groovy memungkinkan saya untuk melompat ke Jawa tanpa mempelajari semua kelas dan paradigma yang melekat dalam pemrograman java. Groovy memungkinkan saya untuk menjadi produktif dengan cepat, sambil meluangkan waktu untuk mempelajari lebih lanjut tentang java dan semua alat / kerangka kerja / perpustakaan yang tersedia.

mr-sk
sumber
3

Jika Anda tidak ingin bekerja dengan html, css, xml, javascript dll.

Coba kerangka Vaadin , ini terdokumentasi dengan baik, mudah dipelajari dan memungkinkan untuk membuat UI yang tampak menarik dengan cara yang sederhana. (cukup tulis kode Java, tentu saja Anda memerlukan server servlet, Tomcat atau Jetty akan baik-baik saja)

mokrzu
sumber
2

Lebih baik Anda belajar java. Kemudian Anda belajar Servlets dan JSP. Lalu pergi untuk MVC Anda pergi ke Struts atau Spring atau kerangka kerja lain yang diaktifkan java / java.

SIVAKUMAR.J
sumber
0

Karena Anda baru mengenal Java, saya sangat menyarankan Anda mempelajari bahasa dasar terlebih dahulu. Ini akan membantu Anda terlepas dari teknologi apa yang Anda pilih untuk melakukan aplikasi web.

Sumber daya online yang bagus adalah Tutorial Java Java - http://java.sun.com/docs/books/tutorial/

Thorbjørn Ravn Andersen
sumber