xu ly ngoai le trong servlet

4 105 0
xu ly ngoai le trong servlet

Đang tải... (xem toàn văn)

Thông tin tài liệu

http://vietjack.com/  servlets/index.jsp                                                                                                              Copyright  ©  vietjack.com     Xử lý ngoại lệ (Exception) Servlet Khi Servlet ném Exception, Web container tìm kiếm cấu hình (Configuration) web.xml mà sử dụng phần tử loại exception để kết nối với loại exception ném Bạn phải sử dụng phần tử error.page web.xml để xác định triệu hồi Servlet phản hồi tới exceptions HTTP status codes cụ thể Cấu hình web.xml Giả sử, bạn có Servlet ErrorHandler mà gọi có exception error định nghĩa Sau entry tạo web.xml ErrorHandler ErrorHandler ErrorHandler /ErrorHandler 404 /ErrorHandler 403 /ErrorHandler javax.servlet.ServletException /ErrorHandler java.io.IOException /ErrorHandler Nếu bạn muốn có Error Handler chung cho tất Exception, bạn nên định nghĩa error-page sau thay cho việc định nghĩa phần tử error-page riêng biệt cho exception java.lang.Throwable /ErrorHandler Sau số điểm đáng ý web.xml để Xử lý Exception: • ErrorHandler định nghĩa theo cách thông thường Servlet khác định cấu hình bên web.xml • Nếu có lỗi với Status code 404 (Not Found) 403 (Forbidden), ErrorHandler servlet triệu hồi http://vietjack.com/                                                                                                                              Trang  chia  sẻ  các  bài  học  online  miễn  phí  Page  1   http://vietjack.com/  servlets/index.jsp                                                                                                             Copyright â vietjack.com Nu ng dng web ném ServletException hoặ IOException, Web container triệu hồi ErrorHandler servlet • Bạn định nghĩa Error Handler khác để xử lý loại Error Exception khác Ví dụ ví dụ chung hi vọng giải thích cho bạn hiểu khái niệm Các thuộc tính Request: Error/Exception Bảng liệt kê thuộc tính request mà Servlet xử lý lỗi truy cập để phân tích chất Error/Exception: STT Thuộc tính Miêu tả javax.servlet.error.status_code Thuộc tính cung cấp status code mà lưu giữ phân tích sau lưu giữ kiểu liệu java.lang.Integer javax.servlet.error.exception_type Thuộc tính cung cấp thơng tin loại exception mà lưu giữ phân tích sau lưu giữ kiểu liệu java.lang.Class javax.servlet.error.message Thuộc tính cung cấp thơng báo lỗi xác mà lưu giữ phân tích sau lưu giữ kiểu liệu java.lang.String javax.servlet.error.request_uri Thuộc tính cung cấp thơng tin URL triệu hồi tới Servlet lưu giữ phân tích sau lưu giữ kiểu liệu java.lang.String javax.servlet.error.exception http://vietjack.com/                                                                                                                              Trang  chia  sẻ  các  bài  học  online  miễn  phí  Page  1   http://vietjack.com/  servlets/index.jsp                                                                                                              Copyright  ©  vietjack.com     Thuộc tính cung cấp thơng tin exception mà lưu giữ phân tích sau lưu giữ kiểu liệu java.lang.Throwable javax.servlet.error.servlet_name Thuộc tính cung cấp tên Servlet mà lưu phân tích sau lưu giữ kiểu liệu java.lang.String Ví dụ xử lý ngoại lệ Servlet Sau ví dụ Servlet mà sử dụng Error Handler trường hợp có error exception xuất với Servlet định nghĩa bạn Ví dụ giúp bạn hiểu Xử lý ngoại lệ Servlet, bạn viết chương trình phức tạp sử dụng khái niệm // Import required java libraries import java.io.*; import javax.servlet.*; import javax.servlet.http.*; import java.util.*; // Extend HttpServlet class public class ErrorHandler extends HttpServlet { // Method to handle GET method request public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // Analyze the servlet exception Throwable throwable = (Throwable) request.getAttribute("javax.servlet.error.exception"); Integer statusCode = (Integer) request.getAttribute("javax.servlet.error.status_code"); String servletName = (String) request.getAttribute("javax.servlet.error.servlet_name"); if (servletName == null){ servletName = "Unknown"; } String requestUri = (String) request.getAttribute("javax.servlet.error.request_uri"); if (requestUri == null){ requestUri = "Unknown"; } // Set response content type response.setContentType("text/html"); PrintWriter out = response.getWriter(); String title = "Error/Exception Information"; String docType = "\n"; out.println(docType + "\n" + "" + title + "\n" + "\n"); if (throwable == null && statusCode == null){ out.println("Error information is missing"); out.println("Please return to the Home Page."); }else if (statusCode != null){ out.println("The status code : " + statusCode); }else{ out.println("Error information"); out.println("Servlet Name : " + servletName + ""); out.println("Exception Type : " + throwable.getClass( ).getName( ) + ""); out.println("The request URI: " + requestUri + http://vietjack.com/                                                                                                                              Trang  chia  sẻ  các  bài  học  online  miễn  phí  Page  1   http://vietjack.com/  servlets/index.jsp                                                                                                              Copyright  ©  vietjack.com     ""); out.println("The exception message: " + throwable.getMessage( )); } out.println(""); out.println(""); } // Method to handle POST method request public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request, response); } } Biên dịch ErrorHandler.java theo cách thông thường đặt class file /webapps/ROOT/WEB-INF/classes Chúng ta thêm cấu hình sau web.xml để xử lý ngoại lệ: ErrorHandler ErrorHandler ErrorHandler /ErrorHandler 404 /ErrorHandler java.lang.Throwable /ErrorHandler Bây bạn thử sử dụng Servlet mà nêu exception loại lỗi URL, kích hoạt Web Container để gọ ErrorHandler servlet hiển thị thơng báo thích hợp lập trình Ví dụ, bạn soạn URL lỗi, cho thơng báo sau: The status code : 404 Code khơng làm việc số trình duyệt, thế, bạn sử dụng Mozilla Safari làm việc   http://vietjack.com/                                                                                                                              Trang  chia  sẻ  các  bài  học  online  miễn  phí  Page  1   ... ngoại lệ: ErrorHandler< /servlet- name> ErrorHandler< /servlet- class> < /servlet> ErrorHandler< /servlet- name>... doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // Analyze the servlet exception Throwable throwable = (Throwable) request.getAttribute("javax .servlet. error.exception");... java.lang.Throwable javax .servlet. error .servlet_ name Thuộc tính cung cấp tên Servlet mà lưu phân tích sau lưu giữ kiểu liệu java.lang.String Ví dụ xử lý ngoại lệ Servlet Sau ví dụ Servlet mà sử dụng

Ngày đăng: 02/12/2017, 22:30

Tài liệu cùng người dùng

Tài liệu liên quan