SpringMVC培训.pptx
《SpringMVC培训.pptx》由会员分享,可在线阅读,更多相关《SpringMVC培训.pptx(31页珍藏版)》请在冰豆网上搜索。
SpringMVC架构课程内容:
SpringMVC框架架构SpringMVC三大组件SpringMVC框架热身SpringMVC其他SpringMVC框架优势1、清晰的角色划分:
前端控制器(DispatcherServlet)、请求到处理器映射(HandlerMapping)、处理器适配器(HandlerAdapter)、视图解析器(ViewResolver)、处理器或页面控制器(Controller)、验证器(Validator)、命令对象(Command请求参数绑定到的对象就叫命令对象)、表单对象(FormObject提供给表单展示和提交到的对象就叫表单对象)。
2、分工明确,而且扩展点相当灵活,可以很容易扩展,虽然几乎不需要;3、由于命令对象就是一个POJO,无需继承框架特定API,可以使用命令对象直接作为业务对象;4、和Spring其他框架无缝集成,是其它Web框架所不具备的;SpringMVC框架优势5、可适配,通过HandlerAdapter可以支持任意的类作为处理器;6、可定制性,HandlerMapping、ViewResolver等能够非常简单的定制;7、功能强大的数据验证、格式化、绑定机制;8、利用Spring提供的Mock对象能够非常简单的进行Web层单元测试;9、本地化、主题的解析的支持,使我们更容易进行国际化和主题的切换。
10、强大的JSP标签库,使JSP编写更容易。
还有比如RESTful风格的支持、简单的文件上传、约定大于配置的契约式编程支持、基于注解的零配置支持等等。
SpringMVC框架淘宝登录分析具体执行步骤具体执行步骤如下:
1、首先用户发送请求前端控制器,前端控制器根据请求信息(如URL)来决定选择哪一个页面控制器进行处理并把请求委托给它,即以前的控制器的控制逻辑部分;图中的1、2步骤;2、页面控制器接收到请求后,进行功能处理,首先需要收集和绑定请求参数到一个对象,这个对象在SpringWebMVC中叫命令对象,并进行验证,然后将命令对象委托给业务对象进行处理;处理完毕后返回一个ModelAndView(模型数据和逻辑视图名);图中的3、4、5步骤;3、前端控制器收回控制权,然后根据返回的逻辑视图名,选择相应的视图进行渲染,并把模型数据传入以便视图渲染;图中的步骤6、7;4、前端控制器再次收回控制权,将响应返回给用户,图中的步骤8;至此整个结束。
SpringMVC组件总结1.DispatcherServlet前端控制器(不需要程序员写)负责框架调度,相当于中央处理器基本controller控制器功能:
接收用户request请求和给用户response响应2.HandlerMapping(处理器映射器)(不需要程序员写)负责根据action的连接找到Handler处理器(理解成写的action)3.HandlerAdapter(处理器适配器)(不需要程序员写)负责去执行Handler4.*Handler处理器需要程序员写理解成struts里边的action,需要程序员写action类,这个action类符合适配器的执行规则。
SpringMVC组件总结5.ViewResolver(视图解析器)(不需要程序员写)负责将模型数据填充到View6.*View视图需要程序员写jsp页面课程内容:
SpringMVC框架架构SpringMVC三大组件SpringMVC框架热身SpringMVC其他SpringMVC的三大组件HandlerMapping处理器映射(一般通过扫描包配置)处理器映射(一般通过扫描包配置)通过处理器映射,你可以将通过处理器映射,你可以将Web请求映射到正确的处理器请求映射到正确的处理器Controller上。
上。
当接收到请求时,当接收到请求时,DispactherServlet将请求交给将请求交给HandlerMapping处理器映射,让他检查请求并找到一个合适处理器映射,让他检查请求并找到一个合适的(的(Controller类)类)HandlerExecutionChain,这个这个HandlerExecutionChain包含一个能处理该请求的处理器包含一个能处理该请求的处理器Controller。
Controller处理器对访问的请求进行业务处理,并返回需要的数据ViewResolver视图解析器解析返回的ModelAndView,选择一个适合的ViewResolver(必须是已经注册到Spring容器中的ViewResolver)返回给DispatcherServlet;ViewResolver结合Model和View,来渲染视图,将渲染结果返回给客户端。
课程内容:
SpringMVC框架架构SpringMVC三大组件SpringMVC框架热身SpringMVC其他SpringMVC的HelloWorld软件参数Eclipse:
Mars.1Release(4.5.1)Tomcat:
8.0.36JDK:
1.8.0_60Spring-framework:
4.0.4.RELEASE新建项目File-New-Other,选择Dynamicwebproject项目建好之后,目录结构如下:
导入jar包我们基于Springmvc框架进行开发,需要依赖一下的springjar包:
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)配置文件及编写代码用于配置用于配置springspringmvcmvc的配置文件的的配置文件的位置和名称,这里位置和名称,这里说明会新建一个说明会新建一个springmvc.xmlspringmvc.xml的的配置文件配置文件Springmvc.xml(scr下)是一个视图解析器,用于把是一个视图解析器,用于把在控制器中在控制器中handlerhandler的结构解的结构解析为实际的物理视图,这个析为实际的物理视图,这个要配合要配合controllercontroller类来解析类来解析。
HelloWorld.javaHelloWorld.java(com.jackie.springmvc.handlerscom.jackie.springmvc.handlers下)下)首先要在类的前面添加“Controller”注解,表示是spring的控制器hello方法上方有一个RequestMapping,是用于匹配请求的路径,比如这里匹配的请求路径就是“http:
/localhost:
8080/springTest/springmvc/helloworld”,即当tomcat服务启动后,在浏览器输入这个url时,如果在这个方法打断点了,就会跳入该方法。
使用RequestMapping映射请求SpringMVC使用RequestMapping注解为控制器指定可以处理哪些URL请求在控制器的类定义及方法定义处都可标注RequestMapping类定义处:
提供初步的请求映射信息。
相对于WEB应用的根目录方法处:
提供进一步的细分映射信息。
相对于类定义处的URL.若类定义处未标注RequestMapping,则方法处标记的URL相对于WEB应用的根目录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-INF/views下)该页面是作为请求成功后的相应页面当springmvc.xml中声明了prefix和suffix,而夹在这两者之间的就是这里返回的字符串,所以执行完这个方法后,我们可以得到这样的请求资源路径“/WEB-INF/views/success.jsp”,这个success.jsp是需要我们新建的建立这个jsp有什么作用,什么时候调用呢?
项目创建完毕我们完成了基于Springmvc框架的HelloWorld程序的开发,包括要依赖的jar包,配置的文件,控制器代码的编写和展示页面的编写等springmvc如何访问静态资源关于使用springmvc处理静态资源,比如html(发现之前的springmvc.xml中定义为jsp结尾就可以成功跳转,但是如果改为html并在web-inf下面新建了html文件后,并将suffix这里的.jsp改为.html,无法跳转到想要的html页面,并且给出404错误,同时console给出错误信息为:
NomappingfoundforHTTPrequestwithURI/springTest/WEB-INF/views/result.htmlinDispatcherServ)最后发现是需要让spring明确要处理静态资源,原来的web.xml中只有其匹配的都是controller中类似RequestMapping(/springmvc/helloworld)这样的注解配置的请求,而对于类似html/css/jpg等资源的访问就会得不到,所以需要在web.xml中加入以下类型的支持这样就可以保证spring能够拦截并处理静态资源1.在在spring-mvc.xml中启用默认中启用默认Servlet2.在在web.xml中增加对静态资源的处理中增加对静态资源的处理default*.js*.css/assets/*/images/*课程内容:
SpringMVC框架架构SpringMVC三大组件SpringMVC框架热身SpringMVC其他日期格式转化第一步,编写日期格式转换器日期格式转化第二步注册转换器请求处理方法方法的请求参数HttpServletRequestHttpServletResponseHttpSessionLocaleModelMap实体类方法返回对象类型ModelAndViewvoid逻辑视图名Stringjson