《Java轻量级框架技术与应用》 课件 项目二 Spring MVC开发基础_第1页
《Java轻量级框架技术与应用》 课件 项目二 Spring MVC开发基础_第2页
《Java轻量级框架技术与应用》 课件 项目二 Spring MVC开发基础_第3页
《Java轻量级框架技术与应用》 课件 项目二 Spring MVC开发基础_第4页
《Java轻量级框架技术与应用》 课件 项目二 Spring MVC开发基础_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

项目二

SpringMVC开发基础初识SpringMVC目录Content1SpringMVC进阶2拦截器的使用3文件上传和下载4项目导言零MVC(ModelViewController)是一种软件架构思想模型Model视图View控制器Controller学习目标零知识目标了解SpringMVC的概念熟悉SpringMVC的特点掌握SpringMVC框架核心组件的使用方式掌握SpringMVC的常用注解熟悉@Controller与@RequestMapping注解的使用方式了解SpringMVC拦截器的感念掌握SpringMVC拦截器的定义与配置方式熟悉文件的上传和下载方法能力目标具备使用SpringMVC接受并相应浏览器发起的请求的能力具备使用拦截器高效编辑代码的能力具备独立使用SpringMVC实现文件上传下载的能力具备SpringMVC规范注释编写的能力素质目标具备精益求精、坚持不懈的精神;具有独立解决问题的能力;具备灵活的思维和处理分析问题的能力;具有责任心。任务1:初识SpringMVC壹Springmvc概述任务技能SpringMVC是Spring框架中的一个Web框架,是目前最好的实现MVC设计模式的框架。SpringMVC实现了Web层的开发规范,其底层依赖于一系列的功能组件,配合完成整个功能。SpringMVC框架的核心组件SpringMVC实现了Web层的开发规范,其底层依赖于一系列的功能组件,配合完成整个功能。任务1-1:Springmvc概述壹1SpringMVC概念在JavaEE开发中,系统经典的三层架构包括表现层、业务层和持久层。表现层(Web层)持久层(Dao层)业务层(Service层)任务1-1:Springmvc概述壹2SpringMVC特点SpringMVC框架与Spring框架其他组件模块的无缝集成。SpringMVC框架提供强大而直接的配置方式使用SpringMVC框架能简单的进行Web层的单元测试,提高开发效率使用SpringMVC框架便于与其他视图技术集成SpringMVC框架提供了非常灵活的数据验证、格式化和数据绑定机制SpringMVC框架还提供一套强大的JSP标签库来简化JSP开发支持灵活的本地化、主题等解析SpringMVC框架提供了统一异常处理机制,使得异常处理更加简单任务1-2:SpringMVC框架的核心组件壹SpringMVC实现了Web层的开发规范,其底层依赖于一系列的功能组件,配合完成整个功能。其流程如图任务2:SpringMVC进阶贰Springmvc常用注解任务技能Spring2.5引入注解式处理器支持,通过@Controller和@RequestMapping注解定义我们的处理器类。任务2-1:Springmvc常用注解贰Spring2.5引入注解式处理器支持,通过@Controller和@RequestMapping注解定义我们的处理器类。并且提供了一组强大的注解:@Controller:用于标识是处理器类;@RequestMapping:用于从客户端到控制器的地址映射;@RequestParam:用于客户端参数注入到控制器的数据绑定;之后的Spring版本每次升级,都会提供更多的注解帮助程序开发者进行快速开发,提高开发效率。任务2-1:Springmvc常用注解贰1@Controller注解@Controller注解是Spring框架中用来标识控制器类的注解。它的作用是将一个普通的Java类转换为SpringMVC中的控制器,使得该类可以响应HTTP请求并返回相应的视图模型。importorg.springframework.stereotype.Controller;...@Controller //标注@Controller注解publicclassFirstController{...}任务2-1:Springmvc常用注解贰2@RequestMapping@RequestMapping注解用于建立请求URL和Handler(处理器)之间的映射关系,该注解可以标注在方法上和类上。(1)标注在方法上@RequestMapping注解是SpringMVC中用于映射HTTP请求的注解,它可以用于控制器类的方法上,用来指定请求的URL路径和请求方法。@ControllerpublicclassMyController{

