SpringMVC

Servlet+JSP模式的弊端

  • 如果使用多个servlet

    • web.xml文件巨大
    • 各个servlet处理流程分散,难以维护、修改
  • 如果使用单个servlet

    • 采用合适的设计模式,可以避免servlet的可维护性
    • URL分析和业务代码混杂
    • 业务逻辑硬编码在servlet中,难以重用
  • Springmvc使用请求驱动的框架,提供了一套可复用的基础设施

  • 一个前端控制器——提供可复用的功能

    • 前端控制器抽取出流程控制逻辑,将对应具体请求的业务逻辑交给次级控制器
    • 可以读取统一的配置文件,避免配置信息的硬编码
  • 多个次级控制器

    • HandlerMapping,用于搜索handler,并返回执行链
    • HandlerAdapter,用于执行不同的handler,执行完成后返回model和view视图名
    • ViewResolver,根据view的种类和名称,找到view文件,调用不同的解析器将文件解析成view视图
    • View,将model中的数据插入视图中,完成最后的视图渲染
SpringMVC执行流程时序图

controller的输入参数

  • 请求参数名称对应的实参,name、password等,从表单返回的数据会自动绑定到同名参数中,也可以用@RequestParam("name")标注参数名称
  • 用@CookieValue绑定请求中的cookie值
  • 直接获取HttpServletRequest

controller的返回参数

  • ModelAndView
    • 包含addObject、setViewName等方法
    • ModelAndView必须在controller中new获得
  • String,会被直接当做逻辑视图名
    • 入参中如果标注@ModelAttribute("名称"),就会被直接放入model中
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容