首先,创建一个Servlet,它监听某个url-pattern,例如/pages/*。实现service() 方法以查找与请求方法(GET、POST 等)和路径信息(servlet 的url-pattern 之后的 URL 部分)关联的操作。
基本示例:
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();
}
Action 接口应该代表一个工作单元。您可以实现它来执行必要的业务逻辑:
public interface Action {
void execute(View view);
}
ActionFactory 应该维护实现Action 的类,类似于Map<String, Action>,其中String 键代表或多或少的请求方法和路径信息的组合。然后,您可以获得Action,如下所示:
public static Action getAction(HttpServletRequest request) {
return actions.get(request.getMethod() + request.getPathInfo());
}
View 应该代表Action 可以使用的请求范围上下文。在navigate() 中,您可以将请求转发到 JSP 进行显示:
public void navigate() {
String path = "/WEB-INF" + request.getPathInfo() + ".jsp";
request.getRequestDispatcher(path).forward(request, response);
}
这应该可以帮助您入门(请注意,我将所有明显的检查(例如空指针)都放在一边,以使示例不那么混乱,现在由您决定)。
然而,整个故事还需要考虑更多内容,例如验证、转换、事件处理、输入值映射、本地化、依赖注入等。这就是全部工作。更体面的 MVC 框架将大部分都考虑在内,例如 Sun JSF、Apache Struts、Spring MVC、Stripes 等。如果您从未做过任何一种,那么我强烈建议您在家种植之前这样做,否则您最终会浪费时间。