Học gì để tạo ứng dụng web Java trong Java EE 6? [đóng cửa]


103

Mục tiêu của tôi là tạo ra các ứng dụng web!

Tôi đã đọc xong Sách "Headfirst - Java" và "Headfirst - Servlets và JSP".

Vì chủ đề này (các ứng dụng web) rất lớn và phức tạp, tôi muốn hỏi tôi nên học gì tiếp theo. Tôi cảm thấy quá căng thẳng khi đọc các câu khẩu hiệu như Java EE, EJB, JSF, JPA, Glassfish ... nhưng tôi sẽ không bỏ cuộc.

Bất cứ ai có thể vui lòng cho tôi biết tôi nên tiếp tục học như thế nào? Tôi có nên lấy một cuốn sách như thế này: Bắt đầu Nền tảng Java EE 6 với GlassFish 3: Từ Người mới đến Chuyên nghiệp hay tôi chỉ nên thực hiện một số hướng dẫn Trực tuyến?

Cảm ơn!


1
Tôi đã đọc hai chủ đề. Nhưng một lần nữa: Trong chủ đề họ chỉ nói "học Tomcat, JBoss, Hibernate, học cái này hay cái kia, v.v." Chỉ ném bằng từ ngữ. Nhưng tôi muốn biết tôi nên đọc cuốn sách hoặc hướng dẫn cụ thể nào. Có lẽ không có cách nào như vậy và tôi phải học nó "không hiệu quả" bằng cách tra cứu từng từ một. Tôi chỉ hy vọng nhận được một lời khuyên làm thế nào để tiếp tục.
creativz

1
Tôi khuyên bạn nên bắt đầu với Head First Servlets và JSP với điều kiện bạn có kiến ​​thức tốt về Java lõi. Nếu bạn không cảm thấy thoải mái với Java như là Ngôn ngữ lập trình thì trước tiên, bạn cần có một số kiến ​​thức về nó và sau đó là tiến tới Phát triển ứng dụng web.
Rachel

22
Ngoại trừ việc tất cả những câu hỏi này đã lỗi thời vì Java EE 6 đã ra đời ...
Pascal Thivent 25/12/09

4
@Stephen Chà, tôi thực sự nghĩ rằng có một lỗ hổng lớn , đặc biệt là về phần web (với Servlet 3.0 hoặc JSF 2.0 và các bean được quản lý CDI).
Pascal Thivent 25/12/09

1
Thật nực cười khi bao nhiêu câu hỏi chung chung được bình chọn cao như câu này lại bị khép là "không mang tính xây dựng". Tôi muốn nói rằng họ rất xây dựng, nhưng không dễ trả lời một cách xây dựng. Chúng giúp bạn thấy được bức tranh toàn cảnh hơn về những gì một người đang làm hoặc nên làm. Nhưng thật vui khi họ được phép ở lại SO.
jackthehipster

Câu trả lời:


174

Ngay cả khi tôi biết rằng điều này sẽ gây tranh cãi, lời khuyên của tôi là chỉ nên bắt đầu với Java EE 6. Vì vậy, hãy tải GlassFish v3 và tải sách Bắt đầu nền tảng Java EE 6 với GlassFish 3: Từ người mới đến chuyên nghiệp hoặc làm theo hướng dẫn Java EE 6 . Theo ý kiến ​​của tôi, cuốn sách (mà tôi đã bắt đầu đọc để tôi biết mình đang nói về điều gì) cung cấp thêm hướng dẫn có thể phù hợp hơn nếu "mọi thứ" đều mới đối với bạn (nó bao gồm cả nền tảng Java EE và các API của nó môi trường để xây dựng, triển khai các ứng dụng của bạn).

Bây giờ, như tôi đã nói, tôi đã có thể nghe thấy những giọng nói như "Java EE nặng, hãy sử dụng Spring để thay thế, học Struts hoặc Wicket hoặc Stripes cho lớp trình bày, học Hibernate để bền bỉ hoặc không vì tôi không thích ORM, sử dụng iBatis hoặc JDBC thẳng thay thế (bạn sẽ thấy, thật tuyệt với Spring, Spring thật tuyệt) và sử dụng Tomcat (và tại sao không phải là Jetty), hoặc JBoss, hoặc chỉ cần quên tất cả những điều này và chuyển sang Grails, và bla bla bla ... ” .

