การพัฒนาเว็บ Java EE ฉันต้องเริ่มจากที่ใดและต้องใช้ทักษะใดบ้าง [ปิด]


216

ฉันต้องการเรียนรู้อย่างน้อยในระดับพื้นฐานวิธีการสร้างเว็บแอปพลิเคชัน Java (มาจากพื้นหลัง. NET) ฉันต้องการที่จะสามารถสร้างปรับใช้แอปพลิเคชันประเภท CMS อย่างง่าย ๆ ตั้งแต่เริ่มต้น

ฉันต้องเรียนรู้อะไรอย่างแน่นอน

Tomcat ดูเหมือนจะเป็นเว็บเซิร์ฟเวอร์ที่ดีสำหรับ Java

เว็บมีตัวเลือกอะไรบ้าง? ฉันรู้ว่ามีไฮเบอร์เนตสำหรับออม

Java มี MVC หรือไม่ แล้วJSPล่ะ? MVC และ JSP สามารถอยู่ด้วยกันได้หรือไม่? NetBeans ?

อาจเป็นหนังสือที่ครอบคลุมสิ่งเหล่านี้ทั้งหมดหรือไม่?

คำตอบ:


261

(อัปเดตเมื่อ มี.ค. 2563)

ก่อนอื่น "Java EE" เปลี่ยนชื่อเป็น " Jakarta EE " ตั้งแต่เดือนกันยายน 2562 โดยเริ่มจากเวอร์ชั่น 8 ในอดีตยังมีคำว่า "J2EE" ซึ่งครอบคลุมรุ่น 1.2 จนถึง 1.4 "การ Java EE" ปกคลุมรุ่น 5 จนกว่า 8. ดูเพิ่มเติมJava Platform, Enterprise Edition ประวัติศาสตร์ในวิกิพีเดีย

ฉันต้องเรียนรู้อะไรอย่างแน่นอน

ฉันคิดว่าคุณคุ้นเคยกับเทคโนโลยีฝั่งไคลเอนต์เช่นHTML , CSSและJSดังนั้นฉันจะไม่พูดถึงรายละเอียดอย่างนั้น ฉันคิดว่าคุณคุ้นเคยกับ Java พื้นฐานแล้ว ติดตามThe Java Tutorialsของ Oracle และถ้าเป็นไปได้รับOCP หนังสือหรือหลักสูตรเช่นกัน

จากนั้นคุณสามารถเริ่มต้นด้วย JSP / Servlet เพื่อเรียนรู้แนวคิดพื้นฐานของการพัฒนาเว็บ Java บทแนะนำที่ดีสามารถพบได้ในบทช่วยสอน Java EE 5ของ Oracle บทที่ 3 - 8และที่ Coreservlets.com ( Beginner-IntermediateและAdvancedและJDBC ) โปรดทราบว่าตั้งแต่ Java EE 6, JSP จะถูกลบออกจากการสอน Java EE ในความโปรดปรานของ JSFและ JSP นั้นโดยทั่วไปจะไม่เปลี่ยนแปลงตั้งแต่นั้นมา นั่นเป็นเหตุผลที่คุณสามารถใช้บทช่วยสอน Java EE 5 ที่ค่อนข้างเก่าสำหรับเรื่องนี้ได้อย่างปลอดภัย สิ่งที่สำคัญที่สุดเกี่ยวกับ JSP คือความจริงที่ว่าการเขียนโค้ด Java ธรรมดาในไฟล์ JSP โดยใช้<%scriptlets %>นั้นหมดกำลังใจอย่างเป็นทางการตั้งแต่ปี 2003 ดูเพิ่มเติมวิธีหลีกเลี่ยงโค้ด Java ในไฟล์ JSP ได้อย่างไร ดังนั้นบทเรียนใด ๆ ที่ยังคงครอบคลุมสคริปต์สคริปท์ควรถูกข้ามไปเพราะมันจะนำคุณไปสู่การเรียนรู้วิธีปฏิบัติที่ไม่ดี

ใน Stack Overflow คุณสามารถค้นหาหน้า wiki ที่ดีเกี่ยวกับJSP , Servlets , JSTLและELที่คุณสามารถเรียนรู้สิ่งจำเป็นและค้นหาลิงก์ที่มีประโยชน์เพิ่มเติม


