Gia phả servlet

      

Servlet là gì :
- Java Servlets là các chương trình chạy trên một Web server hoặc một Application server và thực hiện như là một tầng trung gian giữa một Yêu cầu từ một trình duyệt web hoặc HTTP client với các Database hoặc các ứng dụng trên HTTP server.

- Sử dụng Servlets, bạn có thể thu thập Input từ người sử dụng thông qua các form trên trang web, hiển thị các bản ghi (record) từ một Database hoặc từ nguồn khác, và tạo các trang web động.
Vòng đời của Servlet (Servlet life cycle) :



-  Có thể hiểu vòng đời servlet là Một Servlet khi khởi tạo thì nói sống mãi trong bộ nhớ của server. Luôn lắng nghe và chờ đợi khí người dùng yêu cầu đến nó thì sẽ sẵn dùng chứ không cần khởi tạo một lần nữa.. Servlet chỉ ngừng lại khi chúng ta Stop hay Restart lại server.
-    Khi lần đầu tiên được triệu gọi thì phương thức init() sẽ được gọi một lần duy nhất, sau đó nó sẽ thực hiện một trong các phương thức doGet(), doPost() <để không cần phân biệt get hay post chúng ta chỉ cần code trong hàm processRequesst, nó sẽ được triệu gọi dù get hay post>… và các lần gọi sau chúng chỉ thực hiện các hàm này. Phương thức destroy() trái lại với hàm init() nó sẽ được triệu gọi trước khi server restart hay stop và giải phóng các tài nguyên đã cấp phát ở hàm init().

– Phương thức init():Chỉ được gọi một lần trước khi servlet xử lý các request (trước khi service() được gọi). Method này có thể override, được sử dụng để khởi tạo các resource.

– Phương thức Services(): Được gọi bởi container khi client yêu cầu , có thể được gọi nhiều lần để xử lý các request.Service() dựa vào HTTP request để gọi các doXXX() tương ứng. Method này được xử lý trong từng thread riêng biệt. Không nên override.

– Phương thức DoXXX():được gọi bởi service() tùy theo HTTP request. Các method này chứa code thực sự xử lý request. Nếu doXXX tương ứng với HTTP request không được override, thì doXXX trong HttpServlet class sẽ được gọi và trả về message “the HTTP method is not implemented.”

– Phương thức Destroy():Chỉ được gọi chính xác 1 lần bởi container. Có thể override để clean resource
Mối quan hệ giữa Servlet,  HttpServlet và GenericServlet:
- Ta có servlet extends --> HttpServlet extend--> GenericServlet implements -->các interface(như Servlet, ServletConfig, Serializable ) .

  • GenericServlet cung cấp các chức năng cơ bản, độc lập giao thức, để tạo servlet. Thừa kế lớp này để tạo các lớp servlet cho dịch vụ không phải HTTP (non-HTTP). Khi thừa kế lớp này, ta cần viết lại phương thức service.

  • HttpServlet là lớp trừu tượng thừa kế GenericServlet và thêm vào các chức năng cho riêng HTTP. Khi xây dựng ứng dụng web, đa số các lớp servlet do ta viết sẽ thừa kế HttpServlet.
Sơ đồ gia phả Servlet :





Comments

Popular Posts