Nhưng tôi không nghĩ rằng điều này thực sự giúp ích cho bạn và, nếu không có sự cố vấn hoặc hướng dẫn (và bạn sẽ không tìm thấy một tài nguyên duy nhất không lỗi thời bao gồm tất cả các kết hợp), điều này nghe có vẻ rất khó hiểu đối với người mới bắt đầu.

Vì vậy, vì tôi nghĩ rằng Java EE 6 là một cải tiến lớn so với các phiên bản trước của Java EE, vì nó cung cấp các API tiêu chuẩn thực sự tốt cho mọi nhu cầu của bạn (Servlet 3.0, JSF 2.0, JPA 2.0, EJB 3.1 lite, Bean Validation 1.0, CDI , v.v.), bởi vì tất cả các API này đều tốt hơn, bởi vì không có gì thực sự sai trong việc học chúng, bởi vì đây đã là một nhiệm vụ lớn, bởi vì bạn phải bắt đầu ở đâu đó , tôi chỉ tập trung vào Java EE 6 và quên các khuôn khổ khác cho bây giờ. Chính xác hơn, tôi sẽ bắt đầu với Hồ sơ Web Java EE 6 (và sau đó thêm những thứ nếu bạn muốn đi xa hơn).

Bằng cách làm này, 1) bạn sẽ bắt đầu và bạn sẽ học được những điều hoàn toàn mới và 2) bạn sẽ dành một chút thời gian cho tất cả các khuôn khổ và / hoặc công cụ khác để thích ứng và chứng minh rằng vẫn cần chúng. Và nếu có, vẫn còn thời gian để thử nghiệm những người sống sót và bạn sẽ có thể hiểu rõ hơn tại sao họ tồn tại.


3
Cảm ơn. Về cuốn sách, tôi chưa đọc hết nhưng chắc chắn tôi muốn giới thiệu nó cho cả những nhà phát triển mới làm quen và đã thử nghiệm muốn có cái nhìn tổng quan tốt về Java EE 6. Cuốn sách được xây dựng tốt, nó thực sự bao gồm nhiều API (không nhiều bị thiếu), nó có các mẫu mã thể hiện mọi thứ được trình bày, chúng thực sự là giáo khoa và cho phép đi sâu như bạn muốn. Có thể sẽ có nhiều sách tập trung hơn trong tương lai nhưng đây là một cuốn hay.
Pascal Thivent

23
+1, nhưng mùa xuân thật tuyệt :-)
ChssPly76

13
Đừng hiểu sai ý tôi, Stripes, Spring, Hibernate, ... rất tuyệt. Nhưng quá nhiều lựa chọn có thể gây nhầm lẫn khi khám phá điều gì đó mới và tôi tin rằng Java EE 6 cho phép bạn bắt đầu mà không cần chúng.
Pascal Thivent

9
Tôi đồng ý với bạn, điều rất quan trọng là phải học ngăn xếp JEE ngay cả khi bạn không sử dụng bất kỳ thứ gì trong số đó, sau tất cả, ngăn xếp đó cơ sở cho tất cả các khuôn khổ tuyệt vời làm cho mọi thứ thực sự tuyệt vời, ví dụ như Wicket được xây dựng trên khái niệm Front Controller trong thế giới Java có nghĩa là Servlet và Filters - nếu bạn không biết cách hoạt động của chúng, bạn cũng sẽ không thực sự hiểu được Wicket đang làm gì! Trừ khi bạn chấp nhận "phép thuật!" như câu trả lời, tất nhiên.
Esko

13
4 năm sau .... bạn có thay đổi gì về câu trả lời của mình không?
jlars62,

28

Lời khuyên 1 của tôi là ngừng đọc sách và bắt đầu thực hiện các công việc. Theo kinh nghiệm của tôi, việc học qua sách vở không thể thay thế cho kiến ​​thức bạn có được khi thực sự làm mọi việc.


