1、第第7 7章章Spring MVCSpring MVC注解注解SpringMVC与MyBatis企业开发实战 目 录Spring MVC 注解SpringMVC注解2RequestMapping作用详解 参见教材P126 1)标注在类上2)可以通过注解定义参数名和路径 3)可以限制响应请求方式spring mvc同样支持注解。范例如下:Controllerpublic class HelloController2 /返回ModelAndView对象RequestMapping(value=/helloController2)public ModelAndView handleRequest(H
2、ttpServletRequest request,HttpServletResponse response)throws ServletException,IOException/向request域中放入1条信息,给前端jsp用request.setAttribute(message,hello,springmvc);/返回jsp的路径return new ModelAndView(hello);Spring MVC 注解注解说明Controller在SpringMVC 中,控制器Controller 负责处理由DispatcherServlet 分发的请求,它把用户请求的数据经过业务处理层
3、处理之后封装成一个Model,然后再把该Model 返回给对应的View 进行展示。只要Controller 标记一个类是Controller,然后使用RequestMapping 和RequestParam 等一些注解用以定义URL 请求和Controller 方法之间的映射,这样的Controller 就能被外界访问到。Controller 不会直接依赖于HttpServletRequest 和HttpServletResponse 等HttpServlet 对象,它们可以通过Controller 的方法参数灵活的获取到。注解说明RequestMappingRequestMapping是一
4、个用来处理请求地址映射的注解,可用于类或方法上。用于类上,表示类中的所有响应请求的方法都是以该地址作为父路径。RequestMapping注解有六个属性,下面我们把她分成三类进行说明(下面有相应示例)。1、value,method;value:指定请求的实际地址,指定的地址可以是URI Template 模式(后面将会说明);method:指定请求的method类型,GET、POST、PUT、DELETE等;2、consumes,producesconsumes:指定处理请求的提交内容类型(Content-Type),例如application/json,text/html;produces:
5、指定返回的内容类型,仅当request请求头中的(Accept)类型中包含该指定类型才返回;注解说明3、params,headersparams:指定request中必须包含某些参数值是,才让该方法处理。headers:指定request中必须包含某些指定的header值,才能让该方法处理请求。RequestMapping注解范例params (代码见ppt备注)注解参数-methodmethod 指明响应请求的方式 注解参数-method然后我们在浏览器中输入如下地址:http:/localhost:8080/ssmBook_ch7/user/test.htm可以得到图7-4的结果页面。注解
6、参数-method只响应POST方式 RequestMapping(value=user/test.htm,method=RequestMethod.POST)public String test()return test;注解参数-method将其注解改为method=RequestMethod.POST,再次刷新浏览器,Web服务器将会报告405的错误码:Method Not Allowed。不允许使用get方式来访问,直接在浏览器中输入地址默认是以GET方式来访问的。CURL工具软件curl介绍curl(CommandLine Uniform Resource Locator)是利用UR
7、L语法在命令行方式下工作的开源文件传输工具。它被广泛应用在Unix、多种Linux发行版中,并且有DOS和Win32、Win64下的移植版本。它用于测试模拟向发送web服务器发送和接收数据非常方便。CURL工具软件curl下载https:/curl.haxx.se/download.html 下载后解压只有1个文件curl.exe。例子里将其放到了D盘的根目录。然后在windows的dos命令窗口运行它。curl命令参数curl的命令参数非常多,一般用于RESTful Web Services测试要用到下面四种参数:-d/data:POST数据内容-X/request:指定请求的方法(使用-d
8、时就自动设为POST了)-H/header:设定header信息-I/head:只显示返回的HTTP头信息CURL使用默认curl使用GET方式请求数据,这种方式下直接通过URL传递数据在命令行中输入:curl 访问地址curl http:/localhost:8080/ssmBook_ch7/user/test.htmCURL使用 post发送请求使用post请求地址,参数-d表示以post请求发送数据,命令如下:curl-d 0 http:/localhost:8080/ssmBook_ch7/user/test.htm这里0是无意义的发送数据避免将url当成数据而不是地址了。针对上一个例
9、子,服务器返回的是405的错误代码。CURL使用 post发送请求使用post请求地址,参数-d表示以post请求发送数据,命令如下:curl-d 0 http:/localhost:8080/ssmBook_ch7/user/test.htm这里0是无意义的发送数据避免将url当成数据而不是地址了。针对上一个例子,服务器返回的是405的错误代码。CURL的好处curl工具对于我们将来在开发中测试Web服务是很方便的,可以大大提高效率。除了curl,还有一些基于浏览器的插件的工具软件,例如基于Chrome浏览器的Simple REST Client和Postman-REST Client插件,
10、请读者根据需要自行下载使用。7.3 应用案例 RequestMapping标注方法实例 Member实体类7.3 应用案例 RequestMapping标注方法实例 会员服务类接口MemberService.java类7.3 应用案例 RequestMapping标注方法实例模拟数据案例-控制器类与方法案例-jsp页面显示结果浏览器结果重新刷新项目部署运行,在浏览器中输入地址:http:/localhost:8080/ssmBook_ch7/user/list.htm会得到如下教材图7-7所示结果:本章总结q SpringMVC的注解q 注解的几个参数q CURL工具q本章案例与习题THANK YOU