Tomcat ดูเหมือนจะเป็นเว็บเซิร์ฟเวอร์ที่ดีสำหรับ Java

มันคือ. อย่างไรก็ตามความสามารถนั้นมี จำกัด โดยพื้นฐานแล้วมันเป็น servlet container ของแบร์โบนโดยใช้เฉพาะส่วนของ JSP / Servlet ของ Java EE API ขนาดใหญ่ หากคุณต้องการไปที่ EJB หรือ JPA คุณต้องการเลือกอย่างอื่นเช่นWildFly , TomEE , Payara , Liberty , WebLogicเป็นต้นมิฉะนั้นคุณต้องใช้ Spring แทน Java EE มันเป็นไปไม่ได้เลยที่จะติดตั้ง EJB ใน servlet ภาชนะเปล่าโดยไม่ต้องดัดแปลงเอนจิ้นคอร์คุณต้องใช้ Tomcat ในการปรับแต่ง TomEE ดูเพิ่มเติมJava EE คืออะไร , วิธีการอย่างถูกติดตั้งและกำหนดค่าห้องสมุด JSF ผ่าน Maven? และวิธีการติดตั้งและใช้งาน CDI บน Tomcat


ฉันรู้ว่ามีไฮเบอร์เนตสำหรับออม

ก่อนหน้านี้ในยุค J2EE เมื่อ JPA ไม่มีตัวตนและ EJB2 นั้นแย่มากไฮเบอร์เนตเป็นเฟรมเวิร์กแบบสแตนด์อโลนและมักจะใช้ร่วมกับ Spring เพื่อแทนที่ EJB ตั้งแต่เปิดตัว JPA ใน Java EE 5 (2006), Hibernate ได้กลายเป็นการนำ JPA ไปใช้งาน คุณสามารถเรียนรู้ JPA ที่จาการ์ตา EE กวดวิชาส่วน VIII นอกจากนี้ EJB3 ยังได้รับการปรับปรุงให้ดีขึ้นมากจากบทเรียนที่เรียนรู้จาก Spring ดูเพิ่มเติมเมื่อใดจึงจำเป็นหรือสะดวกในการใช้ Spring หรือ EJB3 หรือทั้งหมดพร้อมกัน


Java มี MVC หรือไม่ แล้ว JSP ล่ะ? MVC และ JSP สามารถอยู่ด้วยกันได้หรือไม่? JavaBeans?

คุณสามารถแต่นั่นคือการคิดค้นใหม่ของวงล้อเมื่อมันมาถึงการผูกแบบจำลองด้วยมุมมอง (การแปลง, การตรวจสอบ, การเปลี่ยนผู้ฟัง ฯลฯ ) กรอบ MVC Java EE เรียกว่าJSF ก่อนหน้า Java EE 6 มันเคยใช้กับ JSP ซึ่งเป็นเทคโนโลยีมุมมองที่ค่อนข้างเก่า JSP จะถูกแทนที่ด้วยFacelets คุณสามารถเรียนรู้ JSF ที่จาการ์ตา EE ส่วนการกวดวิชาที่สามบทที่ 7-17 คุณสามารถใช้ JSF บน Tomcat ได้โดยที่คุณต้องติดตั้งแยกต่างหาก คำแนะนำในการติดตั้งสามารถดูได้ที่หน้าแรกของ Mojarra. WildFly, TomEE, Payara, Liberty, WebLogic และอื่น ๆ เนื่องจากเป็นการใช้งาน Java EE ที่สมบูรณ์แล้วให้บริการ JSF (และ CDI, BV, JSONP, JAX-RS, EJB, JPA และอื่น ๆ ) ดังนั้นคุณไม่จำเป็นต้อง ติดตั้งแยกต่างหาก ดูเพิ่มเติมวิธีติดตั้งและกำหนดค่าไลบรารี JSF อย่างถูกต้องผ่าน Maven ได้อย่างไร


อาจเป็นหนังสือที่ครอบคลุมสิ่งเหล่านี้ทั้งหมดหรือไม่?

