JSP: 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

Một servlet là một lớp ngôn ngữ lập trình Java được sử dụng để mở rộng khả năng của các máy chủ lưu trữ các ứng dụng truy cập bằng một mô hình lập trình yêu cầu phản hồi. Mặc dù servlet có thể đáp ứng bất kỳ loại yêu cầu nào, chúng thường được sử dụng để mở rộng các ứng dụng được lưu trữ bởi các máy chủ web. Đối với các ứng dụng như vậy, công nghệ Java Servlet xác định các lớp servlet cụ thể của HTTP.

Gói javax.servlet và javax.servlet.http cung cấp các giao diện và các lớp cho việc viết servlet. Tất cả các servlet phải thực hiện giao diện Servlet , định nghĩa các phương pháp vòng đời. Khi triển khai một dịch vụ generic, bạn có thể sử dụng hoặc mở rộng lớp GenericServlet được cung cấp với API Servlet Java. Lớp HttpServletcung cấp các phương thức, chẳng hạn như doGet và doPost , để xử lý các dịch vụ cụ thể của HTTP.

Chương này tập trung vào việc viết các servlet tạo các đáp ứng cho các yêu cầu HTTP.

Các ví dụ Servlet

Chương này sử dụng ứng dụng Bookstore của Duke để minh hoạ cho các nhiệm vụ liên quan đến các servlet lập trình. Mã nguồn cho ứng dụng hiệu sách được đặt trong Tut-install / javaeetutorial5 / examples / web / bookstore1 / thư mục, được tạo ra khi bạn giải nén gói hướng dẫn (xem Building the Examples ).

Bảng 4-1 liệt kê các servlet xử lý từng chức năng của hiệu sách. Bạn có thể tìm thấy các lớp servlet này trongTut-install / javaeetutorial5 / example / web / bookstore1 / src / java / com / sun / nhà sách1 / . Mỗi nhiệm vụ lập trình được minh hoạ bởi một hoặc nhiều servlet. Ví dụ: BookDetailsServlet minh hoạ làm thế nào để xử lý các yêu cầu HTTP GET , BookDetailsServlet và CatalogServlet thể hiện cách xây dựng các câu trả lời và CatalogServlet mô tả cách theo dõi thông tin phiên.

Chức năng

Servlet

Nhập hiệu sách

BookStoreServlet

Tạo biểu ngữ hiệu sách

BannerServlet

Duyệt danh mục sách

CatalogServlet

Đặt một cuốn sách trong một giỏ hàng

CatalogServlet ,

BookDetailsServlet

Nhận thông tin chi tiết về một cuốn sách cụ thể

BookDetailsServlet

Hiển thị giỏ hàng

ShowCartServlet

Xóa một hoặc nhiều sách khỏi giỏ hàng

ShowCartServlet

Mua sách trong giỏ hàng

CashierServlet

Gửi xác nhận mua hàng

ReceiptServlet

Các cửa hàng sách của Duke

Dữ liệu cho các ứng dụng hiệu sách được duy trì trong một cơ sở dữ liệu và truy cập thông qua cơ sở dữ liệu truy cập cơ sở dữ liệu lớp.BookDBAO . Các cơ sở dữ liệu gói cũng chứa các lớp Sách đại diện cho một cuốn sách. Giỏ hàng và mặt hàng giỏ hàng được đại diện bởi các lớp học cart.ShoppingCart và cart.ShoppingCartItem tương ứng.

Để triển khai và chạy ứng dụng bằng cách sử dụng NetBeans IDE, hãy làm theo các bước sau:

  1. Thực hiện tất cả các thao tác được mô tả trong Accessing Databases from Web Applications .

  2. Trong NetBeans IDE, chọn File → Open Project.

  3. Trong hộp thoại Mở dự án, hãy điều hướng đến:

    Tut-install / javaeetutorial5 / ví dụ / web /
  4. Chọn thư mục bookstore1 .

  5. Chọn hộp kiểm Open as Main Project và hộp kiểm Open Required Projects.

  6. Nhấp vào Mở dự án.

  7. Trong tab Dự án, nhấp chuột phải vào dự án bookstore1 , và chọn Undeploy and Deploy.

  8. Để chạy ứng dụng, hãy mở cửa hàng sách http: // localhost: 8080 / bookstore1 / bookstore .

