Controller+Dao+Service+Filter+Pojo+Utils+Vo各层意思
Controller/Service/DAO简介:
Controller是管理业务(Service)调度和管理跳转的。
Service是管理具体的功能的。
Controller只负责管理,而Service负责实施。
DAO只完成增删改查,虽然可以1-n,n-n,1-1关联,模糊、动态、子查询都可以。但是无论多么复杂的查询,dao只是封装增删改查。至于增删查改如何去实现一个功能,dao是不管的。
总结这三者,通过例子来解释:
Controller像是服务员,顾客点什么菜,菜上给几号桌,都是ta的职责;
Service是厨师,action送来的菜单上的菜全是ta做的;
Dao是厨房的小工,和原材料打交道的事情全是ta管。
相互关系是,小工(dao)的工作是要满足厨师(service)的要求,
厨师要满足服务员(controller)转达的客户(view)的要求,
服务员自然就是为客户服务喽。
现在最基本的分层方式,结合了SSH架构。
Entity层就是对应的数据库表的实体类。
Dao层是使用了Hibernate连接数据库、操作数据库(增删改查)。
Service层:引用对应的Dao数据库操作。
Controller层:引用对应的Service层,结合SpringMVC注释,跳转到指定的页面,当然也能接受页面传递的请求数据,也可以做些计算处理。
以上的Hibernate, SpringMVC,都需要注入到Spring的配置文件中,Spring把这些联系起来,成为一个整体。
filter层
Filter也称之为过滤器,它是Servlet技术中最实用的技术,Web开发人员通过Filter技术,对web服务器管理的所有web资源。
例如实现URL级别的权限访问控制、过滤敏感词汇、压缩响应信息等一些高级功能。例如对Jsp, Servlet, 静态图片文件或静态 html 文件等进行拦截,从而实现一些特殊的功能。
它主要用于对用户请求进行预处理,也可以对HttpServletResponse进行后处理。使用Filter的完整流程:Filter对用户请求进行预处理,接着将请求交给Servlet进行处理并生成响应,最后Filter再对服务器响应进行后处理。
扩展资料
Filter的生命周期
和我们编写的Servlet程序一样,Filter的创建和销毁由WEB服务器负责。 web 应用程序启动时,web 服务器将创建Filter 的实例对象,并调用其init方法,读取web.xml配置,完成对象的初始化功能,从而为后续的用户请求作好拦截的准备工作
filter对象只会创建一次,init方法也只会执行一次。开发人员通过init方法的参数,可获得代表当前filter配置信息的FilterConfig对象。
这个方法完成实际的过滤操作。当客户请求访问与过滤器关联的URL的时候,Servlet过滤器将先执行doFilter方法。FilterChain参数用于访问后续过滤器。
Filter对象创建后会驻留在内存,当web应用移除或服务器停止时才销毁。在Web容器卸载 Filter 对象之前被调用。该方法在Filter的生命周期中仅执行一次。在这个方法中,可以释放过滤器使用的资源。
pijo层
在Java应用程序中的角色
使用POJO名称是为了避免和EJB混淆起来, 而且简称比较直接.
其中有一些属性及其getter setter方法的类,没有业务逻辑,
有时可以作为VO(value -object)或dto(Data Transform Object)来使用.
当然,如果你有一个简单的运算属性也是可以的,但不允许有业务方法,
也不能携带有connection之类的方法。
POJO是Plain Old Java Objects的缩写不错,但是它通指没有使用Entity Beans的普通java对象,
可以把POJO作为支持业务逻辑的协助类。
POJO有一些private的参数作为对象的属性。然后针对每个参数定义了get和set方法作为访问的接口。
POJO对象有时也被称为Data对象,大量应用于表现现实中的对象。如果项目中使用了Hibernate框架,有一个关联的xml文件,使对象与数据库中的表对应,对象的属性与表的字段对应。
错误的认识:
POJO是这样的一种“纯粹的”JavaBean,在它里面除了JavaBean规范的方法和属性没有别的东西,即private属性以及对这个属性方法的public的get和set方法。我们会发现这样的JavaBean很“单纯”,它只能装载数据,作为数据存储的载体,而不具有业务逻辑处理的能力。
真正的意思:
POJO = “Plain Ordinary Java Object”,是MartinFowler等发明的一个术语,
用来表示普通的Java对象,不是JavaBean, EntityBean 或者 SessionBean。
POJO不担当任何特殊的角色,也不实现任何特殊的Java框架的接口如,EJB, JDBC等等。
即POJO是一个简单的普通的Java对象,它不包含业务逻辑或持久逻辑等,
但不是JavaBean、EntityBean等,不具有任何特殊角色和不继承或不实现
任何其它Java框架的类或接口
utils
Util是utiliy的缩写,是一个多功能、基于工具的包。
java.util是包含集合框架、遗留的 collection 类、事件模型、日期和时间设施、国际化和各种实用工具类(字符串标记生成器、随机数生成器和位数组、日期Date类、堆栈Stack类、向量Vector类等)。集合类、时间处理模式、日期时间工具等各类常用工具包。
Java的实用工具类库java.util包。在这个包中,Java提供了一些实用的方法和数据结构。例如,Java提供日期(Data)类、日历(Calendar)类来产生和获取日期及时间,提供随机数(Random)类产生各种类型的随机数,还提供了堆栈(Stack)、向量(Vector) 、位集合(Bitset)以及哈希表(Hashtable)等类来表示相应的数据结构。
vo层
VO:value object值对象。通常用于业务层之间的数据传递,和PO一样也是仅仅包含数据而已。
但应是抽象出的业务对象,可以和表对应,也可以不,这根据业务的需要.
个人觉得同DTO(数据传输对象),在web上传递。
简单流程说明
Controller(控制逻辑)层:它是负责在页面和程序之间传输数据的,还有作用是做页面跳转。
页面由用户填写表单数据,点击提交按钮,页面的表单数据由传入Service层。
DAO层(数据库操作层):负责对数据向数据库增删改查的操作。
Service层(业务逻辑层):负责的是对数据的处理。如果没有数据处理任务的话,
此层只做单纯的数据传递作用,而后又到了DAO层。
在该注册的框架中,如果不使用Spring的话,每个层之间的数据传递都需要new一个调用该层数据的
类的实例。而使用了Spring的话,需要做的就是把DAO层和BIZ层的每个类都写一个接口类,
接口类里写实现类的方法,在调用的时候不new对象,直接用对象点(.)方法就可以,
别忘了对每个对象加上set/get方法。
作者:催产的打野
来源:CSDN
原文:https://blog.csdn.net/qq_39205129/article/details/96317911
版权声明:本文为博主原创文章,转载请附上博文链接!