2010-01-13 36 views
6

Tôi đang nghĩ đến việc triển khai Bộ điều khiển mặt trước trong ứng dụng J2EE của mình. Bạn có thể đề xuất tương tự với vài liên kết (với các ví dụ mã nguồn) & bất kỳ tiêu chuẩn nào để theo dõi không?Bộ điều khiển mặt trước Java

Trân trọng

+0

Còn khung công tác Spring MVC thì sao? http://www.springsource.org/ –

+4

J2EE được thay thế bằng Java EE từ hơn 3 năm. Tự cập nhật. – BalusC

+0

Vâng, tôi biết nhưng tôi thường đi với điều đó ... anyways cảm ơn. – user237865

Trả lời

15

Để bắt đầu, hãy tạo Servlet nghe một số url-pattern nhất định, ví dụ: /pages/*. Triển khai phương thức service() để tra cứu hành động được liên kết với phương thức yêu cầu (GET, POST, v.v.) và đường dẫn (phần URL sau số url-pattern của servlet).

dụ cơ bản:

protected void service(HttpServletRequest request, HttpServletResponse response) 
    throws ServletException, IOException { 
    View view = new View(request, response); 
    Action action = ActionFactory.getAction(request); 
    action.execute(view); 
    view.navigate(); 
} 

Giao diện Action nên đại diện cho một đơn vị công việc. Bạn có thể thực hiện nó để làm logic kinh doanh cần thiết:

public interface Action { 
    void execute(View view); 
} 

Các ActionFactory nên duy trì các lớp học thực hiện Action trong loại Map<String, Action> nơi phím String đại diện cho ít hoặc nhiều hơn một sự kết hợp của phương pháp yêu cầu và pathinfo. Sau đó bạn có thể nhận được một Action như sau:

public static Action getAction(HttpServletRequest request) { 
    return actions.get(request.getMethod() + request.getPathInfo()); 
} 

Các View nên đại diện cho yêu cầu scoped bối cảnh đó Action thể làm việc với. Trong navigate() bạn có thể chuyển tiếp yêu cầu đến một JSP để trưng bày:

public void navigate() { 
    String path = "/WEB-INF" + request.getPathInfo() + ".jsp"; 
    request.getRequestDispatcher(path).forward(request, response); 
} 

Điều đó sẽ giúp bạn bắt đầu (lưu ý rằng tôi rời tất cả các kiểm tra rõ ràng như con trỏ null xa để làm cho các ví dụ ít lộn xộn, đó là tùy thuộc vào bạn hiện nay).

Tuy nhiên, có nhiều điều cần tính đến trong toàn bộ câu chuyện, chẳng hạn như xác thực, chuyển đổi, xử lý sự kiện, ánh xạ giá trị đầu vào, bản địa hóa, chèn phụ thuộc, v.v. Đó là tất cả với tất cả các công việc khá. Khung MVC phong nha hơn chiếm hầu hết tất cả điều này, chẳng hạn như Sun JSF, Apache Struts, Spring MVC, Stripes, v.v. Nếu bạn chưa bao giờ làm bất cứ điều gì trong số họ, sau đó tôi khuyên bạn nên làm như vậy trước khi về nhà, nếu không bạn sẽ kết thúc với một sự lãng phí thời gian.

+0

Khi tôi đọc các tài liệu này về Spring MVC, nó luôn nói về Servlet engine là Tomcat. Liệu nó có khác gì nếu động cơ servlet của tôi là Glassfish? Glassfish có đọc nội dung của web.xml không? –

+0

@Harry: Mùa xuân hơi chống nắng. – BalusC

+0

Trời ơi, tin buồn –

1

Trang web có đầy đủ các khung web java trưởng thành. Tôi không thể thấy lý do để tạo một cái mới với hai ngoại lệ: 1. Bạn có một số môi trường/dòng chảy rất chuẩn và cần một cái gì đó rất, rất cụ thể cho nhu cầu của bạn. 2. Bạn chỉ đơn giản muốn đi qua việc thực hiện tạo ra một khuôn khổ để tìm hiểu về các ins and outs của phát triển httpservlet.

JSR 154 xác định thông số kỹ thuật servlet. Tìm ở đây: http://jcp.org/en/jsr/detail?id=154

Mùa xuân là một trong những khung phổ biến hiện tại và khung làm việc cho tôi. Struts là một trong những khung công tác rất phổ biến đầu tiên đã bắt đầu giảm phổ biến. Tìm danh sách các khung công tác tốt cùng với thảo luận tại http://java-source.net/open-source/web-frameworks

Các vấn đề liên quan