มีหนังสือหลายเล่ม ฉันขอแนะนำให้เริ่มต้นด้วยหนังสือที่เน้นเรื่อง Jakarta EE โดยทั่วไปหนังสือที่เน้น JSF มากขึ้นและหนังสือที่เน้น JPAมากขึ้น ตรวจสอบให้แน่ใจว่าคุณเลือกหนังสือเล่มล่าสุดที่ครอบคลุมเรื่อง ก่อนอื่นให้ตรวจสอบเวอร์ชันล่าสุดที่มีอยู่จากนั้นตรวจสอบให้แน่ใจว่าหนังสือที่เลือกนั้นครอบคลุมเนื้อหานั้น ดังนั้นอย่าเลือกหนังสือเล่มเก่าสำหรับ Java EE 5 หรือ JSF 1.0 ขึ้นไปแน่นอนขณะนี้มี Jakarta EE 8 และ JSF 2.3 อยู่แล้ว

สุดท้าย แต่ไม่ท้ายสุดโปรดเพิกเฉยเว็บไซต์ตัวอย่างโค้ดที่ผู้ดูแลมือสมัครเล่นให้ความสนใจเป็นอันดับแรกในเรื่องรายได้โฆษณาแทนที่จะเป็นเรื่องการสอนเช่น roseindia, tutorialspoint, javabeat, journaldev, javatpoint, codejava และอื่น ๆ พวกเขาสามารถจดจำได้ง่าย ป้ายและ JSP โค้ดที่มีscriptlets

ดูสิ่งนี้ด้วย:


Greate! มีประโยชน์ขอบคุณ ใน. Net โดยปกติแล้วหนังสือของ Wrox Press สามารถครอบคลุมความรู้ทั้งหมดใน. net หนังสือที่หนามาก
gfan

5
StackOverflow ไม่มีคุณสมบัติการโพสต์พินหรือไม่? หวังว่ามันจะเป็นเช่นนั้นดังนั้นฉันจึงสามารถตอบคำถามนี้ได้ ขอบคุณ!
dww

มีอีกทางเลือกหนึ่งสำหรับการสอน JavaEE 5 ฉันรู้ว่าฉันเป็น noob และพวกเขาก็ทำได้ดีมาก แต่ ... พยายามเรียนรู้จากบทช่วยสอนนั้น มันถูกล็อคอย่างมากและขึ้นอยู่กับการตั้งค่าบางอย่าง ดังนั้นฉันต้องเรียนรู้ NetBeans จากนั้นฉันต้องยอมแพ้บนเซิร์ฟเวอร์ของฉันและย้ายไปที่ glassfish พยายามหารหัสตัวอย่างเพื่อเรียกใช้และเรียนรู้จากการใช้งานที่ง่ายที่สุด ฉันวิ่งเซิร์ฟเวอร์ไม่ได้ ฉันกลับพบกับบางสิ่งที่เรียกว่า maven build ฉันคิดว่าฉันลองซึ่งทำให้เกิดคราสจะ nutz! aparently ฉันต้องการที่จะเรียนรู้ Maven เป็นอย่างดีและที่อื่น ๆ และปีศาจ grandmo ...
สารเลว

@brat: คำตอบมีลิงค์ไปยังทางเลือกและหนังสือ
BalusC

ดี. คนเดียวที่ครอบคลุมมาก Coreserv ... ต้องไปรับตัวอย่างที่นี่และที่นั่น ฉันเข้ามาเต็มในกับ tutus JavaEE อย่างเป็นทางการในตอนนี้ :) เพียงเพื่อหา SDK ที่ต้องดาวน์โหลดเพื่อเรียกใช้โค้ดตัวอย่างมีเซิร์ฟเวอร์ GlassFish ที่ไม่ทำงานกับ JDK 10 :(, NullPointerException เมื่อเริ่มต้นพบแฮ็คstackoverflow.com / คำถาม / 47458119 / ...และดังนั้นฉันต้องดาวน์โหลด ... และอื่น ๆ ฉันเดาว่าฉันแค่ลงไปเล็กน้อยแล้วก็รับการกระโดดข้ามห่วงเพื่อเรียนรู้ :( พวกเขาไม่ทำให้มันง่ายสำหรับ noobs x). ไชโย :)
brat

