Java复习第十八天学习笔记(MVC,三层架构,分页),附有道云笔记链接

这篇具有很好参考价值的文章主要介绍了Java复习第十八天学习笔记(MVC,三层架构,分页),附有道云笔记链接。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

【有道云笔记】十八 4.4 MVC模式、三层架构、分页
https://note.youdao.com/s/PRQ62OUV

一、MVC

MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,

用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。

最简单的、最经典就是JSP(view) +Servlet(controller) + JavaBean(model)

视图和逻辑隔离开来

Java复习第十八天学习笔记(MVC,三层架构,分页),附有道云笔记链接,java,学习,笔记

控制器是核心

M(Model) 模型 JavaBean

V(View) 视图 html jsp Thymeleaf volicity freemaker

C(Control) 控制器 Servlet,Controller,Action

  1. 当控制器收到来自用户的请求
  2. 控制器调用业务层完成JavaBean数据封装
  3. 完成业务后通过控制器跳转JSP页面的方式给用户反馈信息
  4. JSP个 用户做出响应。

什么是JavaBean

JavaBean:一种规范,表达实体和信息的规范,便于封装重用

  1. 所有属性为private
  2. 提供默认无参构造方法
  3. 提供getter和setter
  4. 实现serializable接口

二、三层架构

Java复习第十八天学习笔记(MVC,三层架构,分页),附有道云笔记链接,java,学习,笔记

Java复习第十八天学习笔记(MVC,三层架构,分页),附有道云笔记链接,java,学习,笔记

  1. Controller:负责控制,拿到View传递过来的数据,封装之后交给Service处理,Service处理完了之后,Controller拿到结果之后,将结果交给界面。
  2. Service:业务逻辑(分页,为了完成分页就要调用两次DAO层)
  3. DAO:纯粹的JDBC的增删改查操作

上一层可以调用下一层所有代码,并不是StudentServlet只能调用IStudentService代码,也可以调用ITeacherService代码

@WebServlet("/student") public class StudentServlet extends HttpServlet { private IStudentService studentService = new StudentServiceImpl(); private ITeacherService teacherService = new TeacherServiceImpl(); } public class StudentServiceImpl implements IStudentService { private IStudentDao studentDao = new StudentDaoImpl(); private ITeacherDao teacherDao = new TeacherDaoImpl(); } public class StudentDaoImpl implements IStudentDao { }

三、分页

Java复习第十八天学习笔记(MVC,三层架构,分页),附有道云笔记链接,java,学习,笔记

Java复习第十八天学习笔记(MVC,三层架构,分页),附有道云笔记链接,java,学习,笔记

limit 中offset代表偏移到哪个位置,rows代表往下数多少个

pageNo, pageSize 1,5 2,5 3,5

limit (pageNo-1)*pageSize ,pageSize

pageNo limit

1 0,5

2 5,5

3 10,5

Java复习第十八天学习笔记(MVC,三层架构,分页),附有道云笔记链接,java,学习,笔记

Java复习第十八天学习笔记(MVC,三层架构,分页),附有道云笔记链接,java,学习,笔记

分页常见的问题:

  1. 封装一个分页需要哪些信息
  2. 分页需要发送哪两条sql语句

public class PageInfo{ //当前页数据 private List<Student> list; //总的页数 Math.ceil(总数量/pageSize) private Integer totalPage; private Integer pageNo; private Integer pageSize; } //缺点是这个PageInfo只能封装Student,使用泛型就可以解决这个问题,这个T代表可以传递任何对象 public class PageInfo<T>{ private List<T> list; private Integer totalPage; private Integer pageNo; private Integer pageSize; } public static void main(String[] args) { int totalCount = 12; int pageSize = 5; int totalPage = (int)Math.ceil((double)totalCount / pageSize); System.out.println(totalPage);// 3 }

Java复习第十八天学习笔记(MVC,三层架构,分页),附有道云笔记链接,java,学习,笔记

Java复习第十八天学习笔记(MVC,三层架构,分页),附有道云笔记链接,java,学习,笔记

UserServlet.selectByPage com.mysql.cj.jdbc.ClientPreparedStatement: select id,name,password from users limit 0,5 com.mysql.cj.jdbc.ClientPreparedStatement: select count(*) from users PageInfo{list=[User{id=1, name='lisi', password='123'}, User{id=2, name='wangwu', password='123'}, User{id=3, name='dshfi', password='123'}, User{id=4, name='hweiohwi', password='12'}, User{id=5, name='12ih', password='23'}], totalPage=3, pageNo=1, pageSize=5} UserServlet.selectByPage com.mysql.cj.jdbc.ClientPreparedStatement: select id,name,password from users limit 5,5 com.mysql.cj.jdbc.ClientPreparedStatement: select count(*) from users PageInfo{list=[User{id=6, name='23hih', password='hio'}, User{id=7, name='hidosfhi', password='23'}, User{id=8, name='dhfih', password='34'}, User{id=9, name='ihdsfoih', password='23423'}, User{id=10, name='hdifh', password='232'}], totalPage=3, pageNo=2, pageSize=5} UserServlet.selectByPage com.mysql.cj.jdbc.ClientPreparedStatement: select id,name,password from users limit 10,5 com.mysql.cj.jdbc.ClientPreparedStatement: select count(*) from users PageInfo{list=[User{id=11, name='12hihi', password='iff'}, User{id=12, name='dhsfii', password='1212'}], totalPage=3, pageNo=3, pageSize=5}文章来源地址https://www.toymoban.com/news/detail-848601.html

到了这里,关于Java复习第十八天学习笔记(MVC,三层架构,分页),附有道云笔记链接的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 算法第十八天-打家劫舍Ⅱ

