Servlet Là Gì? Tìm Hiểu Về JSP Servlet Toàn Tập A-Z - Lê Trọng Đại

5/5 - (2 bình chọn)

Servlet là gì?

Tùy theo ngữ cảnh sử dụng mà Servlet được định nghĩa bằng nhiều cách khác nhau như:

  • Servlet chính là công nghệ được dùng để thiết lập ra các ứng dụng web.
  • Servlet được xem là một API cung cấp các interface, lớp và cả các tài liệu.
  • Servlet cũng là một thành phần website được lập trình viên triển khai trên máy chủ, phục vụ cho mục đích tạo các trang web động.

Với Servlet, bạn được phép thu thập dữ liệu đầu vào của người dùng thông qua website. Cụ thể, chúng sẽ hiển thị bản ghi từ một nguồn cơ sở dữ liệu hay từ nguồn khác.

Servlet sử dụng công nghệ mạnh mẽ và cho phép mở rộng. Mặc dù trước khi Servlet ra đời, đã có ngôn ngữ kịch bản CGI (viết tắt của Common Gateway Interface) được dùng làm ngôn ngữ lập trình phổ biến, tuy nhiên, nó vẫn còn tồn tại nhiều bất cập. Do đó, Servlet được nghiên cứu và phát triển để có thể khắc phục những hạn chế mà CGI mang lại.

Công dụng Servlet là gì?

  • Nhận request từ client và lấy các thông tin từ request đã nhận: Servlet sẽ thực hiện chức năng đọc dữ liệu đã nhận được từ trình duyệt khách hàng truy cập gửi.
  • Truy cập database để xử lý các nghiệp vụ và những phát sinh: Thông qua việc yêu cầu tương tác với cơ sở dữ liệu, thực hiện cuộc gọi RMI hoặc CORBA, gọi dịch vụ web hoặc thậm chí là phản hồi trực tiếp để xử lý các dữ liệu, tiếp đến tạo ra kết quả tương ứng.
  • Thực hiện việc tạo, sau đó gửi request đến client hay tạo một request mới đến Servlet và JSP mới: Servlet đóng vai trò gửi dữ liệu rõ ràng đến người dùng (trình duyệt) thể hiện dưới nhiều hình thức như văn bản dạng HTMLL hoặc XML, hình ảnh Gif, excel… Đồng thời, nó còn gửi cả phản hồi HTTP ẩn cho trình duyệt. Hoạt động này được hiểu là nó trao đổi với trình duyệt và các trình khác về định dạng những tài liệu được trả về, thiết lập cookie cũng như tham số cho bộ nhớ đệm, ngoài ra còn có thêm nhiều tác vụ khác.
  • servlet la gi

Môi trường làm việc củaServlet

Một Servlet chính là một lớp Java nên nó cần được thực thi trên máy ảo Java (gọi là JVM) thông qua một dịch vụ có tên là Servlet engine. Theo đó, Servlet engine sẽ thực hiện tải lớp Servlet đầu tiên mà nó được yêu cầu hoặc tại thời điểm khi servlet engine bắt đầu. Tiếp đến, servlet sẽ ngừng tải để tập trung nguồn lực xử lý các yêu cầu khi Servlet engine bị dừng hoặc tắt.

Nói tóm lại, về lý thuyết, JSP chính là phần mở rộng của Servlet. Tuy nhiên, thực tế chúng được sử dụng đồng thời nhằm phục vụ cho việc phát triển các ứng dụng web. Cụ thể, JSP là đại diện của trang web, còn Servlet chính là đại diện cho thành phần Java.

Servlet viết code Java dễ dàng nên người mới làm quen với Java web sẽ thấy dễ dàng và không gặp trở ngại. Bù lại viết code HTML bằng Servlet rất khó khăn. Còn JSP thì ngược lại, nó viết code HTML dễ nhưng code Java cực kỳ khó. Do đó, sử dụng cả hai để bổ trợ và tạo sự thuận tiện cho lập trình viên.

Tìm hiểu vòng đời của Servlet

Web container có nhiệm vụ quản lý vòng đời của một Servlet. Nó sẽ tạo ra một phiên bản Servlet, rồi gọi ra init () method. Khi init () method được hoàn thành, Servlet sẽ ở trạng thái sẵn sàng cho bất kỳ yêu cầu dịch vụ nào đã nhận được từ clients.

Còn Container thực hiện xử lý yêu cầu thông qua việc tạo ra một thread mới cho từng yêu cầu mà nó được nhận từ thread pool trong Web Container, và sau khi nó tiến hành gọi service () method của Servlet. Trước khi tiến hành phá hủy instance, Container sẽ thực hiện lệnh gọi destroy () method. Sau khi phá hủy, Servlet bị chuyển thành rác chờ thu gom.