@RequestMapping(path="/")publicStringhome(Modelmodel){model.addAttribute("message","Hello,World!");return"home";}}任务2-1:Springmvc常用注解贰2@RequestMapping(2)标注在类上当@RequestMapping注解标注在类上时,@RequestMapping的value属性值相当于本处理器类的命名空间,即访问该处理器类下的任意处理器都需要带上这个命名空间。@ControllerpublicclassMyController{

@RequestMapping(value="/hello",method=RequestMethod.GET)publicStringhello(Modelmodel){model.addAttribute("message","Hello,World!");return"hello";}

}任务2-1:Springmvc常用注解贰@RequestMapping注解的属性@RequestMapping注解是SpringMVC中用于映射HTTP请求的注解,它可以用于控制器类或处理器类上,用来指定请求的URL路径和请求方法。属性名类型描述nameString可选属性,用于为映射地址指定别名。valueString[]可选属性,也是默认属性,用于指定请求的URL。methodRequestMethod[]可选属性,用于指定该方法可以处理哪种类型的请求方式。可以是GET、POST、PUT、DELETE等。默认值是GET。paramsString[]可选属性,用于指定客户端请求中参数的值,必须包含哪些参数的值,才可以通过其标注的方法处理。headersString[]可选属性,用于指定客户端请求中,必须包含哪些header的值,才可以通过其标注的方法处理。consumesString[]可选属性,用于指定处理请求的提交内容类型(Content-type)。可以是JSON、XML等。默认值是所有类型的都支持。producesString[]可选属性,用于指定返回的内容类型,仅当request请求头中的(Accept)类型中包含该指定类型才返回。可以是JSON、XML等。默认值是所有类型的都支持。任务2-1:Springmvc常用注解贰3@RequestParam@RequestParam是SpringMVC中用于将HTTP请求参数绑定到控制器方法参数上的注解。它可以用于控制器类的方法参数上,用来指定请求的参数名称和类型。@RequestParam注解有以下几个属性:value:name属性的别名,这里指参数的名称,即入参的请求参数名称,required:表示该参数是否是必需的。defaultValue:指定了参数的默认值。如果请求中缺少该参数,则会使用默认值。type:指定了参数的类型。publicStringtest(@RequestParam(value="username",required=false)Stringusername)任务3:拦截器的使用叁拦截器概述任务技能在应用程序中对请求和响应进行处理的组件,它可以在指定的方法调用前或者调用后,执行预先设定的代码。拦截器定义方式在SpringMVC中定义一个拦截器非常简单,常用的拦截器定义方式有两种。拦截器的配置自定义拦截器之后,需要在SpringMVC的配置文件中配置拦截器,拦截器需要在前端控制器中进行配置才能生效:任务3-1:拦截器概述叁SpringMVC的处理器拦截器是一种在应用程序中对请求和响应进行处理的组件,它可以在指定的方法调用前或者调用后,执行预先设定的代码。常见的应用场景包括:安全认证日志记录通用行为性能监控缓存对请求进行身份验证和授权,以确保只有经过认证的用户才能访问受保护的资源。记录请求和响应的详细信息,以便进行故障排除和性能优化。监测请求的响应时间、吞吐量等指标,提供有关应用程序性能的详细信息。对请求进行缓存,以减少对后端服务器的负载。读取cookie得到用户信息并将用户对象放入请求,方便后续流程使用任务3-2:拦截器定义方式叁常用的拦截器定义方式有以下两种。第一种方式是通过实现HandlerInterceptor接口定义拦截器。第二种方式是通过继承HandlerInterceptor接口的实现类HandlerInterceptorAdapter,定义拦截器。实现HandlerInterceptor接口定义拦截器是最常用的方式之一。HandlerInterceptor接口定义了三个方法:preHandle():在Controller方法执行之前被调用,可以对请求进行预处理,postHandle():在Controller方法执行之后被调用,可以对响应进行后处理,afterCompletion():在Controller方法执行完成后被调用,可以进行资源清理等工作。任务3-2:拦截器定义方式叁示例代码如下所示publicclassFirstInterceptorimplementsHandlerInterceptor{

@OverridepublicbooleanpreHandle(HttpServletRequestrequest,HttpServletResponseresponse,Objecthandler)throwsException{//在请求处理之前进行拦截returntrue;}@OverridepublicvoidpostHandle(HttpServletRequestrequest,HttpServletResponseresponse,Objecthandler,ModelAndViewmodelAndView)throwsException{//在请求处理之后进行拦截}@OverridepublicvoidafterCompletion(HttpServletRequestrequest,HttpServletResponseresponse,Objecthandler,Exceptionex)throwsException{//在请求处理完成之后进行拦截}}任务3-3:拦截器的配置叁自定义拦截器之后,需要在SpringMVC的配置文件中配置拦截器,拦截器需要在前端控制器中进行配置才能生效:<mvc:interceptors/>标签用于配置一组拦截器,<mvc:interceptors/>标签内部可以使用多个<mvc:interceptor/>或直接使用<bean/>标签分别配置每个拦截器的信息。配置拦截器示例代码如下所示。<!--配置拦截器--><mvc:interceptors><!--直接配置在mvc:interceptors内部的拦截器对所有请求有效--><beanclass="erceptor.FirstInterceptor"></bean> <mvc:interceptor> <!--配置拦截器生效的路径--> <mvc:mappingpath="/**"/> <!--配置拦截器不生效的路径,在生效路径范围内,消除不生效的路径--> <mvc:exclude-mappingpath="/login"/> <!--拦截器的位置--> <beanclass="erceptor.SecondInterceptor"></bean></mvc:interceptor></mvc:interceptors>任务4:文件上传和下载肆文件上传任务技能大多数文件上传都是通过表单形式提交给后台服务器。文件下载文件下载就是将文件服务器中的文件传输到到本机上。任务4-1:文件上传肆大多数文件上传都是通过表单形式提交给后台服务器,因此,要实现文件上传功能,就需要提供一个文件上传的表单,并且该表单必须满足以下3个条件。分别是表单的方法设为post,enctype属性设置为multipart/form-data和提供<inputtype="file"name="filename"/>的文件上传输入框。示例代码如下所示。<formaction="uploadUrl"method="post"enctype="multipart/form-data"><inputtype="file"name="filename"/><inputtype="submit"value="文件上传"multiple="multiple"/></form>任务4-1:文件上传肆SpringMVC为文件上传提供了直接的支持,这种支持是通过MultipartResolver(多部件解析器)对象实现的。MultipartResolver是一个接口,可以使用MultipartResolver的实现类CommonsMultipartResolver来完成文件上传工作。第一步:在配置文件中定义MultipartResolver接口的Bean,具体配置方式如下。<beanid="multipartResolver"class="mons.CommonsMultipartResolver"/><!--设置请求编码格式,必须与JSP中的pageEncoding属性一致,默认为ISO-8859-1--><propertyname="defaultEncoding"value="UTF-8"/><!--设置允许上传文件的最大值为2M,单位为字节--><propertyname="maxUploadSize"value="2097152"/></bean>任务4-1:文件上传肆第二步:添加commons-fileload依赖。CommonsMultipartResolver并未自主实现文件上传下载对应的功能,而是在内部调用了ApacheCommonsfileload的组件,所以使用SpirngMVC的文件上传功能,需要在项目中导入ApacheCommonsfileload组件的依赖,即commons-fileload依赖和commons-io依赖。由于commons-fileload依赖会自动依赖commons-io,所以可以只在项目的pom.xml文件中引入如下依赖。<dependency> <groupId>commons-fileload</groupId> <artifactId>commons-fileload</artifactId> <version>1.4</version></dependency>任务4-1:文件上传肆第三步:当完成文件上传表单和文件上传解析器的配置后,就可以在Controller中编写上传文件的方法,如下所示:@ControllerpublicclassfileloadController{@RequestMapping("/fileload")publicStringfileload(MultipartFilefile){if(!file.isEmpty()){//保存上传的文件,filepath为保存的目标目录 file.transferTo(newFile(filePath))return"uploadSuccess";}return"uploadFailure";}}任务4-2:文件下载肆文件下载就是将文件服务器中的文件传

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论