简易自定义mvc

  • 什么是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:只能出现由上而下的调用
  • 自定义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 请求对象,获取要设置的属性名称及对应的值
    • Action:实现此类的类被可以视为Action,方便编写方法
      • public String execute(String MethodName,HttpServletRequest req,HttpServletResponse resp) throws Exception;
    • DispatherServlet:然所有的Servlet继承此类,实现Action接口
      • 运行其他方法的方法
    • ModelDriver:定义一个获取对象的方法,让所有的Servlet类实现此方法
      • public T getModel();
  • dao包照常写
  • biz包内调用dao包的方法,并实例化一个对应的实体类,方法的返回值统一为为String,方法中除了PageBean对象之类的参数,其余参数用HttpServletRequest和HttpServletResponse这两个对象替换各一个替换
    注:HttpServletRequest和HttpServletResponse对象每个只写一个
    • 在模糊查询查询并分页例:
      • 返回值为config中的forward标签的name属性,指向一个路径
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值