    [打家劫舍Ⅱ]是说两个相邻的房间不能同时偷,并且首尾两个房间是相邻的(不能同时偷首尾房间) 明显是基于[打家劫舍Ⅰ]做的升级。[打家劫舍Ⅰ]也是说两个相邻的房间不能同时偷,但是首尾房间不是相邻的(可以同时偷首尾房间) 所以,我们先从[打家劫舍Ⅰ]开始说起。

    2024年01月17日
    浏览(33)
  • 【三十天精通Vue 3】 第十八天 Vue 3的国际化详解

    ✅创作者:陈书予 🎉个人主页:陈书予的个人主页 🍁陈书予的个人社区,欢迎你的加入: 陈书予的社区 🌟专栏地址: 三十天精通 Vue 3

    2023年04月27日
    浏览(34)
  • python爬虫学习第二十八天-------了解scrapy(二十八天)

    🎈🎈作者主页: 喔的嘛呀🎈🎈 🎈🎈所属专栏:python爬虫学习🎈🎈 ✨✨谢谢大家捧场,祝屏幕前的小伙伴们每天都有好运相伴左右,一定要天天开心哦!✨✨  hello,兄弟姐妹们!我是喔的嘛呀。今天我们首先来了解scrapy。为后面的学习打下基础。 一、scrapy是什么?

    2024年04月25日
    浏览(31)
  • MFC第十八天 非模式对话框、对话框颜色管理、记事本项目(查找替换、文字和背景色、Goto(转到)功能的开发)

    a)调用CDialog::Create函数实现,例如:QQ的聊天框,记事本的查找等。 b)非阻塞,对象的生命期必须足够,否则就析构时摧毁了。 c)可以采用堆空间申请多例模式,也可以用全局或者成员。 d)EndDialog只对模式对话框有效,对非模式对话框无效,如果要摧毁调用DestroyWindow (只是隐

    2024年02月17日
    浏览(36)
  • 【从零开始学习JAVA | 第十八篇】接口介绍

    目录 前言: 接口: 如何定义一个接口: 如何使用一个接口: 接口中成员的特点: 接口与类的区别:   接口的应用: 总结:         接口其实是为了弥补继承的缺点: 我们无法让父类完美的适应每一个子类的要求 。 例如我们有一个动物类的父类,有一个蝌蚪类,鱼

    2024年02月10日
    浏览(37)
  • 第五十八天学习记录:C语言进阶:文件操作1

    在程序设计中,一般有两种文件:程序文件、数据文件 程序文件 包括源程序文件(后缀为.c),目标文件(windows环境后缀为.obj),可执行程序(windows环境后缀为.exe)。 数据文件 文件的内容不一定是程序,而是程序运行时读写的数据,比如程序运行需要从中读取数据的文件

    2024年02月07日
    浏览(31)
  • 【Spring MVC】快速学习使用Spring MVC的注解及三层架构

    💓 博客主页:从零开始的-CodeNinja之路 ⏩ 收录文章:【Spring MVC】快速学习使用Spring MVC的注解及三层架构 🎉欢迎大家点赞👍评论📝收藏⭐文章 SpringWebMVC是基于ServletAPI构建的原始Web框架,从⼀开始就包含在Spring框架中。它的正式名称“SpringWebMVC”来⾃其源模块的名称(Spri

    2024年04月17日
    浏览(32)
  • Java SE 学习笔记(十八)—— 注解、动态代理

    Java 注解(Annotation)又称Java标注,是JDK 5.0引入的一种注释机制,Java语言中的类、构造器、方法、成员变量、参数等都可以被注解进行标注,至于到底做何种处理由业务需求来决定。 例如: JUnit 框架中,标记了注解 @Test 的方法就可以被当成测试方法执行,而没有标记的就不

    2024年02月08日
    浏览(24)
  • JavaWeb学习|JavaBean;MVC三层架构;Filter;Listener

    实体类 JavaBean有特定的写法: 必须要有一个无参构造 属性必须私有化。 必须有对应的get/set方法 用来和数据库的字段做映射 ORM; ORM:对象关系映射 表---类 字段--属性 行记录----对象   Filter:过滤器,用来过滤网站的数据 处理中文乱码 登录验证.... 弄一个过滤器的demo 空maven+web项

    2024年02月13日
    浏览(29)
  • 算法训练第五十八天

    总结:今日事单调栈的开端,还是挺巧妙的。 496. 下一个更大元素 I - 力扣(LeetCode) 代码: 739. 每日温度 - 力扣(LeetCode)

    2024年02月09日
    浏览(26)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包