- 1. 什么是MVC
- 2. 自定义MVC工作原理图
- 3. 自定义mvc实现
- 3.1 创建web工程
- 3.2 中央处理器
- 3.3 Action接口定义
- 3.4 实现子控制器
- 3.5 完善中央控制器
- 3.5.1 请求分发功能
- 3.5.2 使用配置文件配置action
- 3.5.3 请求参数处理
- 3.6 完善Action
- 4. 其他公用组件的集成
- 5. 打jar包
1. 什么是MVC
MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写。 它是一种软件设计典范。
用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。
提高了程序的可维护性、可移植性、可扩展性与可重用性,降低了程序的开发难度。它主要分模型、视图、控制器三层。
- 模型(model): 它是应用程序的主体部分,主要包括业务逻辑模块(web项目中的dao类)和数据模块(pojo类)。pojo一般可以叫做实体域模型,dao和service称为过程域模型。
- 视图(view): 用户与之交互的界面、在web中视图一般由jsp,html组成,其他的还包括android,ios等等。
- 控制器(controller): 接收来自界面的请求 并交给模型进行处理 在这个过程中控制器不做任何处理只是起到了一个连接的做用。
不足的地方:
- 增加系统结构和实现的复杂性。对于简单的界面,严格遵守MVC,需要使模型、视图与控制器分离,增加系统复杂性
- 视图和控制器之间的关系太过紧密了
2. 自定义MVC工作原理图
核心组件说明:
- 中央控制器(ActionServlet): 复杂接收所有的请求,并分别给控制器具体处理。
- 自控制器(Action):负责处理中央处理器分配的请求
- 视图(view): jsp页面,负责显示
- 模型(Model): 负责业务处理逻辑
3. 自定义mvc实现
3.1 创建web工程
创建一个web工程,需要加入必要的依赖。
3.2 中央处理器
通过servlet来实现一个中央控制器,负责所有请求的接收。(后续中央控制器在再将请求转发给各个子控制器,此处可以先把请求接进来,转发功能后面再加)
/**
* 中央控制器,负责接收所有的请求并分别给控制器具体处理
* @author Administrator
*/
@WebServlet("*.action")
public class ActionDispatchServlet extends HttpServlet {
@Override
public void doGet(HttpServletRequest request, HttpServletResponse response) {
doPost(request, response);
}
@Override
public void doPost(HttpServletRequest request, HttpServletResponse response) {
System.ou