JSP: Chu kỳ sống của Servlet

Các khóa học qua video:
Python SQL Server PHP C# Lập trình C Java HTML5-CSS3-JavaScript
Học trên YouTube <76K/tháng. Đăng ký Hội viên
Viết nhanh hơn - Học tốt hơn
Giải phóng thời gian, khai phóng năng lực

Chu kỳ sống của một servlet được kiểm soát bởi vùng chứa, trong đó servlet đã được triển khai. Khi yêu cầu được ánh xạ tới một servlet, container thực hiện các bước sau.

  1. Nếu một thể hiện của servlet không tồn tại, thùng chứa web

    1. Tải lớp servlet.

    2. Tạo một thể hiện của lớp servlet.

    3. Khởi tạo instance servlet bằng cách gọi phương thức init . Khởi tạo được bao gồm trong Khởi tạo Servlet .

  2. Gọi phương thức dịch vụ , chuyển yêu cầu và đối tượng phản hồi. Các phương pháp dịch vụ được thảo luận trong các Phương pháp Dịch vụ Viết .

Nếu bộ chứa cần gỡ bỏ servlet, nó sẽ hoàn thiện servlet bằng cách gọi phương thức hủy của servlet . Finalization được thảo luận trong Finalizing a Servlet .

Xử lý Sự kiện Đời sống Servlet

Bạn có thể theo dõi và phản ứng với các sự kiện trong chu kỳ cuộc sống của một servlet bằng cách định nghĩa đối tượng người nghe có phương pháp nhận được viện dẫn khi các sự kiện cuộc sống-chu kỳ xảy ra. Để sử dụng các đối tượng nghe này bạn phải định nghĩa và xác định lớp nghe.

Xác định lớp Listener

Bạn xác định một lớp nghe như một sự thực hiện của một giao diện nghe. Bảng dưới đây liệt kê các sự kiện có thể được theo dõi và giao diện tương ứng phải được thực hiện. Khi một phương thức nghe được gọi ra, nó được thông qua một sự kiện có chứa thông tin phù hợp với sự kiện. Ví dụ, các phương pháp trongHttpSessionListener giao diện được thông qua một HttpSessionEvent , trong đó có một HttpSession .

 

Vật

Biến cố

Giao diện người nghe và lớp sự kiện

Ngữ cảnh Web (xem Truy cập Bối cảnh Web )

Khởi tạo và tiêu huỷ

Javax.servlet.ServletContextListener và

ServletContextEvent

Thuộc tính được thêm, xóa hoặc thay thế

Javax.servlet.ServletContextAttributeListener và

ServletContextAttributeEvent

Phiên (Xem Duy trì Nhà nước của Khách hàng )

Tạo, hủy bỏ hiệu lực, kích hoạt, thụ động và thời gian chờ

javax.servlet.http.HttpSessionListener , javax.servlet.http.HttpSessionActivationListener , và

HttpSessionEvent

Thuộc tính được thêm, xóa hoặc thay thế

Javax.servlet.http.HttpSessionAttributeListener và

HttpSessionBindingEvent

Yêu cầu

Yêu cầu servlet đã bắt đầu được xử lý bởi các thành phần web

Javax.servlet.ServletRequestListener và

ServletRequestEvent

Thuộc tính được thêm, xóa hoặc thay thế

Javax.servlet.ServletRequestAttributeListener và

ServletRequestAttributeEvent

Sự kiện vòng đời của Servlet

Các tut cài đặt / javaeetutorial5 / ví dụ / web / bookstore1 / src / java / com / CN / bookstore1 / nghe / ContextListener lớp tạo ra và loại bỏ các truy cập cơ sở dữ liệu và các đối tượng truy cập được sử dụng trong ứng dụng sách của Duke. Các phương thức lấy ra đối tượng ngữ cảnh web từ ServletContextEvent và sau đó lưu trữ (và loại bỏ) các đối tượng như các thuộc tính ngữ cảnh servlet.

Nhập cơ sở dữ liệu.BookDBAO;
Nhập khẩu javax.servlet. *;
Nhập khẩu util.Counter;

Nhập khẩu javax.ejb. *;
Nhập khẩu javax.persistence. *;

Lớp cuối cùng công khai ContextListener
    Thực hiện ServletContextListener {
    Private ServletContext context = null;

    @PersistenceUnit
    EntityManagerFactory emf;

    Public void contextInitialized (Sự kiện ServletContextEvent) {
        Context = event.getServletContext ();
        thử {
            BookDBAO bookDB = BookDBAO mới (emf);
            Context.setAttribute ("bookDB", bookDB);
        } Catch (Exception ex) {
            System.out.println (
                "Không thể tạo ra cơ sở dữ liệu:" + ex.getMessage ());
        }
        Số lượt truy cập = new Counter ();
        Context.setAttribute ("hitCounter", truy cập);
        Counter = new Counter ();
        Context.setAttribute ("orderCounter", truy cập);
    }

    Public void contextDestroyed (Sự kiện ServletContextEvent) {
        Context = event.getServletContext ();
        BookDBAO bookDB = context.getAttribute ("bookDB");
        BookDB.remove ();
        Context.removeAttribute ("bookDB");
        Context.removeAttribute ("hitCounter");
        Context.removeAttribute ("orderCounter");
    }
}

Chỉ định các lớp Trình nghe sự kiện

Bạn chỉ định lớp lắng nghe sự kiện sử dụng phần tử lắng nghe của descriptor triển khai. Xem lại Các ví dụ Servlet để biết thông tin về cách xác định lớp Listener ContextListener .

Bạn có thể chỉ định một trình lắng nghe sự kiện sử dụng trình soạn thảo descriptor triển khai của NetBeans IDE bằng cách làm như sau:

  1. Mở rộng nút dự án của ứng dụng.

  2. Mở rộng các trang Web của dự án và các nút WEB-INF.

  3. Nhấp đúp vào web.xml .

  4. Nhấp vào Chung ở đầu trình biên tập web.xml .

  5. Mở rộng nút Trình nghe Nghe Web.

  6. Nhấp vào Thêm.

  7. Trong hộp thoại Thêm người nghe, nhấp vào Duyệt để định vị lớp người nghe.

  8. Nhấp OK.

Xử lý lỗi Servlet

Bất kỳ số ngoại lệ nào có thể xảy ra khi một servlet thực hiện. Khi một ngoại lệ xảy ra, vùng chứa web tạo ra trang mặc định có chứa thông báo

Ngoại lệ Servlet Đã xảy ra

Nhưng bạn cũng có thể chỉ định rằng vùng chứa sẽ trả về một trang lỗi cụ thể cho một ngoại lệ cụ thể. Xem lại các tập tin mô tả triển khai kèm với ví dụ để học cách lập bản đồ các trường hợp ngoại lệ exception.BookNotFound , exception.BooksNotFound , và exception.OrderException trả về bởi ứng dụng sách của Duke để errorpage.html .

Xem Lập bản đồ Lỗi đến Lỗi Màn hình để được hướng dẫn về cách chỉ định các trang lỗi bằng cách sử dụng NetBeans IDE.

» Tiếp: Chia sẻ thông tin trong Servlet
« Trước: Servlet là gì?
Các khóa học qua video:
Python SQL Server PHP C# Lập trình C Java HTML5-CSS3-JavaScript
Học trên YouTube <76K/tháng. Đăng ký Hội viên
Viết nhanh hơn - Học tốt hơn
Giải phóng thời gian, khai phóng năng lực
Copied !!!