1 - Bối cảnh: đây là lời khuyên dành cho những người vừa mới đọc xong hai cuốn sách về chủ đề này, và đang tìm thêm sách để đọc. Trong thực tế, bạn cần cân bằng giữa việc đọc và làm. Đặc biệt nếu bạn có một vấn đề cụ thể mà bạn đang cố gắng giải quyết.


29
Nhưng nó có thể giúp bạn tiết kiệm nhiều ngày tìm kiếm. Cũng có thể cung cấp cho bạn đủ kiến ​​thức để trả lời câu hỏi thay vì hỏi họ và cuối cùng có uy tín cao ở đây, bạn có đồng ý không?
Muhammad Gelbana

6
Không, tôi không đồng ý. OP đã đọc hai cuốn sách Java / Java EE. Đã đến lúc anh ta phải lập trình. FWIW, tôi không thu được hầu hết kiến ​​thức từ việc đọc sách. Thay vào đó, tôi nhận được nó CHÍNH XÁC bằng cách triển khai mọi thứ và tham khảo tài liệu khi tôi cần. Bạn không học đi xe đạp bằng cách đọc sách ... và bạn cũng không học kỹ năng lập trình theo cách đó.
Stephen C

3
Điều quan trọng là phải cân bằng readingpractice.
smwikipedia

9

Java EE 6 thực sự tuyệt vời. Vấn đề duy nhất là nó đã được khoảng 2 tuần tuổi và hiện chỉ có 1 container cung cấp các tính năng của nó - Glassfish.

Tôi không có gì để chống lại Glassfish, tôi sử dụng nó ở khắp nơi, một số trường hợp sản xuất, tôi yêu sản phẩm và dự án.

Điều đó nói rằng, các chi tiết của Java EE 6 không dịch ngược trở lại Java EE 5. Một số thì có, nhiều thì có, nhưng Web Profile, Servlet 3.0, các loại Bean mới, JPA 2, v.v. Những thứ đó không có ở đó.

Vì vậy, bằng cách học Java EE 6 trước, bạn chỉ đơn giản là giới hạn mình trong một vùng chứa duy nhất. Nhiều người đang đến, nhưng họ vẫn chưa ở đây.

Tomcat, JBoss, OpenEJB, Glassfish, Jetty, Resin, Geronimo, v.v. đều hoạt động tốt với thông số kỹ thuật Java EE 5 (ít nhất là những phần thông số kỹ thuật mà họ hỗ trợ, chẳng hạn như Tomcat không có EJB).

Tôi không thể nghĩ ra bất kỳ điều gì trong Java EE 5 mà không được chuyển tiếp sang Java EE 6. Java EE 6 đã tạo ra một số khía cạnh rất cũ là tùy chọn và những khía cạnh đó đơn giản là bạn sẽ không học hôm nay. Java EE 6 đã làm cho một số công cụ Java EE 5 thậm chí còn dễ dàng hơn (đáng chú ý là đóng gói, EJB Lite chẳng hạn).

Học Java EE 5 ngay bây giờ để bạn có thể thực sự áp dụng những gì bạn học được trong nhiều môi trường khác nhau, thay vì học Java EE 6 ngay bây giờ và phát hiện ra rằng bạn có thể không sử dụng được nhiều những gì bạn học được.

Không một cuốn sách nào dạy bạn những gì bạn cần biết. Ví dụ: Servlet là một nền tảng tốt, nhưng đối với bất kỳ thứ gì lớn hơn một vài trang hoặc điểm cuối, bạn sẽ muốn sử dụng một trong nhiều khuôn khổ của bên thứ ba hoặc JSF và không có cuốn sách nào bao gồm phần lõi và sau đó là khuôn khổ ở trên cùng của điều đó.

Hướng dẫn Java EE 5 rất tốt trong việc tìm hiểu cơ sở, phàn nàn chính của tôi là họ không hiển thị cho bạn mã nguồn. Thay vì họ mong đợi bạn chỉ cần tải xuống và chạy nó. Nó không được thảo luận trong hướng dẫn. Tôi thấy những cuốn sách của Head First khá hay.

