สิ่งที่ต้องเรียนรู้สำหรับการสร้างเว็บแอปพลิเคชัน Java ใน Java EE 6 [ปิด]


103

เป้าหมายของฉันคือการสร้างเว็บแอปพลิเคชัน!

ฉันอ่านหนังสือ "Headfirst - Java" และ "Headfirst - Servlets and JSP" จบแล้ว

เนื่องจากหัวข้อนี้ (เว็บแอปพลิเคชัน) ใหญ่และซับซ้อนมากฉันจึงอยากถามว่าฉันควรเรียนรู้อะไรต่อไป ฉันรู้สึกเครียดเกินไปเมื่ออ่านคำพูดติดปากเช่น Java EE, EJB, JSF, JPA, Glassfish ... แต่ฉันจะไม่ยอมแพ้

ใครช่วยบอกหน่อยได้ไหมว่าฉันควรเรียนรู้อย่างไร ฉันควรจะซื้อหนังสือแบบนี้: เริ่มต้นแพลตฟอร์ม Java EE 6 ด้วย GlassFish 3: จากมือใหม่สู่มืออาชีพหรือฉันควรทำแบบฝึกหัดออนไลน์

ขอบคุณ!


1
เคยอ่านสองกระทู้ แต่อีกครั้ง: ในกระทู้มี แต่พูดว่า "learn Tomcat, JBoss, Hibernate, learn this or that, etc ... " เพียงแค่พูดด้วยคำพูด แต่ฉันอยากรู้ว่าควรเรียนหนังสือหรือบทช่วยสอนเล่มไหนดี อาจจะไม่มีวิธีนั้นและฉันต้องเรียนรู้มันอย่าง "ไม่มีประสิทธิภาพ" โดยมองหาทุกคำ ฉันหวังว่าจะได้รับคำแนะนำในการดำเนินการต่อ
creativz

1
ฉันขอแนะนำให้คุณเริ่มต้นด้วย Head First Servlets และ JSP หากคุณมีความรู้เกี่ยวกับ Core Java เป็นอย่างดี หากคุณไม่คุ้นเคยกับ Java เป็นภาษาการเขียนโปรแกรมก่อนอื่นคุณต้องได้รับความรู้เกี่ยวกับเรื่องนี้และดำเนินการต่อในการพัฒนา Web Application
Rachel

22
ยกเว้นว่าคำถามเหล่านี้จะล้าสมัยไปแล้วเนื่องจาก Java EE 6 หมด ...
Pascal Thivent

4
@ สตีเฟ่นฉันคิดว่ามีช่องว่างขนาดใหญ่โดยเฉพาะใน web part (ด้วย Servlet 3.0 หรือ JSF 2.0 และ CDI ที่มีการจัดการ)
Pascal Thivent

1
น่าขำที่คำถามทั่วไปที่ได้รับการโหวตสูงเช่นคำถามนี้ถูกปิดว่า "ไม่สร้างสรรค์" ฉันจะบอกว่าพวกเขาสร้างสรรค์มาก แต่ไม่ใช่เรื่องง่ายที่จะตอบอย่างสร้างสรรค์ พวกเขาช่วยให้เห็นภาพรวมของสิ่งที่กำลังทำหรือควรทำ แต่เป็นเรื่องดีที่พวกเขาได้รับอนุญาตให้อยู่ใน SO
jackthehipster

คำตอบ:


174

แม้ว่าฉันจะรู้ว่าสิ่งนี้จะขัดแย้งกัน แต่คำแนะนำของฉันก็คือเริ่มต้นด้วย Java EE 6 เท่านั้น ดังนั้นคว้า GlassFish v3 และทั้งได้รับหนังสือเล่มนี้เริ่มต้น Java EE 6 แพลตฟอร์ม GlassFish ที่ 3: จากสามเณรเพื่ออาชีพหรือทำตามJava EE 6 กวดวิชา ในความคิดของฉันหนังสือ (ที่ฉันเริ่มอ่านดังนั้นฉันจึงรู้ว่าฉันกำลังพูดถึงอะไร) ให้คำแนะนำเพิ่มเติมซึ่งอาจดีกว่าถ้า "ทุกอย่าง" เป็นของใหม่สำหรับคุณ (ครอบคลุมทั้งแพลตฟอร์ม Java EE และ API และสภาพแวดล้อมในการสร้างปรับใช้แอปพลิเคชันของคุณ)

ตอนนี้อย่างที่บอกไปว่าฉันได้ยินเสียงพูดอยู่แล้วเช่น"Java EE หนักใช้ Spring แทนเรียนรู้ Struts หรือ Wicket หรือ Stripes สำหรับเลเยอร์การนำเสนอเรียนรู้ Hibernate เพื่อความคงทนหรือไม่เพราะฉันไม่ชอบ ORM ใช้ iBatis หรือตรง JDBC แทน (คุณจะเห็นว่ามันเจ๋งมากกับ Spring Spring is so cooool) และใช้ Tomcat (และทำไมไม่ Jetty) หรือ JBoss หรือแค่ลืมสิ่งนี้ทั้งหมดแล้วไปที่ Grails และ bla bla bla ... " .

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

