您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 信息化管理 > 郝金隆JavaEE基础培训3:Spring-mvc基础培训v1.0.1
Spring-MVC基础培训JavaEE框架培训之三郝金隆(haojinlong@189.cn)2014年8月2014年6月郝金隆Java培训系列2培训说明●培训假设–本培训材料认为阅读人员具备一定的Java开发基础,熟悉Java开发环境的配置和使用(如JDK、Eclipse的安装等),对javaweb开发具有一定的基础知识–前文阅读:《Java日志框架培训》、《spring基础培训》●本培训的内容–spring-mvc基础应用–spring-mvc请求自动封装–spring-mvc与后端DAO框架集成–spring-mvc与前端js框架(在线编辑器)的集成–spring-mvc的其他用法●更多培训资料,请访问–基础说明(1/2):简介●Spring-MVC简介–SpringMVC是当前最优秀的MVC框架,自从Spring2.5版本发布后,由于支持注解配置,易用性有了大幅度的提高。Spring3.0更加完善,实现了对Struts2的超越。现在越来越多的开发团队选择了SpringMVC。●下载地址–官方地址:–下载地址:●所依赖的包(Java日志)–commons-logging(可以使用jcl-over-slf4j代替)、slf4j–关于Java日志的使用,可参见《Java日志框架培训》2014年6月郝金隆Java培训系列5Spring-mvc基础说明(2/2):整体架构●左图为spring-mvc的整体架构:–Frontcontroller(spring内置的DispatcherServlet)是框架的核心,用于拦截响应的请求,并转交具体的Controller去处理–Controller需要用户自行编写,用于具体请求的处理,并向相应的Model中写入数据,并返回响应的展示结果给Frontcontroller–View根据相应的model数据进行结果的具体展示2014年6月郝金隆Java培训系列6第一个应用(1/7):下载所需要的jar包●spring相关jar包–spring基础包(所有spring应用的基础):spring-core、spring-beans、spring-context、spring-expressions–spring-aop:自动扫描和注解需要的jar包–SpringWEB包:spring-web、spring-webmvc●java日志相关jar包–ommons-logging或者jcl-over-slf4j–slf4j-api–日志实现框架(log4j/log4j2/logback),具体请参考java日志框架培训2014年6月郝金隆Java培训系列7第一个应用(2/7):通过web.xml定义FrontController?xmlversion=1.0encoding=UTF-8?web-appxmlns:xsi==:schemaLocation=://java.sun.com/xml/ns/javaee/web-app_3_0.xsdid=WebApp_IDversion=3.0display-namenet.haojinlong.trainning.web.basic/display-nameservletservlet-namedispatcher/servlet-nameservlet-classorg.springframework.web.servlet.DispatcherServlet/servlet-classinit-paramparam-namecontextConfigLocation/param-nameparam-value/WEB-INF/WebApplicationContext.xml/param-value/init-paramload-on-startup1/load-on-startup/servletservlet-mappingservlet-namedispatcher/servlet-nameurl-pattern/trainning/*/url-pattern/servlet-mapping/web-app定义dispatcherservlet定义spring配置文件地址确定dispatcherservlet要拦截的请求类型2014年6月郝金隆Java培训系列8第一个应用(3/7):创建Controller实例packagenet.haojinlong.trainning.web.controller;importorg.slf4j.Logger;importorg.slf4j.LoggerFactory;importorg.springframework.stereotype.Controller;importorg.springframework.ui.Model;importorg.springframework.web.bind.annotation.RequestMapping;@ControllerpublicclassTestController{staticLoggerlogger=LoggerFactory.getLogger(TestController.class);@RequestMapping(/hello)publicStringsayHello(Modelmodel){logger.debug(controller:{},testcontroller);model.addAttribute(msg,hello,world!);returnhello;}}说明是Controller说明映射的地址是hellomodel中添加属性:msg返回值用于表明用哪个jsp进行展示2014年6月郝金隆Java培训系列9第一个应用(4/7):配置WebApplicationContext.xml文件?xmlversion=1.0encoding=UTF-8?beansxmlns=:xsi=:context=:mvc=:schemaLocation=://://://://://:component-scanbase-package=net.haojinlong.trainning.web.controller/beanid=viewResolverclass=org.springframework.web.servlet.view.InternalResourceViewResolverpropertyname=prefixvalue=/WEB-INF/jsp//propertyname=suffixvalue=.jsp//bean/beansspring中通过注解方式进行controller的扫描和加载设置展示界面的地址和后缀名2014年6月郝金隆Java培训系列10第一个应用(5/7):编写hello.jsp文件%@pagelanguage=javacontentType=text/html;charset=UTF-8pageEncoding=UTF-8%!DOCTYPEhtmlPUBLIC-//W3C//DTDHTML4.01Transitional//EN=Content-Typecontent=text/html;charset=UTF-8titletest/title/headbodyp${msg}/p/body/html输出model中的msg属性2014年6月郝金隆Java培训系列11第一个应用(6/7):启动应用,进行页面访问●访问页面–●页面输出内容–hello,world!●内部流程–根据web.xml配置文件,所有的/trainning/*请求都将发送给spring内置的dispatcherservlet–项目启动是通过自动扫描完成对TestController的注册,得到hello请求对应于TestController的sayHello方法–spring自动调用sayHello方法,自动传入Model对象,完成msg属性的设置,并返回hello–spring根据WebApplicationContext.xml中的设置,自动对hello增加/WEB-INF/jsp/的前缀和.jsp的后缀,获取jsp文件的相对路径,进行jsp的展示–Hello.jsp中通过${msg}输出Model对象中的msg属性示例代码参见:1-springmvc-basic2014年6月郝金隆Java培训系列12第一个应用(7/7):关于web.xml中的配置●contextConfigLocation设置–使用相对地址,如上例中的“/WEB-INF/WebApplicationContext.xml”方式–使用classpath地址,如:“classpath:/config/WebApplicationContext.xml”–不设置,则默认为WEB-INF下面servletname+“-servlet.xml”,如上例如注释掉init-param则应该是“/WEB-INF/dispatch-servlet.xml”●urlpattern设置–使用/trainning/*方式,表示拦截/trainning/下面所有的url地址(其中trainning可更换为任意的名称)●要求WebContent下面不能有/trainning目录,其中的任何内容访问都会被拦截–使用*.do、*.form等方式–使用/,可以实现现在很流行的REST风格,会导致jpg、CSS等静态文件被拦截,解决
本文标题:郝金隆JavaEE基础培训3:Spring-mvc基础培训v1.0.1
链接地址:https://www.777doc.com/doc-5924646 .html