28

ฉันต้องเรียนรู้อะไรอย่างแน่นอน

น้อยที่สุด

  • Java ภาษา
  • Java API รวมถึง JDBC สำหรับการเข้าถึงฐานข้อมูล
  • IDE หรือโปรแกรมแก้ไขข้อความ + Ant
  • Java EE โดยทั่วไป servlets และ JSP
  • ภาชนะ servlet (เช่น Tomcat)

Tomcat ดูเหมือนจะเป็นเว็บเซิร์ฟเวอร์ที่ดีสำหรับ Java

มันคือ "ดี" หากคุณไม่ได้เป็น EJB คุณอาจไม่จำเป็นต้องเรียนรู้อะไรอีกเลย Glassfish 3 ดูเหมือนจะค่อนข้างเย็นเมื่อเร็ว ๆ นี้ แต่ฉันยังไม่ได้เล่นกับมันมาก หมายเหตุมันเป็น "มากกว่า" มากกว่าเว็บเซิร์ฟเวอร์ เป็นคอนเทนเนอร์ servlet (หมายถึงสามารถเรียกใช้แอพโดยใช้เทคโนโลยี servlet)

เว็บมีตัวเลือกอะไรบ้าง?

เกี่ยวกับกรอบที่แตกต่างกัน zillion จริง ๆ การเลือกหนึ่งเป็น "ยาก" มันเป็นเรื่องที่ดึงดูดมาก ๆ ที่จะลองพวกเขาทั้งหมด

ฉันรู้ว่ามีไฮเบอร์เนตสำหรับออม

ฉันค่อนข้างต่อต้าน ORM แต่ไฮเบอร์เนตเป็นสิ่งที่คุณต้องการถ้าคุณต้องการ ORM "เต็ม" คุณยังสามารถลอง ORM แบบ "บางส่วน" เช่นการสนับสนุน JDBC ของ Spring หรือ iBatis

Java มี MVC หรือไม่ แล้ว JSP ล่ะ? MVC และ JSP สามารถอยู่ด้วยกันได้อย่างไร ถั่ว?

ใช่เว็บเฟรมเวิร์ก Java ส่วนใหญ่ทำ MVC MVC ของ Spring นั้นดี แต่ฉันไม่สามารถแนะนำสิ่งอื่นได้ (โดยเฉพาะอย่างยิ่งไม่ใช่ Struts 1!) JSP เป็นเพียงเครื่องมือสร้างเทมเพลต HTML (หรือ XML) Old-school JSP ที่มีโค้ด Java ฝังตัวคือ uncool JSP ที่ทันสมัยพร้อมไฟล์แท็กและไลบรารีค่อนข้างดี

ฉันคิดว่ากรอบงานส่วนใหญ่จะให้คุณใช้ JSP เพื่อแสดงผล Vs ของคุณ MVC และ Struts ของ Spring ทำ บางคนจะให้คุณใช้อย่างอื่นด้วย (ความเร็ว, Freemarker, ฯลฯ )

ถั่วเป็นเพียงแบบแผนสำหรับวัตถุ โดยทั่วไปหมายความว่าคุณกำลังใช้ตัวรับและตัวตั้งค่า (หรือตัวเลือกอื่น ๆ ) และคุณกำลังทำตามกฎบางอย่าง สิ่งเหล่านี้จะช่วยให้วัตถุของคุณได้รับการจัดการโดยเครื่องมือบางอย่าง ตัวอย่างทั่วไปคือ GUI เครื่องมือบางอย่างจะช่วยให้คุณสร้างส่วนประกอบ GUI เพื่อแก้ไข beans ที่กำหนดเอง (เช่นพวกเขาจะแสดงฟอร์มเพื่อแก้ไขฟิลด์)


16

คุณต้องการ HTML, CSS และ JavaScript - ผู้ต้องสงสัยตามปกติทั้งหมดสำหรับการพัฒนาเว็บ

Tomcat จะมีเว็บเซิร์ฟเวอร์ในตัว แต่มันเป็น servlet / เครื่องยนต์ Apache เป็นเว็บเซิร์ฟเวอร์ที่บริสุทธิ์

