java后端开发前,还是应该将各种层划分好,知道各自的作用,今天做一下总结。

Dao、Entity、Service、Controller层、view

1、Dao层(持久层、数据访问层)

功能:只负责与数据库的数据进行交互,dao层是在Mybatis框架下通过@MyBatisDao连接后台代码与数据库的。@Repository用于标注数据访问组件Dao层。

DAO层首先会创建DAO接口,然后会在配置文件中定义该接口的实现类,接着就可以在模块中就可以调用DAO 的接口进行数据业务的而处理。

Dao层用来访问数据库实现数据的持久化(把内存中的数据永久保存到硬盘中)。

个人理解:Dao层用于定义方法接口,然后在service层和serviceimpl层实现接口的方法,从而达到操作数据库的目的。对数据库进行数据持久化操作,方法语句主要是针对数据库的,主要实现一些增删改查操作,在Mybatis中的方法主要与xx.xml内相互一一映射。

Dao层内容列表

UserDao.java内部代码:

UserDao文件代码

可见,Dao文件里只是定义接口,并标注上注解@Repository

2、Controller层(控制层、action层)

功能:控制业务逻辑
Controller层负责具体的业务模块流程的控制,controller层主要调用Service层里面的接口控制具体的业务流程,控制的配置也需要在配置文件中进行。

Action是管理业务(Service)调度和管理跳转的。
Service是管理具体的功能的。
Action只负责管理,而Service负责实施。

3、Service层(业务层、biz)

功能:Service层用于实现操作的具体方法,包含了对页面操作模块的代码。

Service用于存放业务逻辑处理,不直接和数据库打交道,为controller层提供方法接口,Service层不仅有接口也有接口的实现方法,接口的实现方法在impl文件里。

service层里面的.java文件是接口文件,让impl文件里面的文件来实现
impl文件目录
Service层里面的ClazzService.java文件

4、Entity层(实体层、domain层)

功能:entity层用于定义实体,定义各个属性以及各个属性的getter()和setter()方法。

实体层,用于存放实体类,与数据库中的属性值基本保持一致,实现setter()和getter()方法。

entity层目录
entity层的clazz.java文件
entity层的Student.java文件

5、view层

功能:此层与Controller层联系紧密,需要协同开发。view层主要负责前台jsp页面的表示 。

注:Dao层,Service层这两个层都可以单独开发,互相的耦合度很低,完全可以独立进行,这样的一种模式在开发大项目的过程中尤其有优势。
Controller,View层因为耦合度比较高,因而要结合在一起开发,但是也可以看作一个整体独立于前两个层进行开发。这样,在层与层之前我们只需要知道接口的定义,调用接口即可完成所需要的逻辑单元应用,一切显得非常清晰简单。

controll层跳转页面_java web开发中的各种层相关推荐

  1. java 新窗口跳转页面_Java web开发中页面跳转小技巧——跳转后新页面在新窗口打开...

    最近学习Java web,在学习过程中想实现一个需求,就是在jsp页面跳转的时候,希望跳转后的新页面在新窗口中打开, 而不是覆盖原来的页面,这个需求使我困惑了好长时间,后来通过大海捞针似的在网上寻找方 ...

  2. java css路径_java web开发中CSS路径有问题吗,运行jsp文件为什么找不到css文件?...

    ---------------------------------------------------------------------------------------------------- ...

  3. java开发 图片显示不出来_java web开发中 显示图片的问题

    记录一个java Web开发中显示图片的小问题: 我碰到的问题是:把服务器上存的图片,在客户端的浏览器中显示出来.解决方法如下: 两种显示方式 一是:在servlet 或 action中直接输入图片到 ...

  4. java和Mysql数据一致性_java web开发中数据一致性的问题

    在java web开发中,数据存储介质有如下几种数据库(rdms,nosql) 缓存系统(redis,memcached,ehcache) java内部数据结构(map,list) 文件存储(fast ...

  5. java编译遇到的问题与解决_java web开发中遇到的问题及解决方案(个人学习日志,持续更新)...

    2012.05.02   星期三 1.问题:导入的新工程,名字上出现感叹号. 原因:工程的jar包libraries需要重新加载. 解决:工程右键-->properties-->Java ...

  6. java中有地址吗_java web开发中各类地址的写法

    这个其实有三个原则: 1.如果这个地址是给服务器用的,该地址的起点就是从该web应用开始写. 2.如果这个地址是给浏览器用的,该地址的起点就是从该网站开始写. 3.所有的地址都以"/&quo ...

  7. request 和require区别_JAVA WEB开发中涉及到的get和post请求,他们的区别

    Get和Post的区别: 1.get是从服务器上获取数据,post是向服务器传送数据. 2.get是把参数数据队列加到提交表单的ACTION属性所指的URL中,值和表单内各个字段一一对应,在URL中可 ...

  8. html引导蒙层,web开发中实现图标点击态蒙层

    原标题:web开发中实现图标点击态蒙层 webapp开发中经常需要加入点击二态,即用户点击(tap)页面某个部分时该部分的样式进行相应的变化来相应用户的点击操作,这样能够带来更好的用户体验,今天我们要 ...

  9. 无闪烁刷新页面 php,AJAX_Ajax实现无闪烁定时刷新页面实例代码,在Web开发中我们经常需要实现 - phpStudy...

    Ajax实现无闪烁定时刷新页面实例代码 在Web开发中我们经常需要实现定时刷新某个页面: 1.来保持session的值或者检查session的值是否为空(比如说防止同一用户重复登录): 2.实现实时站 ...

最新文章

  1. word文档查重_「毕业之家」揭秘:大学生知网论文查重的规则及查重原理
  2. 单点登录终极方案之 CAS 应用及原理
  3. canoco5冗余分析步骤_打造高性能的大数据分析平台
  4. php post aspx,Login/LoginPost.aspx.vb 文件 LoginPost.aspx
  5. 写了cookie阻止通过输入地址直接访问下一个html,但是直接输入地址访问时,会闪一下下一个页面,怎么回事啊????、...
  6. find 命令示例_数组find()方法以及JavaScript中的示例
  7. 【Python学习笔记】Python深拷贝和浅拷贝
  8. 我看中国软件---管理篇
  9. 将一个16进制数转化为10进制数
  10. 计算机维修法宝,计算机的三大法宝
  11. Android录制音频的三种方式
  12. 毁前的圆明园竟然这么美
  13. 2020.7.20-每日进步
  14. 树莓派3B+64位系统烧制与软件安装
  15. P1164 小A点菜(动态规划背包问题)
  16. 安装Win7或者XP系统用虚拟光驱加载Win7或者XP镜像 iso文件xp win7wim文件
  17. 二阶魔方万能还原公式_二阶魔方复原方法
  18. 详解:字符转换函数(大写转小写,小写转大写)
  19. 接收信号强度值dbm分析
  20. NaN是什么? NaN == NaN 的结果是什么?为什么?

热门文章

  1. 带有自定义模块的JBoss EAP上的骆驼
  2. 使用Maven Failsafe和TestNG分别运行单元测试和集成测试
  3. pae扩展内存 linux,浅析linux内核内存管理之PAE
  4. Linux 命令之 pwunconv -- 关闭投影密码
  5. 电商系统的商品流水记录
  6. chrome浏览器设置网页快速到顶部和到底部的方法
  7. 一个dsp最小系统至少要有_DSP最小系统电路设计
  8. C 常见的面试知识点(下)
  9. C语言笔试两题,有坑
  10. java缓存同步_浅谈JSON的数据交换、缓存问题和同步问题