- 什么是MVC
- MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,它是一种软件设计典范,用一种业务逻辑、数据、界面显示分离的方法组织代码
- Model1 jsp+jdbc
- Model2 ->MVC
- 核心思想:各司其职
- MVC结构
- V view
- jsp/ios/android
- C controller
- servlet/action
- M model
- 实体域模型(名词)entity
- 过程域模型(动词)dao/biz
- 注1:不能跨层调用
- 注2:只能出现由上而下的调用
- V view
- 自定义MVC工作原理图
-
- 属性
- *.action: 浏览器的响应地址
- ActionServlet: 中央管理器,分析请求需要的方法和对象所在的类
- Action: 子控制器
- Model:模型
- 步骤
- 用户发送请求(*.action)传输到Controller(控制器)中的ActionServlet(中央管理器)
- 再由中央管理器分析用户需求的是哪个类中的哪个方法,并将得到的数据转发给子控制器Action
- 通过Action来执行所需要的模型中的方法,获取到需求的数据
- 获取到数据后,将数据返回子控制器Action中,然后获取到子控制器所指向的值
- 根据获取的子控制器的值来跳转到对应的页面
- 属性
-
- 自定义mvc的增强
- 使用XML进行配置
- ModelDriver+反射对Model赋值
- DispatcherAction将一组相关的操作放到一个Action中
- 只有方法与execute方法不同,其它一样
- 使用forward标签进行流程的转发和重定向
- action包
- ActionServlet: ActionServlet要继承HttpServlet,再其中有多个方法
- doPost
- 用户的.action请求全部接收到此处
- 1.获取用户请求并分析得到对应的目标类和目标对象
- 2.通过建模来获取对应目标类的全限地名,根据反射来获取对象
- 3.根据类对象+方法名得到指定的方法
- 3.5 给对应参数赋值
- 4.运行指定的方法并获取返回值
- 5.根据返回值进行页面跳转
- getAction
- 根据反射来获取到对应的Action模型
- url 要获取的Action的path属性
- 对应的类的对象
- getMethodName
- 获取对应的方法名
- req 请求对象
- return 对应的方法名
- tp
- 跳转至对应forward中指向的路径
- url action的path属性,用来获取action标签
- path forward的name属性,用来获取对应的forward标签
- req 请求对象,用来转发至目标路径
- resp 响应对象,用来重定向至目标路径
- handleModel
- 给对应的子控制器的属性赋值
- action 子控制器
- req 请求对象,获取要设置的属性名称及对应的值
- doPost
- Action:实现此类的类被可以视为Action,方便编写方法
- public String execute(String MethodName,HttpServletRequest req,HttpServletResponse resp) throws Exception;
- DispatherServlet:然所有的Servlet继承此类,实现Action接口
- 运行其他方法的方法
- ModelDriver:定义一个获取对象的方法,让所有的Servlet类实现此方法
- public T getModel();
- ActionServlet: ActionServlet要继承HttpServlet,再其中有多个方法
- dao包照常写
- biz包内调用dao包的方法,并实例化一个对应的实体类,方法的返回值统一为为String,方法中除了PageBean对象之类的参数,其余参数用HttpServletRequest和HttpServletResponse这两个对象替换各一个替换
注:HttpServletRequest和HttpServletResponse对象每个只写一个- 在模糊查询查询并分页例:
- 返回值为config中的forward标签的name属性,指向一个路径
- 在模糊查询查询并分页例:
简易自定义mvc
最新推荐文章于 2023-07-04 11:17:20 发布