1、Spring MVC架构课程内容:Spring MVC 框架架构 Spring MVC 三大组件 Spring MVC 框架热身 Spring MVC 其他Spring MVC框架优势 1、清 晰 的 角 色 划 分:前 端 控 制 器(DispatcherServlet)、请求到处理器映射(H a n d l e r M a p p i n g)、处 理 器 适 配 器(HandlerAdapter)、视图解析器(ViewResolver)、处理器或页面控制器(Controller)、验证器(Validator)、命令对象(Command 请求参数绑定到的对象就叫命令对象)、表单对象(For
2、m Object 提供给表单展示和提交到的对象就叫表单对象)。2、分工明确,而且扩展点相当灵活,可以很容易扩展,虽然几乎不需要;3、由于命令对象就是一个POJO,无需继承框架特定API,可以使用命令对象直接作为业务对象;4、和Spring 其他框架无缝集成,是其它Web框架所不具备的;Spring MVC框架优势 5、可适配,通过HandlerAdapter可以支持任意的类作为处理器;6、可定制性,HandlerMapping、ViewResolver等能够非常简单的定制;7、功能强大的数据验证、格式化、绑定机制;8、利用Spring提供的Mock对象能够非常简单的进行Web层单元测试;9、本
3、地化、主题的解析的支持,使我们更容易进行国际化和主题的切换。10、强大的JSP标签库,使JSP编写更容易。还有比如RESTful风格的支持、简单的文件上传、约定大于配置的契约式编程支持、基于注解的零配置支持等等。Spring MVC框架淘宝登录分析具体执行步骤 具体执行步骤如下:1、首先用户发送请求前端控制器,前端控制器根据请求信息(如URL)来决定选择哪一个页面控制器进行处理并把请求委托给它,即以前的控制器的控制逻辑部分;图中的1、2步骤;2、页面控制器接收到请求后,进行功能处理,首先需要收集和绑定请求参数到一个对象,这个对象在Spring Web MVC中叫命令对象,并进行验证,然后将命令
4、对象委托给业务对象进行处理;处理完毕后返回一个ModelAndView(模型数据和逻辑视图名);图中的3、4、5步骤;3、前端控制器收回控制权,然后根据返回的逻辑视图名,选择相应的视图进行渲染,并把模型数据传入以便视图渲染;图中的步骤6、7;4、前端控制器再次收回控制权,将响应返回给用户,图中的步骤8;至此整个结束。SpringMVC组件总结1.DispatcherServlet前端控制器(不需要程序员写)负责框架调度,相当于中央处理器基本controller控制器功能:接收用户request请求和给用户response响应2.HandlerMapping(处理器映射器)(不需要程序员写)负责
5、根据action的连接找到Handler处理器(理解成写的action)3.HandlerAdapter(处理器适配器)(不需要程序员写)负责去执行Handler4.*Handler处理器 需要程序员写理解成struts里边的action,需要程序员写action类,这个action类符合适配器的执行规则。SpringMVC组件总结5.ViewResolver(视图解析器)(不需要程序员写)负责将模型数据填充到View6.*View视图需要程序员写jsp页面课程内容:Spring MVC 框架架构 Spring MVC 三大组件 Spring MVC 框架热身 Spring MVC 其他Spr
6、ing MVC的三大组件 HandlerMapping HandlerMapping 处理器映射(一般通过扫描包配置)处理器映射(一般通过扫描包配置)通过处理器映射,你可以将通过处理器映射,你可以将Web Web 请求映射到正确的处理器请求映射到正确的处理器 Controller Controller 上。上。当接收到请求时,当接收到请求时,DispactherServlet DispactherServlet 将请求交给将请求交给HandlerMapping HandlerMapping 处理器映射,让他检查请求并找到一个合适的处理器映射,让他检查请求并找到一个合适的(ControllerC
7、ontroller类)类)HandlerExecutionChainHandlerExecutionChain,这个这个HandlerExecutionChain HandlerExecutionChain 包含一个能处理该请求的处理器包含一个能处理该请求的处理器 ControllerController。Controller 处理器对访问的请求进行业务处理,并返回需要的数据 ViewResolver 视图解析器解析返回的ModelAndView,选择一个适合的ViewResolver(必须是已经注册到Spring容器中的ViewResolver)返回给DispatcherServlet;Vi
8、ewResolver 结合Model和View,来渲染视图,将渲染结果返回给客户端。课程内容:Spring MVC 框架架构 Spring MVC 三大组件 Spring MVC 框架热身 Spring MVC 其他Spring MVC的HelloWorld软件参数Eclipse:Mars.1 Release(4.5.1)Tomcat:8.0.36JDK:1.8.0_60Spring-framework:4.0.4.RELEASE新建项目File-New-Other,选择Dynamic web project项目建好之后,目录结构如下:导入jar包我们基于Spring mvc框架进行开发,需要
9、依赖一下的spring jar包:spring-aop-4.0.4.RELEASE.jarspring-beans-4.0.4.RELEASE.jarspring-context-4.0.4.RELEASE.jarspring-core-4.0.4.RELEASE.jarspring-expression-4.0.4.RELEASE.jarspring-web-4.0.4.RELEASE.jarspring-webmvc-4.0.4.RELEASE.jarcommons-logging-1.1.1.jar(用来打印log)配置文件及编写代码Springmvc.xml(scr下)。HelloWo
10、rld.javaHelloWorld.java(com.jackie.springmvc.handlerscom.jackie.springmvc.handlers下)下)使用 RequestMapping 映射请求 Spring MVC 使用 RequestMapping 注解为控制器指定可以处理哪些 URL 请求在控制器的类定义及方法定义处都可标注RequestMapping类定义处:提供初步的请求映射信息。相对于WEB应用的根目录方法处:提供进一步的细分映射信息。相对于类定义处的 URL.若类定义处未标注 RequestMapping,则方法处标记的 URL 相对于WEB 应用的根目录
11、DispatcherServlet 截获请求后,就通过控制器上RequestMapping 提供的映射信息确定请求所对应的处理方法。index.jsp(WebContent下)当访问index.jsp时,页面上会展示一个超链接,点击超链后,url中的地址就会发生跳转,由“http:/localhost:8080/springTest/index.jsp”跳转到“http:/localhost:8080/springTest/helloworld”,而这个url请求就会进入HelloWorld中的hello方法,因为其与该方法上的“/helloworld”匹配。success.jsp(WEB-I
12、NF/views下)该页面是作为请求成功后的相应页面当springmvc.xml中声明了prefix和suffix,而夹在这两者之间的就是这里返回的字符串,所以执行完这个方法后,我们可以得到这样的请求资源路径“/WEB-INF/views/success.jsp”,这个success.jsp是需要我们新建的建立这个jsp有什么作用,什么时候调用呢?项目创建完毕 我们完成了基于Spring mvc框架的HelloWorld程序的开发,包括要依赖的jar包,配置的文件,控制器代码的编写和展示页面的编写等spring mvc如何访问静态资源 关于使用spring mvc处理静态资源,比如html(发
13、现之前的springmvc.xml中定义为jsp结尾就可以成功跳转,但是如果改为html并在web-inf下面新建了html文件后,并将suffix这里的.jsp改为.html,无法跳转到想要的html页面,并且给出404错误,同时console给出错误信息为:No mapping found for HTTP request with URI/springTest/WEB-INF/views/result.html in DispatcherServ)最后发现是需要让spring明确要处理静态资源,原来的web.xml中只有其匹配的都是controller中类似RequestMapping(
14、/springmvc/helloworld)这样的注解配置的请求,而对于类似html/css/jpg等资源的访问就会得不到,所以需要在web.xml中加入以下类型的支持这样就可以保证spring 能够拦截并处理静态资源1.1.在在spring-mvc.xmlspring-mvc.xml中启用默认中启用默认ServletServlet2.2.在在web.xmlweb.xml中增加对静态资源的处理中增加对静态资源的处理 default *.js *.css /assets/*/images/*课程内容:Spring MVC 框架架构 Spring MVC 三大组件 Spring MVC 框架热身 Spring MVC 其他日期格式转化第一步,编写日期格式转换器日期格式转化第二步 注册转换器请求处理方法方法的请求参数HttpServletRequestHttpServletResponse HttpSessionLocaleModelMap实体类方法返回对象类型ModelAndViewvoid逻辑视图名Stringjson 演讲完毕,谢谢观看!