ดังนั้นเนื่องจากฉันคิดว่า Java EE 6 เป็นการปรับปรุงที่ยิ่งใหญ่กว่า Java EE เวอร์ชันก่อนหน้าเนื่องจากมีAPI มาตรฐานที่ดีมากสำหรับทุกความต้องการของคุณ (Servlet 3.0, JSF 2.0, JPA 2.0, EJB 3.1 lite, Bean Validation 1.0, CDI ฯลฯ ) เนื่องจาก API เหล่านี้ดีกว่าทั้งหมดเพราะไม่มีอะไรผิดปกติในการเรียนรู้เพราะนี่เป็นงานใหญ่อยู่แล้วเพราะคุณต้องเริ่มต้นที่ไหนสักแห่งฉันจะมุ่งเน้นไปที่ Java EE 6 เท่านั้นและลืม เฟรมเวิร์กอื่น ๆ สำหรับตอนนี้ อย่างแม่นยำยิ่งขึ้นฉันจะเริ่มต้นด้วยJava EE 6 Web Profile (แล้วเพิ่มสิ่งต่างๆหากคุณต้องการดำเนินการต่อไป)

การทำเช่นนี้ 1) คุณจะเริ่มต้นและเรียนรู้สิ่งใหม่ ๆ และ 2) คุณจะให้เวลากับกรอบงานและ / หรือเครื่องมืออื่น ๆ เพื่อปรับตัวและพิสูจน์ว่ายังมีความจำเป็นสำหรับพวกเขา และหากมีก็ยังคงต้องใช้เวลาทดลองผู้รอดชีวิตและคุณจะเข้าใจได้ดีขึ้นว่าทำไมพวกเขาถึงมีอยู่


3
ขอบคุณ. เกี่ยวกับหนังสือเล่มนี้ฉันไม่ได้อ่านทั้งหมด แต่ฉันแนะนำอย่างแน่นอนสำหรับทั้งนักพัฒนามือใหม่และนักพัฒนาที่ทดลองใช้ที่ต้องการภาพรวมที่ดีของ Java EE 6 หนังสือเล่มนี้สร้างมาอย่างดีครอบคลุม API มากมายจริงๆ (ไม่มาก ขาดหายไป) มีตัวอย่างโค้ดที่แสดงให้เห็นถึงทุกสิ่งที่นำเสนอมีการสอนจริงๆและอนุญาตให้ลงลึกเท่าที่คุณต้องการ ในอนาคตอาจมีหนังสือที่เน้นมากขึ้น แต่ก็เป็นหนังสือที่ดี
Pascal Thivent

23
+1 แต่ฤดูใบไม้ผลิมัน
เจ๋ง

13
อย่าตีความฉันผิด Stripes, Spring, Hibernate, ... เยี่ยมมาก แต่ตัวเลือกที่มากเกินไปอาจทำให้เกิดความสับสนเมื่อค้นพบสิ่งใหม่ ๆ และฉันเชื่อว่า Java EE 6 ช่วยให้คุณเริ่มต้นได้โดยไม่มีพวกเขา
Pascal Thivent

9
ฉันเห็นด้วยกับคุณการเรียนรู้ JEE stack เป็นสิ่งสำคัญมากแม้ว่าคุณจะไม่ได้ใช้งานใด ๆ ก็ตามหลังจากที่สแต็กทั้งหมดนั้นเป็นพื้นฐานสำหรับเฟรมเวิร์กที่ยอดเยี่ยมทั้งหมดซึ่งทำให้สิ่งต่างๆยอดเยี่ยมอย่างแท้จริงตัวอย่างเช่น Wicket สร้างขึ้นที่ด้านบนของ แนวคิดของ Front Controller ซึ่งในโลก Java หมายถึง Servlets และ Filters - หากคุณไม่รู้ว่าทำงานอย่างไรคุณจะไม่เข้าใจจริงๆว่า Wicket กำลังทำอะไรอยู่! เว้นแต่คุณจะยอมรับ"เวทมนตร์!" เป็นคำตอบแน่นอน
Esko

13
4 ปีต่อมา .... คุณจะเปลี่ยนอะไรเกี่ยวกับคำตอบของคุณหรือไม่?
jlars62

28

คำแนะนำของฉัน1คือหยุดอ่านหนังสือและเริ่มใช้สิ่งต่างๆ จากประสบการณ์ของฉันการเรียนหนังสือไม่ดีซึ่งทดแทนความรู้ที่คุณได้รับจากการลงมือทำสิ่งต่างๆ


