Khi yêu cầu HTTP đến từ khách hàng, các Servlet Controller nhìn lên trong một thuộc tính tập tin để quyết định việc class quyền cho các bộ xử lý yêu cầu HTTP. Lớp này handler được gọi là các Handler Yêu cầu. Các Handler Yêu cầu chứa các logic trình bày cho rằng yêu cầu HTTP bao gồm cả gọi logic kinh doanh. Nói cách khác, các Handler Yêu cầu làm mọi thứ cần thiết để xử lý các yêu cầu HTTP. Sự khác biệt duy nhất cho đến nay từ xương trần MVC là các controller servlet nhìn lên trong một thuộc tính tập tin để khởi tạo các bộ xử lý thay vì gọi nó trực tiếp.
Ví dụ :
public class MyControllerServlet extends HttpServlet {
private Properties props;
public init(ServletConfig config) throws ServletException {
try {
props = new Properties();
props.load(new FileInputStream("C:/file.properties"));
} catch (IOException ioe) {
throw new ServletException(ioe);
}
}
public void doGet(HttpServletRequest httpRequest,
HttpServletResponse httpResponse) throws ServletException, IOException {
String urlPath = httpRequest.getPathInfo();
String reqhandlerClassName = (String) props.get(urlPath);
HandlerInterface handlerInterface = (HandlerInterface)
Class.forName(reqhandlerClassName).newInstance();
String nextView = handlerInterface.execute(httpRequest);
rd.forward(httpRequest, httpResponse);
}
}
Trong lúc này, bạn có thể tự hỏi làm thế nào điều khiển servlet sẽ biết để khởi tạo các handler thích hợp. Câu trả lời là đơn giản. Hai HTTP yêu cầu khác nhau không thể có cùng một URL. Do đó bạn có thể chắc chắn rằng URL xác định duy nhất từng yêu cầu HTTP trên phía máy chủ và do đó mỗi URL cần một Handler duy nhất. Trong thuật ngữ đơn giản, có một ánh xạ một-một giữa các URL và lớp Handler. Thông tin này được lưu giữ như là chìa khóa cặp giá trị trong tập tin thuộc tính. Các Controller Servlet tải các thuộc tính tập tin khi khởi động để tìm các yêu cầu thích hợp cho từng yêu cầu Handler URL gửi đến.
Các bộ điều khiển sử dụng Java servlet Reflection để khởi tạo các yêu cầu Handler. Tuy nhiên phải có một số loại tương đồng giữa người xử lý yêu cầu cho các servlet để chung về khởi sự Handler Yêu cầu. Tính phổ biến là tất cả các yêu cầu Handler các lớp thực hiện một giao diện chung. Cho chúng tôi gọi đây là giao diện phổ biến như Handler giao diện. Trong hình thức đơn giản của nó, các Handler
Giao diện là một trong những phương pháp nói, execute(). Các servlet điều khiển đọc các thuộc tính tập tin để khởi tạo các Handler Yêu cầu như thể hiện trong chương trình trên.
Các Servlet Controller instantiates các Handler Yêu cầu trong doGet() và gọi phương thức các phương pháp execute() phương pháp trên nó bằng cách sử dụng Java Reflection. Việc execute() phương pháp gọi phương thức logic kinh doanh thích hợp từ các lớp giữa và sau đó chọn xem tiếp theo sẽ được trình bày cho người dùng. Các servlet điều khiển chuyển các yêu cầu cho xem JSP chọn. Tất cả điều này xảy ra trong doGet() của servlet controller. Những doGet () phương pháp vòng đời không bao giờ thay đổi. Những thay đổi là phương pháp execute(). Yêu cầu của các Handler. Bạn có thể không nhận ra nó, nhưng bạn chỉ thấy làm thế nào các công trình Struts Tóm lại! Struts là một servlet điều khiển dựa trên cấu hình MVC Framework mà thực hiện được xác định trước phương pháp trong các đối tượng xử lý. Thay vì sử dụng một thuộc tính tập tin như chúng tôi đã làm trong ví dụ này, Struts sử dụng XML để lưu trữ thông tin hữu ích hơn.

Không có nhận xét nào:
Đăng nhận xét