Tương tự như các chương trình Java khác, Servlet được chạy trong JVM. Trong khi đó, Servlet Container tham gia giải quyết những vấn đề phức tạp của HTTP rerquest. Nó cũng chịu trách nhiệm tạo, thực hiện cũng như hủy Servlet.

servlet la gi

Phương thức xử lý một request của Servlet container và web server

Để xử lý một request bất kỳ, Servlet Container và web server trải qua các bước sau:

  • Bước 1: Đầu tiên, máy chủ Web sẽ thực hiện nhận HTTP request.
  • Bước 2: Web server chuyển tiếp yêu cầu đã nhận đến Servlet Container.
  • Bước 3: Servlet tự động tiến hành lấy yêu cầu rồi tải chúng lên địa chỉ không gian Container (áp dụng trong trường hợp nó thuộc Container).
  • Bước 4: Container thực hiện lệnh gọi init () method của Servlet (chỉ gọi một lần khi Servlet tải lên lần đầu) để khởi tạo.
  • Bước 5: Container tiến hành gọi service () method của Servlet nhằm mục đích xử lý HTTP request. Điều này có nghĩa, chúng thực hiện việc đọc toàn bộ dữ liệu có trong yêu cầu, sau đó hình thành một response.
  • Bước 6: Cuối cùng, máy chủ Web trả lại kết quả động tương ứng với vị trí yêu cầu.
  • servlet la gi

Vai trò của JVM Servlet là gì?

Sử dụng Servlet cho phép JVM có thể tiến hành xử lý từng yêu cầu riêng lẻ trong mỗi chuỗi Java riêng biệt. Đây cũng là lợi thế nổi bật mà Servlet Container mang lại. Theo đó, một Servlet chính là một lớp Java có các phần tử đặc biệt nhằm dễ dàng đáp ứng được HTTP requests. Lúc này, vai trò của Servlet Container là thực hiện chuyển tiếp những yêu cầu đến chính xác Servlet xử lý, đồng thời trả lại kết quả động tại vị trí tương ứng sau khi JVM hoàn tất xử lý chúng.

Hầu hết Servlet Container chỉ chạy trong duy nhất một JVM, tuy nhiên trong thực tế vẫn có một số ít trường hợp Servlet Container cần nhiều JVM.

JSP Servlet là gì?

JSP tag đặc biệt phần lớn đều bắt đầu bằng ký tự <% và kết thúc bằng ký tự %>.

Trong các ứng dụng mvc pattern, JSP được dùng làm view. Thực tế, JSP hoàn toàn có thể đáp ứng được các yêu cầu khác. Tuy nhiên để thuận tiện trong công tác debug và tái sử dụng những đoạn mã thì hầu hết lập trình viên dùng JSP làm view, Servlet làm controller.

Các thành phần của một trang JSP Servlet là gì?

Một trang JSP gồm các phần sau:

  • Thẻ Root: Đây là thẻ chứa các thuộc tính và tất cả thông tin của một trang JSP.
  • Comment: Tương tự trang HTML, bạn hoàn toàn có thể sử dụng tính năng comment trong JSP với kí hiệu là <! your comment –>
  • Declaration: Đây là thành phần dùng để khai báo các biến hoặc phương thức của Java có trong trang JSP. Tuy nhiên, bạn cần lưu ý là nếu khai báo quá nhiều sẽ xảy ra tình trạng nhầm lẫn code JSP với code Java. Cú pháp khai báo của nó: <%! your code %>
  • Expression: Thành phần này được dùng để chèn trực tiếp một giá trị vào trang.
  • Thẻ biểu thức JSP: Đây là thành phần được dùng để đánh giá biểu thức, cũng như định hướng các output đến trình duyệt website thích hợp. Cú pháp của nó là: <%= your code %>
  • Directive Elements

Ưu điểm của JSP Servlet là gì?

  • Nhờ có một phần mở rộng cho Java nên JSP dễ dàng sử dụng các tính năng củaJava Servlet là gì. Bên cạnh đó, các thẻ tùy chỉnh cũng được dùng cùng với chúng.
  • Khi có sự thay đổi thì người dùng không cần biên dịch lại JSP. Bởi khi JSP chạy, những thay đổi này sẽ tự động xuất hiện.
  • Các thẻ dễ hiểu và dễ viết.
  • Có khả năng hỗ trợ Java API nên lập trình viên dễ dàng sử dụng và thuận tiện trong việc tích hợp cùng với mã HTML.
  • Tất cả kết quả trả về đều có định dạng HTML nên dễ dàng mở được trên mọi trình duyệt.
  • Thẻ JSP tùy chỉnh dễ sử dụng, điển hình như thẻ có XML.
  • Dễ dàng thêm thay đổi vào business logic page, đem đến sự thuận tiện cho người dùng hơn. Bởi nó đã loại bỏ được thao tác thay đổi trong từng trang.

