【SpringMVC】SpringMVC执行原理,Mybatis分页插件的使用

7).SpringMVC执行原理、MyBatis分页插件

(1)Spring执行原理
1)执行流程:
①浏览器发起了请求 "http://localhost:8888/SSM2/user/regist.do";
   请求路径 -----> 控制器的类对应的方法(/user/regist.do-----UserController.regist();)
②请求参数接受,转化,绑定
③执行控制器拦截控制器相应方法的访问之前的  [HandlerInterceptor]-控制器的拦截器 
④执行控制器 -----> ModelAndView[mav跳转返回值]
⑤执行控制器拦截器之后的一段代码。------mav[跳转返回值]
⑥将返回mav,解析出跳转路径,和跳转方式:"跳转方式:跳转路径"
⑦跳转:	request.getRequestDispatcher("路径").forward(req,resp);   	//请求转发
		response.sendRedirect(项目名/路径);						//重定向
2)执行原理:
 
以上总结:
DispatcherServlet: SpringMVC核心控制器
作用:springmvc所有组件所有功能的核心控制器
HandlerMapping: 控制器映射器
作用:根据请求路径,找到对应控制器的方法
HandlerAdapter:控制器适配器
作用:	① 请求参数的接受,封装,转化
			② 拦截器的调用过程
			③ 调用控制器
ViewResolver:视图解析器
作用:根据控制器返回值 String|ModelAndView / 拦截器修改后mav
			① 解析跳转方式
			② 解析出跳转的路径
			③ 解析出model中的数据,为了放入作用域。 
(2)MyBatis分页插件:针对mybatis开发了插件
	作用:
①接受pageNum和pageSize
②自动根据pageNum和pageSize计算start和end
③自动根据计算出的start和end,修改sql,改成分页结构,自动讲计算出来的start和end,绑定上去
④执行查询,将查询结果,返回list+count(page)
使用:
①导入jar:
   		jsqlparser-1.2
   		pagehelper-5.1.2
②将插件配置在mybatis配置文件中,plugins标签(Spring环境下的SqlSessionFactoryBean的配置中)
 
③编码:
   //产生的效果
   //根据pageNum,pageSize获得Page<Object>对象
   //自动修改接下来紧跟着执行的查询语句,改为分页查询
   //自动讲pageNum和pageSize计算出来的start和end绑定sql
   第一步:	Page<Object> page = PageHelper.startPage(pageNum,pageSize); //获取到了Page对象
   第二步: List<实体> list = service.getAll(); //调用service查询
   第三步: 从page中将查询结果的list和表总数count封装:自定义的PageBean
				pageBean.setList(list);	//查询到的list
				pageBean.setPageNum(page.getPageNum());	//页码
				pageBean.setPageSize(page.getPageSize()); //分页大大小
			pageBean.setCount(page.getTotal()); 	//总行数
原文地址:https://www.cnblogs.com/jwnming/p/13635298.html