Để triển khai và chạy ứng dụng bằng Ant, hãy làm theo các bước sau:

  1. Trong cửa sổ terminal, vào Tut-install / javaeetutorial5 / example / web / nhà sách1 / .

  2. Gõ ant . Lệnh này sẽ sinh ra bất kỳ biên soạn cần thiết, sao chép các tập tin vàoTut-install / javaeetutorial5 / examples / web / bookstore1 / build / , và tạo một tệp tin WAR và sao chép nó vào thư mụcTut-install / javaeetutorial5 / example / web / bookstore1 / dist / thư mục.

  3. Khởi động Máy chủ Ứng dụng.

  4. Thực hiện tất cả các thao tác được mô tả trong Tạo một nguồn dữ liệu trong Máy chủ ứng dụng .

  5. Để triển khai ví dụ, gõ ant triển khai . Mục tiêu triển khai xuất ra một URL để chạy ứng dụng. Bỏ qua URL này và thay vào đó sử dụng URL này được hiển thị trong bước tiếp theo.

  6. Để chạy ứng dụng, hãy mở cửa hàng sách http: // localhost: 8080 / bookstore1 / bookstore .

Để tìm hiểu cách định cấu hình ví dụ, hãy tham khảo descriptor triển khai ( tệp web.xml ), bao gồm các cấu hình sau:

  • Một phần tử tên hiển thị chỉ định tên mà các công cụ sử dụng để xác định ứng dụng.

  • Một bộ các phần tử lọc xác định bộ lọc servlet chứa trong ứng dụng.

  • Một bộ các phần tử lập bản đồ lọc xác định những servlet nào sẽ có yêu cầu hoặc phản hồi của chúng lọc bởi các bộ lọc được xác định bởi các phần tử lọc . Một phần tử bản đồ lọc có thể định nghĩa nhiều hơn một bản đồ servlet và nhiều hơn một mẫu URL cho một bộ lọc cụ thể.

  • Một bộ các phần tử servlet xác định tất cả các thể hiện servlet của ứng dụng.

  • Một bộ các phần tử ánh xạ servlet ánh xạ các servlet tới các mẫu URL. Có thể định nghĩa nhiều hơn một mẫu URL cho một servlet cụ thể.

  • Một tập hợp các bản đồ lỗi trang ánh xạ các loại ngoại lệ cho một trang HTML, để trang HTML mở ra khi một ngoại lệ của kiểu đó được ném ra bởi ứng dụng.

Khắc phục sự cố các vấn đề cơ sở dữ liệu của Duke's Bookstore

Đối tượng truy cập cơ sở dữ liệu Bookstore của Công tước Duke's trả về các ngoại lệ sau:

  • BookNotFoundException : Trả về nếu một cuốn sách không thể được đặt trong cơ sở dữ liệu sách. Điều này sẽ xảy ra nếu bạn không nạp cơ sở dữ liệu hiệu sách với dữ liệu hoặc máy chủ đã không được bắt đầu hoặc đã bị rơi. Bạn có thể điền vào cơ sở dữ liệu bằng cách chạy ant-create-tables .

  • BooksNotFoundException : Được trả lại nếu không thể truy xuất dữ liệu hiệu sách. Điều này sẽ xảy ra nếu bạn không nạp cơ sở dữ liệu hiệu sách với dữ liệu hoặc nếu máy chủ cơ sở dữ liệu chưa được khởi động hoặc nó đã bị rơi.

  • UnavailableException : Được trả lại nếu một servlet không thể truy xuất thuộc tính ngữ cảnh web đại diện cho hiệu sách. Điều này sẽ xảy ra nếu máy chủ cơ sở dữ liệu đã không được bắt đầu.

Bởi vì bạn đã xác định một trang lỗi, bạn sẽ thấy thông báo

Ứng dụng không khả dụng. Hãy thử lại sau.

Nếu bạn không chỉ định trang lỗi, vùng chứa web sẽ tạo một trang mặc định có chứa thông báo

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

Và dấu vết ngăn xếp có thể giúp bạn chẩn đoán nguyên nhân của ngoại lệ. Nếu bạn sử dụng errorpage.html , bạn sẽ phải tìm trong nhật ký máy chủ để xác định nguyên nhân của ngoại lệ.

» Tiếp: Chu kỳ sống của Servlet
« Trước: Truy cập cơ sở dữ liệu từ các ứng dụng Web
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 !!!