1、Spring MVC架构,课程内容:,Spring MVC 框架架构Spring MVC 三大组件Spring MVC 框架热身Spring MVC 其他,Spring MVC框架优势,1、清晰的角色划分:前端控制器(DispatcherServlet)、请求到处理器映射(HandlerMapping)、处理器适配器(HandlerAdapter)、视图解析器(ViewResolver)、处理器或页面控制器(Controller)、验证器(Validator)、命令对象(Command 请求参数绑定到的对象就叫命令对象)、表单对象(Form Object 提供给表单展示和提交到的对象就叫表单对
2、象)。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中叫命令对象,并进行验证,然后将命令对象委托给业务对象进行处理;处理完毕后返回一个M
4、odelAndView(模型数据和逻辑视图名);图中的3、4、5步骤;3、前端控制器收回控制权,然后根据返回的逻辑视图名,选择相应的视图进行渲染,并把模型数据传入以便视图渲染;图中的步骤6、7;4、前端控制器再次收回控制权,将响应返回给用户,图中的步骤8;至此整个结束。,SpringMVC组件总结,1.DispatcherServlet前端控制器(不需要程序员写)负责框架调度,相当于中央处理器基本controller控制器功能:接收用户request请求和给用户response响应2.HandlerMapping(处理器映射器)(不需要程序员写)负责根据action的连接找到Handler处理
5、器(理解成写的action)3.HandlerAdapter(处理器适配器)(不需要程序员写)负责去执行Handler4.*Handler处理器 需要程序员写理解成struts里边的action,需要程序员写action类,这个action类符合适配器的执行规则。,SpringMVC组件总结,5.ViewResolver(视图解析器)(不需要程序员写)负责将模型数据填充到View6.*View视图需要程序员写jsp页面,课程内容:,Spring MVC 框架架构Spring MVC 三大组件Spring MVC 框架热身Spring MVC 其他,Spring MVC的三大组件,Handler
6、Mapping 处理器映射(一般通过扫描包配置)通过处理器映射,你可以将Web 请求映射到正确的处理器 Controller 上。当接收到请求时,DispactherServlet 将请求交给HandlerMapping 处理器映射,让他检查请求并找到一个合适的(Controller类)HandlerExecutionChain,这个HandlerExecutionChain 包含一个能处理该请求的处理器 Controller。,Controller 处理器对访问的请求进行业务处理,并返回需要的数据,ViewResolver 视图解析器解析返回的ModelAndView,选择一个适合的View
7、Resolver(必须是已经注册到Spring容器中的ViewResolver)返回给DispatcherServlet;ViewResolver 结合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-Othe
8、r,选择Dynamic web project,项目建好之后,目录结构如下:,导入jar包,我们基于Spring mvc框架进行开发,需要依赖一下的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.jarc
9、ommons-logging-1.1.1.jar(用来打印log),配置文件及编写代码,用于配置spring mvc的配置文件的位置和名称,这里说明会新建一个springmvc.xml的配置文件,Springmvc.xml(scr下),是一个视图解析器,用于把在控制器中handler的结构解析为实际的物理视图,这个要配合controller类来解析。,HelloWorld.java(com.jackie.springmvc.handlers下),首先要在类的前面添加“Controller”注解,表示是spring的控制器,hello方法上方有一个RequestMapping,是用于匹配请求的路
10、径,比如这里匹配的请求路径就是“http:/localhost:8080/springTest/springmvc/helloworld”,即当tomcat服务启动后,在浏览器输入这个url时,如果在这个方法打断点了,就会跳入该方法。,使用 RequestMapping 映射请求,Spring MVC 使用 RequestMapping 注解为控制器指定可以处理哪些 URL 请求在控制器的类定义及方法定义处都可标注RequestMapping类定义处:提供初步的请求映射信息。相对于WEB应用的根目录方法处:提供进一步的细分映射信息。相对于类定义处的 URL.若类定义处未标注 RequestMa
11、pping,则方法处标记的 URL 相对于WEB 应用的根目录DispatcherServlet 截获请求后,就通过控制器上RequestMapping 提供的映射信息确定请求所对应的处理方法。,index.jsp(WebContent下),当访问index.jsp时,页面上会展示一个超链接,点击超链后,url中的地址就会发生跳转,由“http:/localhost:8080/springTest/index.jsp”跳转到“http:/localhost:8080/springTest/helloworld”,而这个url请求就会进入HelloWorld中的hello方法,因为其与该方法上的
12、“/helloworld”匹配。,success.jsp(WEB-INF/views下)该页面是作为请求成功后的相应页面,当springmvc.xml中声明了prefix和suffix,而夹在这两者之间的就是这里返回的字符串,所以执行完这个方法后,我们可以得到这样的请求资源路径“/WEB-INF/views/success.jsp”,这个success.jsp是需要我们新建的,建立这个jsp有什么作用,什么时候调用呢?,项目创建完毕,我们完成了基于Spring mvc框架的HelloWorld程序的开发,包括要依赖的jar包,配置的文件,控制器代码的编写和展示页面的编写等,spring mvc
13、如何访问静态资源,关于使用spring mvc处理静态资源,比如html(发现之前的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.xm
14、l中只有其匹配的都是controller中类似RequestMapping(/springmvc/helloworld)这样的注解配置的请求,而对于类似html/css/jpg等资源的访问就会得不到,所以需要在web.xml中加入以下类型的支持,这样就可以保证spring 能够拦截并处理静态资源,1.在spring-mvc.xml中启用默认Servlet2.在web.xml中增加对静态资源的处理 default*.js*.css/assets/*/images/*,课程内容:,Spring MVC 框架架构Spring MVC 三大组件Spring MVC 框架热身Spring MVC 其他,日期格式转化,第一步,编写日期格式转换器,日期格式转化,第二步 注册转换器,请求处理方法,方法的请求参数HttpServletRequestHttpServletResponse HttpSessionLocaleModelMap实体类方法返回对象类型ModelAndViewvoid逻辑视图名Stringjson,
copyright@ 2008-2023 冰点文库 网站版权所有
经营许可证编号:鄂ICP备19020893号-2