Nhược điểm của JSP Servlet là gì?

  • Theo lý thuyết, người dùng có thể truy cập cơ sở dữ liệu bằng JSP nhưng thực tế khó thực hiện vì phần các servlet không hỗ trợ.
  • JSP thực chất cũng là một servlet nên trong trường hợp code có vấn đề thì rất khó theo dõi.
  • Thời gian biên dịch JSP lâu.
  • servlet la gi

Phân biệt giữa JSP và Servlet

Dù JSP có bản chất là một Servlet nhưng nó cũng có nhiều điểm khác biệt so với Servlet. Vậy điểm khác biệt vớiServlet là gì? Đó chính là những điểm sau:

  • JSP là mã dựa trên HTML, còn Servlet là mã Java.
  • Mã của JSP là Java trong HTML nên viết khá dễ, còn Servlet là HTML trong Java nên viết mã khó hơn.
  • JSP tiếp cận MVC và hiển thị đầu ra, còn Servlet điều khiển cách tiếp cận MVC.
  • Bước đầu tiên của JSP là dịch mã Java rồi biên dịch nên JSP làm việc chậm hơn so với Servlet.
  • JSP chỉ chấp nhận duy nhất yêu cầu của giao thức HTTP. Trong khi đó, Servlet chấp nhận được tất cả yêu cầu của các giao thức.
  • JSP không cho phép người dùng ghi đè lên phương thức service (), còn Servlet thì cho phép.
  • JSP bật tự động quản lý phiên. Đối với Servlet thì người dùng phải thực hiện thao tác bật quản lý phiên.
  • Bằng cách dùng JavaBeans, trong logic nghiệp vụ, người dùng có thể tách JSP khỏi logic trình bày. Còn với Servlet thì người dùng phải thực hiện cả logic nghiệp vụ lẫn logic trình bày.
  • JSP có khả năng sửa lỗi nhanh thông qua việc người dùng chỉ cần nhấn vào nút làm mới. Ngược lại, Servlet sẽ khiến các lập trình viên tiêu tốn nhiều thời gian, vì nó phải trải qua các hoạt động như tải lại, tái biên dịch và tái khởi động máy chủ.

JSP là gì?

JSP (Java server pagehayJava Scripting Preprocessor– tạm dịch là“Bộ tiền xử lý văn lệnh Java”) là một công nghệ Java cho phép các nhà phát triển tạo nội dung HTML, XML hay một số định dạng khác khiến cho trang web sinh động hớn.

Các JSP tag đặc biệt, hầu hết bắt đầu với <% và kết thúc với %>.

GIF

JSP Servlet là gì? Tìm hiểu về JSP Servlet toàn tập 5

JSP thường đượclàm view trong ứng dụng mvc pattern. Thực ra, JSP vẫn có thể đáp ứng những yêu cầu khác nhưng để thuận tiện cho việc debug hay tái sử dụng các đoạn mã thì người ta thường dùng làm view còn servlet sẽ làm controller.)

Một trang JSP có những thành phần gì?

  • Thẻ Root:Thẻ này sẽ chứa các thuộc tính, thông tin của trang JSP.
  • Comment: Cũng như trang HTML , trong JSP, bạn cũng có thể comment với kí hiệu này:<! your comment –>
  • Declaration:khai báo biến hoặc phương thức của java ngay trong trang JSP. Nhưng nếu như khai báo quá nhiều trong trang thì sẽ bị nhầm lẫn giữa code JSP và code java. Cú pháp là<%! your code %>
  • Expression:được sử dụng để chèn một giá trị vào trong trang một cách trực tiếp.
  • Thẻ biểu thức JSP:được sử dụng để đánh giá một biểu thức và định hướng các output đến một trình duyệt web phù hợp. Cú pháp khai báo là:<%= your code %>
  • Scriptlet Tag:cho phép bạn viết mã java trong trang JSP. Cú pháp như sau :<% <i> mã java </ i>%>
  • Directive Elements

“Chu kỳ sống” JSP

JSP Servlet là gì? Tìm hiểu về JSP Servlet toàn tập 6

Ưu điểm của JSP:

  • Hỗ trợ cho việcthiết kế giao diện webdễ dàng hơn.
  • Có vai trò lớn trong việc cho phép thiết kế web tạo nên nhữngtrang web động.
  • Có thể viết một nơi và chạybất cứ nơi nào.