คุณต้องเรียนรู้ JSP ซึ่งเป็นภาษาที่สร้างเทมเพลตสำหรับการสร้างเซิร์ฟเล็ตที่สร้างเอาต์พุต HTML คุณจะต้องการเขียนโดยใช้ JSTL ไม่ใช่ scriptlets

หากคุณกำลังใช้งานแอพพลิเคชั่น CRUD คุณจะต้องเรียนรู้ JDBC และฐานข้อมูลเชิงสัมพันธ์ คุณควรทำเช่นนั้นก่อนที่จะลอง Hibernate หรือ ORM อื่น ๆ เพราะเป็นรากฐานที่พวกเขากำลังสร้าง

JavaBeans เป็นเพียงมาตรฐานสำหรับวัตถุ Java

หากคุณพร้อมแล้วฉันขอแนะนำ Spring framework


คุณบอกว่า Tomcat มีเว็บเซิร์ฟเวอร์ในตัวแล้วมีอะไรอีกบ้าง? ฉันคิดว่ามันเป็นเว็บเซิร์ฟเวอร์หรือเปล่า?
mrblah

6
@mrblah - Tomcat เป็นเอ็นจิ้น servlet มันถูกสร้างขึ้นเพื่อประมวลผลคลาสเซิร์ฟเล็ต (ซึ่งเป็นสิ่งที่ jsp กลายเป็น) และให้บริการผลลัพธ์ไปยังเบราว์เซอร์ นอกจากนั้นยังให้บริการไฟล์ปกติ (รูปภาพ, html, css, ฯลฯ ) เช่นเดียวกับที่เว็บเซิร์ฟเวอร์ทำ มันเปรียบได้กับ Apache พร้อมกับโมดูล PHP
Nemi

13

Java มี MVC หรือไม่

Java มีกรอบงานที่แตกต่างกันเช่นStruts2 , Spring MVC

แล้ว JSP ล่ะ?

JSPเป็นไลบรารีเทมเพลต มีทางเลือกบางอย่างที่คุณอาจจะลองเหมือนFreeMarkerและความเร็ว AFAIK Freemarkerเป็นไลบรารีเทมเพลตที่ดี น้ำหนักเบากว่าJSP ตรวจสอบFreeMarkerนี้: ทางเลือกที่เปิดให้ JSP - JavaWorld

MVC และ JSP สามารถอยู่ด้วยกันได้อย่างไร

ฉันใช้ MVC เป็นกรอบที่กล่าวถึงก่อนหน้านี้ เฟรมเวิร์กทั้งหมดมีการสนับสนุน JSP แต่คุณต้องตรวจสอบการสนับสนุนสำหรับไลบรารีเทมเพลตอื่น ๆ ในเอกสารประกอบเฟรมเวิร์กที่เกี่ยวข้อง AFAIK Struts2 ที่ให้การสนับสนุน Freemarker เป็นอย่างดี

ถั่ว?

ฉันไม่รู้เกี่ยวกับเรื่องนี้มากนัก แต่การใช้ beans เราสามารถแมปข้อมูลในแบบฟอร์มกับฐานข้อมูลโดยตรง

อาจเป็นหนังสือที่ครอบคลุมสิ่งเหล่านี้ทั้งหมดหรือไม่?

แต่ละกรอบมีหนังสือของตัวเอง สำหรับStruts2 - Struts 2 ในการใช้งานจริง

String MVC - ดูคำถามเหล่านี้แนะนำหนังสือสำหรับ Spring และ Spring MVC คำแนะนำหนังสือสำหรับ Spring frameworkและSpring Books: เลือกอันไหน

Fremarkerมีเอกสารที่ดีมาก - FreeMarker Manual

สำหรับการเริ่มต้นพัฒนาเว็บไซต์ใน Java -

ข้อความแสดงแทน

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


5

