Avatar
0
Nguyễn Thái Sơn Professional
Nguyễn Thái Sơn Professional
Spring từ Servlet và JSP
Anh ơi có phải Spring đi từ Servlet Java ngày xưa k ạ, có mối quan hệ giữa Spring và Servlet k ạ. Các trung tâm dạy lập trình em thấy đều dạy từ Servlet
  • Answer
Remain: 5
2 Answers
Avatar
tvd12 Professional
tvd12 Professional
Đúng vậy em ạ, ngày xưa Spring là 1 framework wrap lại HTTP, và mỗi quan hệ của nó với Servlet em có thể tham khảo bài viết này nhé.
  • 0
  • Reply
Avatar
Thành Lê Văn Professional
Thành Lê Văn Professional
Nên định nghĩa rõ lại nhé:

1: Spring

2: Java web Servlet

3: Java web container

3: Spring MVC

4: Spring boot

5: Spring boot web.

 

Và giải thích sẽ như sau

  1.   Spring : Khi nói Spring không thì chỉ nói đến các core của spring ví dụ IOC, DI, bean...etc.

Spring đơn giản là một Framework cho Java và nó cung cấp inversion of control container cho java platform.

===> Spring và Servlet không liên quan gì đến nhau cả.

===> Spriing là một Framework cho java

2: Servlet  : Chắc cái này dễ hiểu rồi, Servlet là nền tảng core  để impl một chức năng nhận và phản hồi request từ web client (Thường là HTTP), về sau có rất nhiều Framework web cho java thì đều phải thông qua thằng này.

3: Java web container : Bạn từ đọc nhé

4: Spring MVC  là Spring Framework  sử dụng để impl web. Bản chất cơ bản thì sẽ sử dụng các tính năng của Spring và impl thêm Servlet.

Nếu bạn đọc kỹ về Spring thì bạn sẽ thấy Spring MVC tạo mới mộtdispatcherservlet.

Có thể bạn chưa biết thì HttpServlet abstract là một dispatcherservlet mặc định của java. Tất cả reuqest đều đi qua method service trong class này

Các Framework  ví dụ như Spring đều extends lại HttpServlet tuy nhiên đa số họ vẫn sử dụng  service mặc định này và không thay đổi nó. Các Framework  chỉ IMPL lại method có các param là HttpServletRequest req, HttpServletResponse resp để khi thực hiện chạy dòng 790 thì sẽ gọi ngược lại đến code impl của họ.

4: Spring boot

Spring boot core thì sẽ không có impl web, bản chất Spring boot sẽ hỗ trợ các tính năng giúp chúng ta tự động config thông qua việc scan file config spring.factories trên các thư viện và thực hiện khởi tạo bean và chạy theo khai báo trên spring.factories.

Spring boot giúp chúng ta ít phải thực hiện config hơn, các thư viện..etc.. sẽ thực hiện giúp chúng ta, chúng ta sẽ chỉ cần khai báo cơ bản, nếu cần thực hiện đổi thông số thì sẽ cần khai báo thông số....

5: Spring boot web.

Đây chính là thư viện spring-boot-starter-web thư viện này là một starter, nó có các lib cho web và tự động config nền tảng web cho chúng ta, chúng ta không cần khai báo web.xml.

Tuy nhiên có 1 sự khác biệt duy nhất giữa Spring boot web và Spring MVC đó là Spring boot web chỉ có duy nhất một dispatcher còn Spring MVC thì có thể khai báo nhiều dispatcher.

(Xưa mình học là vậy, giờ k biết đổi chưa @@)

Kết luận:

SpringServler  không liên quan đến nhau

Spring MVCSerlver có liên quan đến nhau, Spring MVC impl nền tảng web của java và impl mới một dispatcher.

Spring BootSerlver tương tự như MVC là có liên quan, nhưng chỉ có duy nhất một dispatcher.

 

  • 0
  • Reply