Hạn chế:

  • Tiêu tốndung lượnglưu trữ phía servergấp đôi.
  • Lần đầu tiên truy cập vào trang JSP sẽmất nhiều thời gian chờ.

Servlet là gì?

Servlet có thể được mô tả bằng nhiều cách, tùy thuộc vào ngữ cảnh:

  • Một công nghệ được sử dụng để tạo ra ứng dụng web.
  • Một API cung cấp các interface và lớp bao gồm các tài liệu.
  • Một thành phần web được triển khai trên máy chủ để tạo ra trang web động.Có nhiều interface và các lớp trong API servlet như Servlet, GenericServlet, HttpServlet, ServletRequest, ServletResponse, …

Java Servlet là chương trình chạy trên một Web hoặc ứng dụng máy chủ (Application Server). Nó hoạt động như một lớp trung gian giữa một yêu cầu đến từ một trình duyệt Web hoặc HTTP khách (Client) khác và cơ sở dữ liệu hoặc các ứng dụng trên máy chủ HTTP (HTTP Server).

Hiểu đơn giản, Servlet là một chương trình chạy trên môi trường Web_Server hoặc môi trường Application có thực thi mã java với nhiệm vụ chính là giúp thực thi câu lệnh một cách độc lập giúp kết nối các lớp với nhau.

Ví dụ: kết nối với cơ sở giữ liệu, thu thập dữ liệu từ form.

Servlet có công dụng gì?

  • Nhận client request và lấy thông tin từ request:Đọc dữ liệu rõ ràng do khách hàng (trình duyệt) gửi
  • Xử lý nghiệp vụ và phát sinh chuyên môn ( bằng cách truy cập database):Quá trình xử lý dữ liệu và tạo ra các kết quả này có thể yêu cầu nói chuyện với một cơ sở dữ liệu, thực hiện một cuộc gọi RMI hoặc CORBA, gọi một dịch vụ Web, hoặc tính trực tiếp phản hồi.
  • Tạo và gửi request đến client hoặc tại request mới đến Servlet mới hoặc JSP mới:Không chỉ gửi dữ liệu rõ ràng (tức là tài liệu) tới khách hàng (trình duyệt) dưới nhiều định dạng như văn bản (HTML hoặc XML), nhị phân (hình ảnh GIF), Excel, …. mà còn gửi phản hồi HTTP ẩn cho khách hàng (trình duyệt). Điều này bao gồm nói với trình duyệt hoặc các trình khách khác loại tài liệu đang được trả về (ví dụ, HTML), thiết lập cookie và các tham số bộ nhớ đệm, và các tác vụ khác.

“Chu kỳ sống” Servlet

JSP Servlet là gì? Tìm hiểu về JSP Servlet toàn tập 7

Môi trường làm việc của Servlet

Một Servlet là một lớp Java và vì thế cần được thực thi trên một máy ảo Java (JVM) bằng một dịch vụ gọi là servlet engine. Servlet engine tải lớp servlet lần đầu tiên servlet được yêu cầu, hoặc ngay khi servlet engine được bắt đầu. Servlet ngừng tải để xử lý nhiều yêu cầu khi servlet engine bị tắt hoặc nó bị dừng lại.

JSP Servlet là gì? Tìm hiểu về JSP Servlet toàn tập 8

Tóm lại, JSP là mở rộng của Servlet. Trong thực tế, JSP và Servlet được sử dụng đồng thời để phát triển ứng dụng.

Nếu JSP đại diện cho trang web thì Servlet đại diện cho các thành phần Java.

Servlet viết code HTML khó khăn hơn, nhưng viết code Java cực kỳ đơn giản. Ngược lại với Servlet, JSP viết code HTML cực kỳ dễ dàng tuy nhiên việc viết code Java khó khăn và gây rối cho người mới bắt đầu học Java web.

Trong mô hình MVC, Servlet xử lý phần controller còn JSP xử lý phần view

Tại sao bạn nên biết Servlet

Nếu bạn đang đi theo hướng java web thì bạn nên biết về servlet vì nó là core của java web.

Nhưng bạn chỉ cần học servlet ở mức độ biết là đủ, không cần đi sâu. Vì hiện nay có khá nhiều framework mạnh mẽ được sử dụng để tạo ra một trang web bằng java. Như Spring MVC Web, Struts, …

Nguồn: Tổng hợp và tham khảo

  • //hostingviet.vn/servlet-la-gi
  • //wiki.tino.org/jsp-servlet-la-gi/

Từ khóa » Jsp Toàn Tập