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
Post a Comment