架构图见自己总结 1、 用户发送请求至前端控制器DispatcherServlet 2、 DispatcherServlet收到请求调用HandlerMapping处理器映射器。 3、 处理器映射器根据请求url找到具体的处理器,生成处理器对象及处理器拦截器(如果有则生成)一并返回 给DispatcherServlet。 4、 DispatcherServlet通过HandlerAdapter处理器适配器调用处理器 5、 执行处理器(Controller,也叫后端控制器)。 6、 Controller执行完成返回ModelAndView 7、 HandlerAdapter将controller执行结果ModelAndView返回给DispatcherServlet 8、 DispatcherServlet将ModelAndView传给ViewReslover视图解析器 9、 ViewReslover解析后返回具体View 10、 DispatcherServlet对View进行渲染视图(即将模型数据填充至视图中)。 11、 DispatcherServlet响应用户
HandlerMapping:处理器映射器。 HandlAdapter:处理器适配器。 View Resolver:视图解析器。 说明:在springmvc的各个组件中,处理器映射器、处理器适配器、视图解析器称为springmvc的三大组件。需要用户开放的组件有handler、view。
默认支持的参数类型:包括:HttpServletRequest、HttpServletResponse、HttpSession、Model四种 基本数据类型:推荐使用包装类型。 pojo类型: 自动以参数绑定:比如日期类型需要自定义转换器。 解决get和post乱码问题件文档。
a) 数组类型的参数绑定 b) List类型的绑定 在VO中添加数组或者集合即可。 public class QueryVo { //商品对象 private Items items; //订单对象… //用户对象….
//批量删除使用,使用数组 private Integer[] ids; //批量删除使用,使用List private List<Items> itemsList; public List<Items> getItemsList() { return itemsList; } public void setItemsList(List<Items> itemsList) { this.itemsList = itemsList; } public Integer[] getIds() { return ids; } public void setIds(Integer[] ids) { this.ids = ids; } public Items getItems() { return items; } public void setItems(Items items) { this.items = items; }}
在类上面添加此注解:窄化请求映射。相当于URl中多了一层目录。
@RequestBody:接收http请求的json数据,将json数据转换为java对象。 @ResponseBody:将controller方法返回对象转换为json响应给客户端。 注意:如果使用 则不用做其他的额外的配置。
Restfull:Restful就是一个资源定位及资源操作的风格。不是标准也不是协议,只是一种风格,是对http协议的诠释。要求url中不能有.action,没有动词,只有名词,没有?传参。
多用于权限控制,比如登录。具体内容及配置见代码。