2008-10-02 69 views
18

Tôi đang tìm cách bắt đầu phát triển web bằng Java - Tôi có một số kiến ​​thức cơ bản về Java, vì vậy đó không phải là vấn đề, nhưng tôi thua lỗ khi giải mã các công nghệ khác nhau cho sử dụng trong các ứng dụng web.Phát triển Java cho web

Tùy chọn nào có sẵn cho tôi? Họ làm việc như thế nào? Có bất kỳ khuôn khổ tương tự như Django/Ruby on Rails mà tôi có thể sử dụng để đơn giản hóa mọi thứ?

Bất kỳ liên kết nào có thể giúp hiểu được những gì có sẵn sẽ được đánh giá cao.

+0

Bạn đã hiểu cách hoạt động của web chưa? Không quốc tịch, GET, POST, v.v. – ScArcher2

+0

Có Tôi đã phát triển với PHP & Python (Django) vì vậy tôi có một số kiến ​​thức trung gian về cách hoạt động của web. – Tom

Trả lời

7

Tôi không biết nếu có bất cứ điều gì khá là tốt đẹp như Django cho Java, nhưng mùa xuân có một khuôn khổ web nhẹ xây dựng trên J2EE

http://www.springframework.org/about

Ứng dụng web MVC linh hoạt khuôn khổ, được xây dựng trên lõi chức năng Spring . Khung này là cấu hình cao thông qua các giao diện chiến lược và chứa nhiều công nghệ xem như JSP, Tốc độ, Gạch, iText và POI. Lưu ý rằng lớp trung gian của mùa xuân có thể dễ dàng được kết hợp với tầng web dựa trên bất kỳ khung công tác MVC web nào khác, như Struts, WebWork hoặc Tapestry.

0

J2EE là tiêu chuẩn. Bạn có thể sử dụng nó để xây dựng các ứng dụng với Java Server Pages, Servlets và EJBs.

Struts cũng là một khung công tác rất phổ biến sử dụng JSP và Servlets. Đó là một chút khôn lanh để có được thiết lập nhưng nó là một lựa chọn rất tốt cho các trang web kích thước trung bình.

http://en.wikipedia.org/wiki/Struts

2

Bạn sẽ cần phải bắt đầu với servlets and JSP. Có nhiều khung công tác web trong Java và tất cả chúng đều dựa trên hai công nghệ này.

13

công nghệ java web cơ bản của bạn là servlets. Servlets cho phép bạn viết mã Java đáp ứng các sự kiện HTTP khác nhau (doGet, doPost, doPut, v.v.). Chúng thường được sử dụng cho các bộ điều khiển trong kiến ​​trúc MVC. Liên kết: http://java.sun.com/products/servlet/

JSP cho phép bạn viết HTML bằng Java được nhúng thay vì cách khác xung quanh (trong servlet). JSP đã được mở rộng thông qua JSF để kết hợp các tiến bộ kiến ​​trúc gần đây hơn. Điều này là trong cùng một dòng như PHP và ASP. Đây là phần xem của kiến ​​trúc MVC. Liên kết: http://java.sun.com/developer/technicalArticles/GUI/JavaServerFaces/

Rất nhiều ứng dụng phức tạp hơn sử dụng Enterprise Java Beans (EJB) để quản lý phiên, phân cụm, v.v. Đây không phải là công nghệ web, nhưng bạn thấy nó đi đôi với nhau khi giao dịch với các ứng dụng web phức tạp hơn. Các giải pháp thay thế bao gồm các khung công tác như Spring. EJB: http://docs.jboss.org/ejb3/app-server/tutorial/ mùa xuân: http://www.springframework.org/

Ngoài ra, bạn sẽ muốn làm quen với công nghệ ORM (sau servlets và JSP/JSF). Khung ORM hàng đầu hiện nay là Hibernate. Điều này cho phép bạn ánh xạ các bảng SQL thành các đối tượng java và tương tác với chúng theo đó. Đây là nội dung nâng cao hơn để lưu khi bạn cố gắng thu hút đầu óc xung quanh EJB/Spring, v.v. Liên kết: http://www.hibernate.org/

