Spring MVC框架如何实现RESTful API开发?
- 内容介绍
- 文章标签
- 相关推荐
本文共计1141个文字,预计阅读时间需要5分钟。
MVC注解+Spring MVC:它是Spring框架的一个子产品,是一种典型的MVC架构模式的教科书式实现。与Struts等不同,它不是变种,也不是基于MVC系统的框架,对于初学者或想了解MVC的人来说,我认为是个不错的选择。
Spring MVC 它是Spring框架的一个子产品,它是一个典型的教科书式的mvc构架,而不像struts等都是变种或者不是完全基于MVC系统的框架,对于初学者或者想了解MVC的人来说我觉得 Spring是最好的,它的实现就是教科书,
PS:spring mvc 希望用户在使用controller不再调用任何servlet里面的对象
-->解耦方式(耦:耦合)
1.导入架包
-->直接导入Spring的所有jar即可(因属于Spring的子产品,后面也会用到Spring)
-->除Spring的架包,还需要导入commons-logging-1.1.1和标准标签库的包
2.添加Web.xml中关于SpringMVC的配置
-->建议复制标准配置,然后修改即可
3.在src下添加springmvc.xml的配置
-->建议复制标准配置,然后修改即可
4.创建普通类,添加控制器@Controller注解,并在方法添加@RequestMapping注解即可
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------
spring mvc 知识体系
1.核心流程:浏览器-DispatcherServlet-HandlerMapping-HandlerAdapter-Controller-DispatcherServlet-ViewResoler-View-浏览器
详解:
-->1.浏览器 请求 DispatcherServlet(核心Servlet)
-->2.DispatcherServlet 调用 HandlerMapping(映射处理类)
-->3.HandlerMapping 调用 HandlerAdapter(处理适配器)
-->4.HandlerAdapter 分配 到指定的Controller
-->5.Controller 处理 完数据后返回到DispatcherServlet
-->6.DispatcherServlet 根据 Controller返回结果找到 ViewResoler视图解析器
-->7.ViewResoler 找到 指定页面
2.请求映射@RequestMapping(value,method,params,headers)
-->*所有,??两个字符,{userid}参数值
-->@PathVariable("userid"):获取路由参数列表值
-->@RequestParam(value,required,defaultValue)
-->value 参数名
-->required 是否为必须,默认true,必须有参数,无则抛异常
-->defaultValue 默认值,有此属性则required=false
-->@CookieValue("key") 获取Cookie值
-->spring mvc 希望controller和servlet完全解耦,但 cookie解耦还不完善
-->@RequestHeader("key")获取头文件值
-->参数也支持 实体类,HttpServletRequest,HttpServletResponse
-->ajax请求 使用@ResponseBody注解即可
-->ajax乱码:produces="text/plain;charset=utf-8"
3.处理模型数据
-->ModelAndView 返回值类型,传递视图数据 可传参入UI,但必须作为返回值类型
-->@ModelAttribute 参数类型,入参对象直接放入 可接收UI值(但仅限于对象),也可传参入UI(但仅限于对象)
-->执行所有action之前调用的方法,一般用来初始化信息或者权限管理
-->Map,Model,ModelMap 参数类型 可传参入UI,但必须作为参数传入
-->@SessionAttributes 将模型中某个属性暂存到HttpSession中
-->只能在类上使用,不可在方法中使用
-->通过model.addAttribute("session",值); 会在request和session里面同时存放值
-->@SessionAttributes(value={"info"},types={Integer.class}) value:在Model存放相同名称或类型时会自动存放在session中
-->重定向使用redirect:/index 转发使用forward:/index
4.Spring MVC数据校验
-->@Pattern(regexp) 正则匹配
-->@Length(min,max) 字符长度区间限制
-->@DecimalMin(value) 数据必须在指定值以上
-->@DecimalMax(value) 数据必须在指定值以下
-->@NotNull 不是空
-->@Null 是空
-->@NotEmpty 验证注解的元素值不为null且不为空(字符串长度不为0、集合大小不为0)
-->@Range(min=最小值, max=最大值)
-->@NotBlank 验证注解的元素值不为空(不为null、去除首位空格后长度为0),不同于@NotEmpty,@NotBlank只应用于字符串且在比较时会去除字符串的空格
-->@Email 验证注解的元素值是Email,也可以通过正则表达式和flag指定自定义的email格式
-->获取验证结果
-->index(@Valid User user,[BindingResult br,Errors er]){br.hasErrors()}
-->添加配置,启用验证注解
本文共计1141个文字,预计阅读时间需要5分钟。
MVC注解+Spring MVC:它是Spring框架的一个子产品,是一种典型的MVC架构模式的教科书式实现。与Struts等不同,它不是变种,也不是基于MVC系统的框架,对于初学者或想了解MVC的人来说,我认为是个不错的选择。
Spring MVC 它是Spring框架的一个子产品,它是一个典型的教科书式的mvc构架,而不像struts等都是变种或者不是完全基于MVC系统的框架,对于初学者或者想了解MVC的人来说我觉得 Spring是最好的,它的实现就是教科书,
PS:spring mvc 希望用户在使用controller不再调用任何servlet里面的对象
-->解耦方式(耦:耦合)
1.导入架包
-->直接导入Spring的所有jar即可(因属于Spring的子产品,后面也会用到Spring)
-->除Spring的架包,还需要导入commons-logging-1.1.1和标准标签库的包
2.添加Web.xml中关于SpringMVC的配置
-->建议复制标准配置,然后修改即可
3.在src下添加springmvc.xml的配置
-->建议复制标准配置,然后修改即可
4.创建普通类,添加控制器@Controller注解,并在方法添加@RequestMapping注解即可
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------
spring mvc 知识体系
1.核心流程:浏览器-DispatcherServlet-HandlerMapping-HandlerAdapter-Controller-DispatcherServlet-ViewResoler-View-浏览器
详解:
-->1.浏览器 请求 DispatcherServlet(核心Servlet)
-->2.DispatcherServlet 调用 HandlerMapping(映射处理类)
-->3.HandlerMapping 调用 HandlerAdapter(处理适配器)
-->4.HandlerAdapter 分配 到指定的Controller
-->5.Controller 处理 完数据后返回到DispatcherServlet
-->6.DispatcherServlet 根据 Controller返回结果找到 ViewResoler视图解析器
-->7.ViewResoler 找到 指定页面
2.请求映射@RequestMapping(value,method,params,headers)
-->*所有,??两个字符,{userid}参数值
-->@PathVariable("userid"):获取路由参数列表值
-->@RequestParam(value,required,defaultValue)
-->value 参数名
-->required 是否为必须,默认true,必须有参数,无则抛异常
-->defaultValue 默认值,有此属性则required=false
-->@CookieValue("key") 获取Cookie值
-->spring mvc 希望controller和servlet完全解耦,但 cookie解耦还不完善
-->@RequestHeader("key")获取头文件值
-->参数也支持 实体类,HttpServletRequest,HttpServletResponse
-->ajax请求 使用@ResponseBody注解即可
-->ajax乱码:produces="text/plain;charset=utf-8"
3.处理模型数据
-->ModelAndView 返回值类型,传递视图数据 可传参入UI,但必须作为返回值类型
-->@ModelAttribute 参数类型,入参对象直接放入 可接收UI值(但仅限于对象),也可传参入UI(但仅限于对象)
-->执行所有action之前调用的方法,一般用来初始化信息或者权限管理
-->Map,Model,ModelMap 参数类型 可传参入UI,但必须作为参数传入
-->@SessionAttributes 将模型中某个属性暂存到HttpSession中
-->只能在类上使用,不可在方法中使用
-->通过model.addAttribute("session",值); 会在request和session里面同时存放值
-->@SessionAttributes(value={"info"},types={Integer.class}) value:在Model存放相同名称或类型时会自动存放在session中
-->重定向使用redirect:/index 转发使用forward:/index
4.Spring MVC数据校验
-->@Pattern(regexp) 正则匹配
-->@Length(min,max) 字符长度区间限制
-->@DecimalMin(value) 数据必须在指定值以上
-->@DecimalMax(value) 数据必须在指定值以下
-->@NotNull 不是空
-->@Null 是空
-->@NotEmpty 验证注解的元素值不为null且不为空(字符串长度不为0、集合大小不为0)
-->@Range(min=最小值, max=最大值)
-->@NotBlank 验证注解的元素值不为空(不为null、去除首位空格后长度为0),不同于@NotEmpty,@NotBlank只应用于字符串且在比较时会去除字符串的空格
-->@Email 验证注解的元素值是Email,也可以通过正则表达式和flag指定自定义的email格式
-->获取验证结果
-->index(@Valid User user,[BindingResult br,Errors er]){br.hasErrors()}
-->添加配置,启用验证注解

