Tôi có cần biết servlets và JSP để học mùa xuân hoặc ngủ đông hoặc bất kỳ khung web java nào khác không? [đóng cửa]


17

Tôi đã hỏi rất nhiều người bắt đầu học phát triển web java ở đâu, tôi đã biết java cốt lõi (Threading, Generics, Collection, một ít kinh nghiệm với (JDBC)) nhưng tôi không biết về JSP và servlets. Tôi đã chia sẻ công bằng phát triển của mình với một số ứng dụng dựa trên web sử dụng PHP cho phía máy chủ và HTML, CSS, Javascript, HTML5 cho phía máy khách.

Hầu hết mọi người mà tôi yêu cầu bảo tôi nhảy ngay tới Hibernate trong khi một số người nói với tôi rằng tôi không cần phải học các dịch vụ và jsps và tôi nên nghiên cứu ngay khuôn khổ Spring. Điều này có đúng không? Tôi không cần phải học các servlet và JSP để học ngủ đông hay Spring?

Tất cả các câu trả lời của họ làm tôi bối rối và bây giờ tôi hoàn toàn mất đi những gì để học hoặc học. Tôi cảm thấy rằng nếu tôi bỏ qua việc học JSP và servlets, tôi sẽ bỏ lỡ rất nhiều khái niệm quan trọng chắc chắn sẽ giúp tôi trong tương lai.

Vì vậy, câu hỏi, tôi có cần phải có nền tảng / biết các servlet và JSP để học mùa xuân hoặc ngủ đông hoặc bất kỳ khung web java nào khác không?


3
Lưu ý rằng hibernate chỉ là một lớp trừu tượng hóa cơ sở dữ liệu, không có gì khác và nó có thể được sử dụng để cắm nguồn dữ liệu vào bất kỳ loại ứng dụng java nào, không chỉ là một ứng dụng web.
Ed Griebel

1
Biết về các servlet và JSP sẽ không bị tổn thương, hãy xem "Head First - Servlets và JSP". Một cách dễ hiểu để đọc, nhưng cũng bao gồm rất nhiều.
Jaydee

@Jaydee Tôi hiện đang hướng tới Core Servlets và JSP của Marty Hall + Murach's servlets và JSP.
KyelJmD

Tôi không nghĩ câu hỏi này đã được trả lời thỏa đáng. Bear Bibeault, một nhà phát triển và tác giả nổi tiếng khẳng định rằng một người phải học JSP và Servlets trước khi học BẤT K framework khung nào. Bất cứ ai quan tâm để cho thấy tại sao điều đó có thể hoặc không thể được áp dụng ngày hôm nay? Đây là bài đăng của anh ấy - coderanch.com/t/521300/JSP/java/JSP-servlets-struts
Borat Sagdiyev

Được rồi, tôi đã nhận được một số câu trả lời từ Bear Bibeault. Xem hai liên kết này - coderanch.com/t/633527/Spring/ Kẻcoderanch.com/t/633526/JSP/java/ trộm
Borat Sagdiyev

Câu trả lời:


17

Nếu bạn đã hiểu rõ về HTML, CSS và JavaScript, bạn sẽ có nhiều người kết thúc việc phát triển web. Các khái niệm đằng sau JSP rất giống với PHP. Các quirks là khác nhau. Một servlet là tên của một đoạn mã Java phục vụ một yêu cầu. Đó là nó thực sự. Toàn bộ khung Struts ban đầu là một servlet duy nhất.

Tôi sẽ thêm Tomcat hoặc Jetty vào danh sách các công nghệ để học. Tomcat là triển khai Java Servlet Container ban đầu và cũng là một máy chủ web đầy đủ tính năng và khá phổ biến. GlassFish được xây dựng trên nó. Tôi đã sử dụng Jetty thay vì Tomcat trong các dự án mới hơn bởi vì nó đơn giản hơn, linh hoạt hơn và nhanh hơn. Cầu tàu được thiết kế để làm cho các dịch vụ web trái ngược với các ứng dụng web. Nhưng một ứng dụng web chỉ là một dịch vụ web phục vụ HTML để đáp ứng các yêu cầu HTTP thô, vì vậy nếu bạn hiểu HTTP (mà bạn có thể tìm hiểu các phần quan trọng trong vài giờ đến một ngày), thì rất dễ để làm việc.