ฉันพิจารณาตัวเลือกการพัฒนาเว็บ Java แบบดั้งเดิมส่วนใหญ่จะค่อนข้างหนักและมีทางเลือกที่ดี:

  • Playเป็นเฟรมเวิร์ก MVC ซึ่งเน้นไปที่น้ำหนักเบาตรงไปตรงมาและเปิดใช้งานการพัฒนาอย่างรวดเร็ว - ในขณะที่ใช้จาวาบริสุทธิ์ล้วนๆเมื่อเทียบกับภาษาที่ใช้ JVM แบบไดนามิกมากขึ้น มันค่อนข้างใหม่ แต่ก็น่าประทับใจอยู่แล้วและชุมชนที่ดีก็สร้างมันขึ้นมาอย่างรวดเร็ว

  • Grailsเป็นกรอบ MVC ซึ่งได้รับแรงบันดาลใจจาก Ruby on Rails ซึ่งเขียนขึ้นและใช้เป็นภาษาGroovyซึ่งเป็นภาษาสคริปต์ที่ใช้ภาษาจาวา Grails เป็นผู้ใหญ่ที่แข็งแกร่งและเป็นที่ยอมรับอย่างกว้างขวางในชุมชนที่เข้มแข็ง Groovy นั้นเป็นชุดของ Java ที่มีไวยากรณ์ที่ดีกว่าและคุณสมบัติที่ยอดเยี่ยมบางอย่างเช่นการปิดดังนั้นการเรียนรู้มันจึงเป็นวิธีที่ยอดเยี่ยมในการเรียนรู้ Java

  • หากคุณต้องการ / ต้องการสร้างเว็บไซต์ / บริการ / แอพพลิเคชั่นสงบเงียบRestletเป็นกรอบที่ยอดเยี่ยม - ฉันเป็นแฟนตัวยง มันง่ายตรงไปตรงมาและมีความยืดหยุ่น ชุมชนที่ดีเช่นกัน

  • App Engine ของ Googleเป็นตัวเลือกที่น่าสนใจเช่นกัน มันเป็นโฮสต์ซึ่งอาจหรือไม่เป็นที่สนใจ แต่มี API ค่อนข้างง่ายและ SDK ที่ดี

ฉันแน่ใจว่ามีคนอื่น ๆ แต่สิ่งเหล่านี้เป็นสิ่งที่ฉันสามารถนึกได้จากส่วนหัวของฉัน

ขอให้โชคดีและสนุก!


โอ้และฉันเพิ่งค้นพบความรอบคอบวันอื่น ๆ : threecrickets.com/prudence
Avi Flax

3

ฉันเป็นโปรแกรมภาษา PHP / C และฉันพบว่ามันช่วยให้ฉันสามารถกระโดดเข้าสู่ Java ได้โดยไม่ต้องเรียนรู้ในชั้นเรียนและกระบวนทัศน์ทั้งหมดที่มีอยู่ในการเขียนโปรแกรมจาวา Groovy ทำให้ฉันทำงานได้อย่างรวดเร็วในขณะที่ใช้เวลาในการเรียนรู้เพิ่มเติมเกี่ยวกับ java และเครื่องมือ / กรอบ / ไลบรารีทั้งหมดที่มีอยู่


3

หากคุณไม่เคยทำงานกับ html, css, xml, javascript ฯลฯ

ลองใช้กรอบงานVaadinเป็นเอกสารที่ดีเรียนรู้ง่ายและทำให้ UI ดูดีในวิธีที่ง่าย (เพียงเขียนโค้ด Java แน่นอนคุณต้องใช้เซิร์ฟเวอร์ servlet Tomcat หรือ Jetty ก็ใช้ได้)


2

ดีกว่าคุณเรียนรู้ java จากนั้นคุณเรียนรู้ Servlets และ JSP จากนั้นไปที่ MVC คุณไปที่ Struts หรือ Spring หรือกรอบงานที่เปิดใช้งาน java / java อื่น ๆ


0

ตั้งแต่คุณยังใหม่กับ Java ฉันขอแนะนำให้คุณเรียนรู้ภาษาพื้นฐานก่อน วิธีนี้จะช่วยคุณได้ไม่ว่าคุณจะเลือกใช้แอปพลิเคชันเว็บในด้านใด

แหล่งข้อมูลออนไลน์ที่ดีคือบทแนะนำ Sun Java - http://java.sun.com/docs/books/tutorial/

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.