1 - บริบท: นี่คือคำแนะนำสำหรับผู้ที่เพิ่งอ่านหนังสือสองเล่มในหัวข้อนี้จบและกำลังมองหาหนังสือเพิ่มเติมเพื่ออ่าน ในทางปฏิบัติคุณต้องสร้างสมดุลระหว่างการอ่านและการทำ โดยเฉพาะอย่างยิ่งถ้าคุณมีปัญหาเฉพาะที่คุณกำลังพยายามแก้ไข


29
แต่สามารถช่วยคุณประหยัดเวลาในการค้นหาได้หลายวัน ยังช่วยให้คุณมีความรู้เพียงพอที่จะตอบคำถามแทนที่จะถามพวกเขาและในที่สุดก็มีชื่อเสียงในที่นี้คุณไม่เห็นด้วยหรือ?
Muhammad Gelbana

6
ไม่ฉันไม่เห็นด้วย OP ได้อ่านหนังสือ Java / Java EE สองเล่มแล้ว ถึงเวลาแล้วที่เขาจะต้องเขียนโปรแกรม FWIW ฉันไม่ได้รับความรู้ส่วนใหญ่จากการอ่านหนังสือ แต่ฉันได้รับมัน PRIMARILY โดยการนำสิ่งต่าง ๆ ไปใช้และอ้างถึงเอกสารประกอบเมื่อฉันต้องการ คุณไม่ได้เรียนรู้ที่จะขี่จักรยานโดยการอ่านหนังสือ ... และคุณก็ไม่ได้เรียนรู้ทักษะการเขียนโปรแกรมด้วยวิธีนั้น
Stephen C

3
มันเป็นสิ่งสำคัญเพื่อความสมดุลและreading practice
smwikipedia

9

Java EE 6 น่าทึ่งจริงๆ ปัญหาเดียวคือมันมีอายุประมาณ 2 สัปดาห์และขณะนี้มีเพียง 1 ตู้เท่านั้นที่นำเสนอคุณสมบัติ - Glassfish

ฉันไม่มีอะไรเทียบกับ Glassfish ฉันใช้มันทั่วทุกที่มีอินสแตนซ์การผลิตหลายแบบฉันรักผลิตภัณฑ์และโครงการ

ที่กล่าวว่ารายละเอียดของ Java EE 6 ไม่ได้แปลกลับไปเป็น Java EE 5 บางอย่างทำได้หลายอย่าง แต่ Web Profile, Servlet 3.0, Bean types ใหม่, JPA 2 เป็นต้นสิ่งเหล่านี้ไม่มี

ดังนั้นโดยการเรียนรู้ Java EE 6 ก่อนคุณจะ จำกัด ตัวเองให้อยู่ในคอนเทนเนอร์เดียว กำลังจะมาอีก แต่พวกเขายังไม่มาที่นี่

Tomcat, JBoss, OpenEJB, Glassfish, Jetty, Resin, Geronimo และอื่น ๆ ทั้งหมดทำงานได้ดีกับข้อมูลจำเพาะ Java EE 5 (อย่างน้อยก็ส่วนต่างๆของข้อมูลจำเพาะที่รองรับ Tomcat ไม่มี EJB เป็นต้น)

ฉันนึกอะไรไม่ออกใน Java EE 5 ที่ไม่ได้ส่งต่อไปยัง Java EE 6 Java EE 6 ทำให้บางแง่มุมเก่า ๆ เป็นทางเลือกและสิ่งที่คุณจะไม่ได้เรียนรู้ในวันนี้ Java EE 6 ทำให้ Java EE 5 บางอย่างง่ายยิ่งขึ้น (โดยเฉพาะอย่างยิ่งบรรจุภัณฑ์เช่น EJB Lite)

เรียนรู้ Java EE 5 ตอนนี้เพื่อให้คุณสามารถนำสิ่งที่เรียนรู้ไปใช้ได้จริงในสภาพแวดล้อมที่หลากหลายแทนที่จะเรียนรู้ Java EE 6 ตอนนี้และค้นพบว่าคุณอาจไม่สามารถใช้สิ่งที่คุณเรียนรู้ได้มากนัก

ไม่มีหนังสือเล่มเดียวจะสอนสิ่งที่คุณจำเป็นต้องรู้ ตัวอย่างเช่น Servlets เป็นพื้นฐานที่ดี แต่สำหรับสิ่งที่ใหญ่กว่าสองสามหน้าหรือจุดสิ้นสุดคุณจะต้องใช้หนึ่งในเฟรมเวิร์กของบุคคลที่สามจำนวนมากหรือ JSF และไม่มีหนังสือใดที่ครอบคลุมแกนกลางแล้วจึงมีกรอบด้านบน ของสิ่งนั้น