Bạn có thể tạo một trang web nhỏ với Tomcat và JSP ( hướng dẫn tại đây hoặc JSF) chỉ biết những gì bạn biết và dành vài giờ để xem hướng dẫn. Bằng cách đó bạn có thể bắt đầu nơi bạn cảm thấy thoải mái trước khi duỗi tay ra. Sau đó, tạo một javax.servlet.http.HttpServlet viết "<html> <head> <title> Hi </ title> </ head> <body> <h1> Hello World </ h1> </ body> </ html > "đến đối tượng phản hồi, liệt kê nó trong tệp web Tomcat của bạn và gửi yêu cầu HTTP từ trình duyệt web. Nó không phải là khoa học tên lửa. Tất cả các khung web Java là các biến thể của hai hoạt động cơ bản đó.

Nếu bạn đi theo tuyến Jetty, nó thậm chí còn ít cấu trúc hơn. Kiểm tra ví dụ Hello Jetty này .

Nếu bạn chỉ định tạo một blog hoặc trang web thương mại điện tử tiêu chuẩn, tôi sẽ bắt đầu với SquareSpace hoặc Wordpress hoặc một cái gì đó. Bạn nhận được rất nhiều từ kệ, không có cách nào để biện minh cho mã hóa tùy chỉnh bất kỳ điều đó nữa.

Sức mạnh của Java cho các ứng dụng web là độ tin cậy, khả năng bảo trì và hiệu suất của nó. PHP hoặc Ruby / Rails đơn giản hơn, nhưng Java sẽ mở rộng quy mô như bạn muốn. Tôi không bị quấy rầy bởi bất kỳ khung công tác web Java nào. Khi bạn có một nhóm người làm việc trên một ứng dụng web lớn hoặc bạn cần sử dụng Hibernate, thì một khung như Spring thực sự tỏa sáng. Mùa xuân là phổ biến nhất. Khi bạn có một số quen thuộc với các servlet và JSP / JSF, thì hãy tìm hiểu cách Spring liên kết chúng với một mô hình dữ liệu.

Nếu bạn đang tạo một blog hoặc một hệ thống quản lý nội dung, có lẽ bạn có thể thoát khỏi cơ sở dữ liệu NoQuery. Nhưng tôi sẽ lập luận rằng các cơ sở dữ liệu NoQuery về cơ bản chỉ là một lớp bộ đệm trên một hệ thống tệp, thay vì thay thế các cơ sở dữ liệu quan hệ. Tôi nghĩ rằng hiếm khi một dự án phù hợp với cơ sở dữ liệu NoQuery sẽ phù hợp để phát triển trong Java.

Những thứ vẫn yêu cầu mã hiệu suất cao, tùy chỉnh (trong Java, PHP, bất cứ thứ gì) có lẽ sẽ có cơ sở dữ liệu quan hệ / SQL cung cấp năng lượng cho chúng. Tôi muốn khuyên bạn nên làm quen cơ bản với SQL và JDBC (Kết nối cơ sở dữ liệu Java) trước tiên. Sau khi bạn cảm thấy thoải mái với thế giới của các đối tượng Java và thế giới của cơ sở dữ liệu quan hệ và SQL, thì bạn có thể tìm hiểu Ebean / JPA (API liên tục Java) / ORM (Ánh xạ đối tượng quan hệ) kết nối thế giới đối tượng với thế giới quan hệ.

ORM là khó khăn và kỳ lạ. Hầu hết cuối cùng là giá trị đấu tranh. Ebean là đơn giản nhất mà tôi biết. Tôi thấy thoải mái hơn với nó sau 8 tháng so với tôi với Hibernate sau 12 năm. Tôi biết rất nhiều người sử dụng Spring với Hibernate và họ dường như không gặp rắc rối gì, hoặc thậm chí đặc biệt nhận thức được Hibernate là gì hoặc làm gì, vì vậy tôi sẽ nói nếu bạn sẽ sử dụng Hibernate, hãy làm điều đó qua mùa xuân. Có lẽ chỉ vì tôi đã làm việc với nó lâu hơn, tôi đã quản lý để loại bỏ hoàn toàn Hibernate với một vài bản đồ băm để thử nghiệm, điều này thật tuyệt vời (tổng quan có sẵn theo yêu cầu).