chỉnh sửa: Tôi quên xác định ORM. Nó là viết tắt của Object Relational Mapping/Mapper (bất kỳ phiên bản nào của "Bản đồ" mà bạn cảm thấy thích sử dụng :)

0

Nói chung Java có nhiều thành phần hơn, nghĩa là bạn không có khung làm tất cả cho bạn (bạn ' có lẽ sẽ phải tự mình chọn một khung truy cập cơ sở dữ liệu). Đối với truy cập dữ liệu tôi khuyên bạn nên Hibernate hoặc iBATIS.

Đối với giao diện người dùng, có hàng trăm khung công tác xung quanh. Điều tra JSF, Wicket, Struts 2, Stripes - bất kỳ cái nào bạn sử dụng tùy thuộc vào nhu cầu cụ thể của bạn vì tất cả chúng đều có điểm mạnh khác nhau.

Và đối với một lớp doanh nghiệp tôi khuyên bạn nên Spring Framework, mà là rất toàn diện và có một tài liệu tham khảo hướng dẫn tuyệt vời/hướng dẫn :)

1

Đây là một câu hỏi rất mở. Câu trả lời ngắn gọn là "có" có các khung công tác, thư viện và các tiêu chuẩn để làm mọi thứ từ việc viết những thứ ở cấp yêu cầu HTTP đến các hệ thống quản lý nội dung trong Java.

Bạn cũng có thể sử dụng các ngôn ngữ khác (ví dụ: Python, Ruby, v.v.) trên JVM cho vấn đề đó.

Đối với một số công nghệ chỉ có Java, hãy khảo sát JSP/Servlets, Struts, Struts2 (đây là phiên bản cập nhật của Webwork), Spring MVC, Tapestry, web4j, Wicket.

Có các khung công tác khác được xây dựng trên JVM nhưng sử dụng các ngôn ngữ khác ngoài Java như Grails.

Để bắt đầu, tôi sẽ tải xuống Eclipse (phiên bản mới nhất) và Tomcat. Tạo một ứng dụng web mới trong Eclipse. Có guides có thể giúp bạn bắt đầu.

Bắt đầu với việc tìm hiểu cách hoạt động của JSP và Servlets, đây là một mức độ thấp và không thực sự là một khuôn khổ, nhưng sẽ cho phép bạn bắt đầu và chạy nhanh. Từ đó điều tra và chọn khung của bạn.

Spring MVC khá dễ dàng để thiết lập và tiếp tục. Tôi chắc chắn có những người khác.

2

Bạn có thể thử Jboss Seam: http://www.seamframework.org/Documentation/GettingStarted

Nếu bạn đang sử dụng Eclipe như IDE của bạn có tích hợp tốt qua Jboss Tools hoặc bạn có thể sử dụng công cụ Seam-Gen mà đi kèm với Seam. Điều này cho phép bạn định nghĩa một bảng cơ sở dữ liệu (hoặc các bảng) và với một vài lệnh dễ dàng, hãy xây dựng một dự án web runnable toàn bộ từ nó. Đó là một cách hay để có được quả bóng lăn.

32

Các khung công tác Java có hai hương vị cơ bản. Một được gọi là khung "Hành động", Khung còn lại là "Thành phần".

Các khung hành động chuyên về ánh xạ các yêu cầu HTTP tới mã Java (các hành động) và ràng buộc các yêu cầu HTTP đối với các đối tượng Java. Servlets là cơ bản nhất trong các khung hành động, và là cơ sở khi tất cả các khung công tác khác được xây dựng.

Struts là khung hành động phổ biến nhất, nhưng tôi không thể có lương tâm tốt để giới thiệu nó cho bất kỳ ai. Struts 2 và Stripes hiện đại hơn, và rất giống với nhau. Cả hai đều là ánh sáng trên cấu hình và dễ sử dụng ra khỏi hộp, cung cấp chức năng ràng buộc rất tốt.

