Servlet+JSP模式的弊端
-
如果使用多个servlet
- web.xml文件巨大
- 各个servlet处理流程分散,难以维护、修改
-
如果使用单个servlet
- 采用合适的设计模式,可以避免servlet的可维护性
- URL分析和业务代码混杂
- 业务逻辑硬编码在servlet中,难以重用
-
Springmvc使用请求驱动的框架,提供了一套可复用的基础设施
-
一个前端控制器——提供可复用的功能
- 前端控制器抽取出流程控制逻辑,将对应具体请求的业务逻辑交给次级控制器
- 可以读取统一的配置文件,避免配置信息的硬编码
-
多个次级控制器
- HandlerMapping,用于搜索handler,并返回执行链
- HandlerAdapter,用于执行不同的handler,执行完成后返回model和view视图名
- ViewResolver,根据view的种类和名称,找到view文件,调用不同的解析器将文件解析成view视图
- View,将model中的数据插入视图中,完成最后的视图渲染
controller的输入参数
- 请求参数名称对应的实参,name、password等,从表单返回的数据会自动绑定到同名参数中,也可以用@RequestParam("name")标注参数名称
- 用@CookieValue绑定请求中的cookie值
- 直接获取HttpServletRequest
controller的返回参数
- ModelAndView
- 包含addObject、setViewName等方法
- ModelAndView必须在controller中new获得
- String,会被直接当做逻辑视图名
- 入参中如果标注@ModelAttribute("名称"),就会被直接放入model中
网友评论