Bạn có một số kỹ năng quan trọng nhất. Lấy từng cái một và cố gắng không để bị quá tải.


Bạn có bất kỳ liên kết hoặc hướng dẫn nào để tôi có thể bắt đầu học các công nghệ nói trên không? hoặc có lẽ là một gợi ý tốt cho một cuốn sách. Hầu hết các ứng dụng mà tôi đã sử dụng RDBMS, từ SQL Server đến MySQl đơn giản.
KyelJmD

Tôi làm sạch câu trả lời của tôi và thêm các liên kết theo yêu cầu. Hibernate / JPA và các khung web khác nhau cần có thời gian để tìm hiểu và làm chủ. Hầu hết các công nghệ khác, bạn đã biết đủ về việc bạn sẽ có thể làm việc trong vài giờ hoặc một ngày. Tôi không biết Spring, nhưng kiểm tra tài liệu trên trang web của họ hoặc nhận một cuốn sách được đánh giá cao trên Amazon.
GlenPeterson

Tôi không thấy cách này trả lời câu hỏi. Bear Bibeault, một nhà phát triển và tác giả nổi tiếng khẳng định rằng một người phải học JSP và Servlets trước khi học BẤT K framework khung nào. Quan tâm để cho thấy tại sao điều đó có thể hoặc không thể được áp dụng ngày hôm nay? Đây là bài đăng của anh ấy - coderanch.com/t/521300/JSP/java/JSP-servlets-struts
Borat Sagdiyev

@GlenPeterson, "Toàn bộ khung Struts ban đầu là một servlet duy nhất." Ý nghĩa? Nó sẽ không làm cho mọi cuộc gọi http chậm?
Pacerier

@Pacerier Chúng tôi đã từng tải Struts 1 trong Tomcat dưới dạng servlet. Servlet Bộ điều khiển Struts sẽ gửi các yêu cầu khác nhau đến các luồng khác nhau giống như cách một máy chủ web thực hiện, chỉ ở cấp độ servlet thay vì cấp container. Tôi tưởng tượng chi phí là tối thiểu. Những gì có xu hướng chậm nhất là các cuộc gọi cơ sở dữ liệu. Thứ 2 chậm nhất, xây dựng HTML và trả lại cho khách hàng. Tại thời điểm đó, nó phổ biến để sử dụng một máy chủ riêng cho nội dung tĩnh cho tốc độ, vì vậy nó đã hoạt động.
GlenPeterson

4

Tôi sẽ đề nghị tìm hiểu về các cơ sở dữ liệu và dịch vụ cơ bản vì nó sẽ giúp bạn nắm bắt các khái niệm được đơn giản hóa trong Spring. Vì bạn có kinh nghiệm với các CGI dựa trên PHP, nên hầu hết các JSP / Servlets sẽ chỉ là các cách khác nhau để làm những việc bạn quen thuộc, vì vậy nó sẽ diễn ra khá nhanh. Điều khó nhất bạn có thể tìm thấy sẽ là chọn các thành ngữ độc đáo trong thế giới java.

Theo như Hibernate, tôi sẽ đồng ý với MebAlone và nói hãy học nó nếu bạn cần, nhưng nếu nó đã được thiết lập, bạn có thể thực hiện 90% những gì bạn cần bằng cách chỉ viết những gì người khác đã làm.


2

Có vẻ như bạn muốn học phát triển web phía máy chủ với java. Có một số khung. Spring MVC trong thực tế là phổ biến nhất, nó là trưởng thành, rất đầy đủ tính năng, và một khuôn khổ tốt để biết. Spring MVC và các khung web java khác trừu tượng API java servlet từ lập trình viên - vì vậy về mặt kỹ thuật bạn không cần phải biết về nó. Nhưng tôi sẽ đề nghị học những điều cơ bản - đặc biệt là các lớp chính. Một ngày học tập sẽ đưa bạn đến đó.