Khung thành phần tập trung vào giao diện người dùng và có xu hướng quảng bá kiến ​​trúc hướng sự kiện hơn dựa trên các thành phần giao diện người dùng cấp cao (nút, hộp danh sách, v.v.). Các khung công tác có xu hướng ẩn yêu cầu HTTP thực tế đó từ bộ mã hóa theo một vài lớp. Họ làm cho việc phát triển các giao diện người dùng nâng cao hơn dễ dàng hơn nhiều. .NET là một khung thành phần cho Windows. Trên Java, các khung thành phần phổ biến là JSF (một tiêu chuẩn) và Wicket.

Theo quy tắc, nếu bạn đang tạo "trang web". đó là một cái gì đó giống như trình bày thông tin (như blog, hoặc một trang cộng đồng), các khung hành động hoạt động tốt hơn. Các trang web này có xu hướng đơn giản hơn, thường xuyên được đánh dấu trang, yêu cầu "URL đẹp", v.v. Điều này thường dễ dàng hơn khi thực hiện với khung công tác Hành động.

Khung thành phần tốt hơn cho những thứ như ứng dụng văn phòng trở lại với nhiều yếu tố giao diện người dùng và quy trình công việc phức tạp. Bạn sẽ tìm thấy, đặc biệt là với công cụ, rằng các kiểu ứng dụng này sẽ đi cùng nhau nhanh hơn bằng cách sử dụng một khung thành phần. Nhưng khung thành phần có quy trình làm việc phức tạp hơn, đôi khi dựa vào trạng thái ẩn, nhiều tác vụ POST, v.v. Nhiều người có URL "khủng khiếp" và đôi khi tạo các trang khó đánh dấu.

Cả hai khung công tác đều có thể được sử dụng cho cả hai tác vụ, chỉ một số khung công cụ phù hợp hơn với nhiệm vụ hơn các tác vụ khác.

Không có khung công tác nào trong số này trực tiếp giải quyết sự kiên trì, nhưng nhiều khuôn khổ có mô-đun mở rộng hoặc thành ngữ hoạt động chặt chẽ với JPA/EJB3 hoặc Hibernate.

+0

Câu trả lời rất hay! Cảm ơn vì điều đó. Hai loại này giúp phân biệt các webframeworks dễ dàng hơn ... :) THX – Bijan

8

Bắt đầu với JSP được hỗ trợ bởi logic trong các lớp Java. Hoặc sử dụng servlet.

Lợi thế của việc sử dụng JSP và Servlets là bạn có được kiến ​​thức về những gì tất cả các khung làm dưới mui xe. Và sự hiểu biết đó là rất quan trọng để tìm ra cách làm X trong khuôn khổ cụ thể đó.

Hơn nữa, JSP rất dễ dàng. Bạn có thể dễ dàng nhìn thấy những gì bạn đang làm và rất dễ dàng nhìn thấy nó khi bạn mess up xem với logic kinh doanh.

Và khá nhiều khung công tác (Struts, Spring MVC) sử dụng JSP làm công nghệ xem của họ. Đây là bước đầu tiên trong quá trình phát triển web bằng cách sử dụng Java.

1

Nếu bạn đã biết Ruby On Rails, bạn có thể sử dụng nó với JRuby và triển khai tới máy chủ Java (như Tomcat) với Warbler.

Trong Java thuần túy, Wicket có cách tiếp cận tốt và đang trở nên khá phổ biến.

1

Trước khi nghiên cứu các khuôn khổ đó, tại sao không nghiên cứu trước hết khi bắt đầu? Hãy thử lập trình với các servlet trước, vì vậy bạn có thể nhìn vào cốt lõi của hầu hết các khung công tác web java đó. Nó sẽ giúp bạn hiểu J2EE tốt hơn.

0

Tôi đã học Java ở trường đại học trở lại khi ở phiên bản 1.1.5. Gần đây, tôi đã bắt đầu cố gắng lập trình cho web nhưng điều đó không có ý nghĩa cho đến khi tôi đọc Head First Servlets and JSP. Có nhiều thứ liên quan đến phát triển web với Java hơn là tôi từng nhận ra, và nếu không có cuốn sách này, tôi sẽ bỏ và chỉ sử dụng PHP.

Các vấn đề liên quan