Đối với lập trình web, các Servlet thô chỉ đủ quan trọng để hiểu được chu trình yêu cầu / phản hồi nhưng bạn không cần hiểu biết sâu để thực hiện bước nhảy vọt sang khuôn khổ của bên thứ ba.

Tôi là một người hâm mộ lớn của Stripes cho một khung hành động (so với một khung thành phần) và cuốn sách Stripes duy nhất có sẵn rất tuyệt vời (khiến việc lựa chọn đó trở thành một lựa chọn dễ dàng).

Tôi không thể đề xuất một cuốn sách khung Thành phần và tôi thực sự sẽ không đề xuất một cuốn sách ngay lập tức. Các khung công tác thành phần thực sự chôn vùi các cấu trúc yêu cầu / phản hồi lõi HTTP. Họ chôn vùi chúng là có lý do, và họ đạt được giá trị BẰNG CÁCH chôn cất chúng, nhưng tôi tin rằng để đạt được hiệu quả, bạn cần phải có hiểu biết vững chắc về những khái niệm này từ sớm. Đó là lý do tại sao tôi không khuyên bạn nên học một khuôn khổ Thành phần trước.

Khung công tác JAX-RS REST, có trong Java EE 6, nhưng có thể cài đặt dễ dàng trong Java EE 5 hoặc bất kỳ vùng chứa servlet nào, thật tuyệt vời. Có thể cho rằng đó là những gì Servlet 3.0 nên có. Nhưng tôi không biết bất kỳ cuốn sách nào cho điều đó.


2
Câu hỏi đặt ra là trạng thái của các máy chủ ứng dụng là gì khi bạn đã sẵn sàng cho quá trình sản xuất. Nếu một dự án nhất định mất 6 tháng kể từ bây giờ, thì rất có thể Oracle và JBoss sẽ có các máy chủ tương thích với JEE6 và rất có thể Resin sẽ có máy chủ Hồ sơ Web JEE6.
Thorbjørn Ravn Andersen

Chà, JBoss sẽ ra mắt vào tháng 12. Oracle nói dối. Resin đã im lặng về việc triển khai hồ sơ web của họ. Geronimo đi cho Hồ sơ web với 3.0 (beta). Glassfish đã ra mắt phiên bản 3.0.1, điều này thực sự tuyệt vời.
Thorbjørn Ravn Andersen

5

Đối với Tomcat, hãy đọc hướng dẫn sử dụng trên trang web. Nó là rất tốt. Đặc biệt là một số chương đầu tiên về tổ chức và triển khai ứng dụng web và các chương về API Servlets và JSP.

Đối với Spring, cuốn Manning Spring in Action rất hay. Tương tự như vậy đối với Hibernate (sách Manning) nhưng tôi nghĩ Hibernate chủ yếu nằm ngoài phạm vi của các ứng dụng web. Cuộc gọi của bạn, mặc dù.

Wicket - sách Manning cũng vậy. Nhưng thực sự, chỉ cần viết mã front-end của bạn bằng Javascript. Sẽ đỡ đau hơn, IMO.


3

Tôi sẽ không bình luận về các công nghệ khác nhưng nếu bạn muốn học Hibernate, hãy tìm "Hibernate Made Easy" của Cameron McKenzie (www.hiberbook.com). Đáng từng đồng từng cắc. Bạn có thể đọc xong cuốn sách đó sau 2 ngày (theo nghĩa đen). nó giống như một cuốn tiểu thuyết và ở phần cuối, bạn thấy mình xử lý Hibernate giống như một Semi-Pro.


3

Jpassion cung cấp các video và tài liệu hay để học Java EE 6 và các nội dung khác.

Bạn cũng sẽ thấy các ví dụ về ứng dụng:

  1. Petstore . Yêu cầu Maven, khuyên dùng Glassfish. Được viết bởi Antonio Goncalves, người đã viết cuốn sách được đề cập .
  2. JBoss Ticketmonster . Yêu cầu Maven & Jboss Forge . Triển khai trong Jboss.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.