Đối với JSP, nếu bạn biết PHP, bạn đã hiểu các yếu tố cần thiết. JSP là phiên bản java của kịch bản phía máy chủ.

Hibernate là một triển khai (phổ biến nhất) của JPA, là đặc tả java cho các đối tượng vẫn tồn tại đối với RDBMS. Với sự bùng nổ về mức độ phổ biến của NOSQL db (Hadoop, Mongo, v.v.), Hibernate ít hơn một thứ 'phải biết' so với 18 tháng trước. Cá nhân tôi học các công nghệ lưu trữ trên cơ sở cần biết vì có rất nhiều trong số chúng và bạn mất những gì bạn không sử dụng.


Cuốn sách nào bạn có thể gợi ý cho Spring MVC? sự khác biệt đặt cược Spring và Spring MVC là gì?
KyelJmD

Spring là một chồng công nghệ java bao gồm rất nhiều dự án. Spring MVC là khung web phía máy chủ. Các tài liệu mẫu và ứng dụng trực tuyến của Spring là cách tốt nhất để tìm hiểu Spring MVC.
MebAlone

2

Câu trả lời ngắn gọn: không, bạn không cần phải học Servlets và JSP như một điều kiện tiên quyết cho Spring MVC và nhiều khung công tác web Java khác.

Trước tiên, hãy đưa Hibernate ra khỏi bức tranh. Đó là một khung lớp bền vững và nó không liên quan gì đến Servlets và JSP.

API Servlet là mức thấp nhất cho hầu hết tất cả các khung web Java. Ngay cả các tệp tin được biên dịch thành các servlet.

Spring MVC là một lớp nằm trên API của Servlet với rất nhiều phần mở rộng và tích hợp hữu ích với Spring Core. Bạn có thể sử dụng các tệp JSP làm cơ chế kết xuất cho Spring MVC. Hướng dẫn Spring MVC sẽ đưa bạn đi từ đầu để tạo các ứng dụng web. Khi bạn tiếp tục, bạn sẽ tìm hiểu về các tệp JSP và bạn cũng sẽ được trang bị tốt để hiểu API của Servlet.


cuốn sách hoặc video hướng dẫn nào bạn muốn đề xuất để học Spring MVC?
KyelJmD


1
@YuriyZubarev - Tôi không thấy cách này trả lời câu hỏi. Bear Bibeault, một nhà phát triển và tác giả nổi tiếng khẳng định rằng một người phải học JSP và Servlets trước khi học BẤT K framework khung nào. Quan tâm để cho thấy tại sao điều đó có thể hoặc không thể được áp dụng ngày hôm nay? Đây là bài đăng của anh ấy - coderanch.com/t/521300/JSP/java/JSP-servlets-struts
Borat Sagdiyev

-1

có vẻ như bạn đang bị mắc kẹt trong một vấn đề mà tôi phải đối mặt gần đây. Mục tiêu của tôi là học phát triển phía máy chủ với Java. Vì vậy, tôi bắt đầu với servlets, hiểu công việc của họ và viết một số chương trình đơn giản để chạy trên máy chủ TomCat. TomCat, là một điều kiện tiên quyết. Bạn chắc chắn nên làm quen với TomCat nếu bạn muốn tiến xa hơn. Đối với struts2 hoặc Spring có liên quan, struts2 và spring là các khung được xây dựng trên các servlet, điều này làm cho sự hiểu biết sâu sắc về các servlet là cần thiết nếu bạn muốn mạnh về những điều cơ bản. Tôi bắt đầu với các hướng dẫn về bộ não Java. Đối với một người mới bắt đầu, những hướng dẫn này là tuyệt vời. Một số tác phẩm của Jakob Jenkov trên blog của anh ấy cũng thực sự tuyệt vời. Struts2 và Spring trở nên đơn giản hơn khi bạn biết các servlet. Theo như hibernate, tôi khuyên bạn nên bắt đầu với việc thực sự quen thuộc với JDBC. Đi từng bước, servlets, struts, JDBC, Spring, Hibernate. Hy vọng câu trả lời của tôi sẽ giúp :).


bài này khá khó đọc (tường văn bản). Bạn có phiền chỉnh sửa ing nó thành một hình dạng tốt hơn?
gnat
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.