zoukankan      html  css  js  c++  java
  • 【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()); 	//总行数
    
  • 相关阅读:
    今天遇到的i++问题之记录
    JS实现表单输入Enter键转换焦点框
    点击不同链接,显示同一个页面下的不同页面
    jQuery获取属性之自己遇到的问题
    数据结构2 二叉树的高度和宽度
    Android 实现两个list分别出现(在某一时刻只出现一个控件)
    <转>Android开发使输入框点击弹出日期选择对话框的方法
    Java 图片转字节流 实现 图片->字节流(字符串)->图片
    Android 动态添加Spinner(.java文件内实现) 实现 改变spinner 内文字属性
    Android 动态添加线性布局(.java文件内) 实现控件按比例分割空间
  • 原文地址:https://www.cnblogs.com/jwnming/p/13635298.html
Copyright © 2011-2022 走看看