บทช่วยสอน Java EE 5 ทำได้ดีในการลดพื้นฐานข้อร้องเรียนที่สำคัญของฉันคือพวกเขาไม่แสดงซอร์สโค้ดให้คุณ แต่พวกเขาคาดหวังให้คุณดาวน์โหลดและเรียกใช้งาน ไม่ได้กล่าวถึงในบทช่วยสอน ฉันพบว่าหนังสือของ Head First ค่อนข้างดี

สำหรับการเขียนโปรแกรมบนเว็บ Servlets แบบดิบมีความสำคัญมากพอที่จะเข้าใจวงจรการร้องขอ / การตอบกลับ แต่คุณไม่จำเป็นต้องมีความเข้าใจอย่างลึกซึ้งเพื่อก้าวกระโดดไปสู่กรอบงานของบุคคลที่สาม

ฉันเป็นแฟนตัวยงของ Stripes สำหรับเฟรมเวิร์กการดำเนินการ (เทียบกับเฟรมเวิร์กคอมโพเนนต์) และหนังสือ Stripes เล่มเดียวก็ยอดเยี่ยม (ทำให้การเลือกนั้นเป็นตัวเลือกที่ง่าย)

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

เฟรมเวิร์ก JAX-RS REST ซึ่งรวมอยู่ใน Java EE 6 แต่สามารถติดตั้งได้อย่างง่ายดายใน Java EE 5 หรือคอนเทนเนอร์ servlet ใด ๆ นั้นยอดเยี่ยมมาก น่าจะเป็นสิ่งที่ Servlet 3.0 ควรจะเป็น แต่ฉันไม่รู้หนังสือเล่มไหน


2
คำถามคือสถานะของแอ็พพลิเคชันเซิร์ฟเวอร์คืออะไรเมื่อคุณพร้อมสำหรับการผลิต หากโปรเจ็กต์หนึ่ง ๆ ใช้เวลา 6 เดือนนับจากนี้ Oracle และ JBoss มักจะมีเซิร์ฟเวอร์ที่รองรับ JEE6 และ Resin มักจะมีเซิร์ฟเวอร์ JEE6 Web Profile ออกมา
Thorbjørn Ravn Andersen

JBoss จะครบกำหนดในเดือนธันวาคม Oracle อยู่ในระดับต่ำ เรซิ่นเงียบหายไปเกี่ยวกับการนำโปรไฟล์เว็บไปใช้ Geronimo ใช้ Web Profile ที่มี 3.0 (beta) Glassfish ออกใน 3.0.1 ซึ่งดีมาก
Thorbjørn Ravn Andersen

5

สำหรับ Tomcat อ่านคู่มือบนเว็บไซต์ มันดีมาก. โดยเฉพาะอย่างยิ่งบทสองสามบทแรกเกี่ยวกับการจัดองค์กรและการปรับใช้เว็บแอปและบทใน Servlets API และ JSP

สำหรับ Spring หนังสือ Manning Spring in Action ดีมาก ในทำนองเดียวกันสำหรับ Hibernate (หนังสือ Manning) แต่ฉันคิดว่า Hibernate ส่วนใหญ่อยู่นอกขอบเขตของ webapps แม้ว่าการโทรของคุณ

ประตู - หนังสือแมนนิ่งด้วย แต่จริงๆแล้วเพียงแค่เขียนโค้ดส่วนหน้าของคุณใน Javascript มันจะเจ็บปวดน้อยกว่า IMO


3

ฉันจะไม่แสดงความคิดเห็นเกี่ยวกับเทคโนโลยีอื่น ๆ แต่ถ้าคุณต้องการเรียนรู้ Hibernate โปรดรับ "Hibernate Made Easy" โดย Cameron McKenzie (www.hiberbook.com) มันคุ้มค่ากับเงินทุกบาท คุณสามารถอ่านหนังสือเล่มนั้นจบได้ใน 2 วัน (ตามตัวอักษร) มันเหมือนนิยายและในตอนท้ายคุณพบว่าตัวเองจัดการกับ Hibernate แบบ Semi-Pro


3

Jpassionมีวิดีโอและสื่อการเรียนรู้ Java EE 6 และสิ่งอื่น ๆ ที่ดี

คุณควรดูตัวอย่างการใช้งาน:

  1. Petstore . ต้องใช้ Maven แนะนำ Glassfish เขียนโดยอันโตนิโอเวสผู้เขียนกล่าวถึงหนังสือ
  2. JBoss Ticketmonster ต้อง Maven & JBoss ฟอร์จ ปรับใช้ใน Jboss

2

หากคุณเพียงแค่ต้องการที่จะสร้างการใช้งานเว็บใน Java ตรวจสอบPlay กรอบ มันคล้ายกับ "Ruby on Rails"

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