WEB项目的分层结构

WEB项目的分层结构

       大部分的WEB应用在职责上至少被分成四层:表示层、持久层、业务层和域模块层。

一、             表示层

一般来讲,一个典型的WEB应用的前端应该是表示层,可以使用Struts框架。

下面是Struts所负责的:

1、  管理用户的请求,做出相应的响应。

2、  提供一个流程控制,委派调用业务逻辑和其他上层处理。

3、  处理异常。

4、  为显示提供一个数据模型(即把数据对象设置到某一个范围内,用于前台获取数据)。

5、  用户界面的验证。

以下内容,不该在Struts表示层的编码中经常出现,它们与表示层无关的。

1、  与数据库直接通信。

2、  与应用程序相关联的业务逻辑有校验

3、  事务处理。

二、             持久层

典型的WEB应用的后端是持久层。可以用Hibernate实现。Hibernate的持久对象是基于POJO(Plain Old Java Object)和Java集合的。

下面是Hibernate所负责的内容:

1、  如何查询对象的相关信息。

Hibernate是通过一个面向对象查询语言(HQL)或正则表达的API来完成查询的。HQL非常类似于SQL,只是把SQL里的table和columns用Object和它的fields代替。

2、  如何存储、更新、删除数据库记录。

3、  Hibernate这类高级ORM框架支持大部分主流数据库,并且支持父表/子表关系、事务处理、继承和多态。

三、             业务层

一个典型WEB应用的中间部分是业务层或服务层。可以用Spring来实现。

下面是业务层所负责的:

1、  处理应用程序的业务逻辑和业务校验。

2、  管理事务。

3、  提供与其他层相互作用的接口。

4、  管理业务层级别的对象的依赖。

5、  在表示层和持久层之间增加一个灵活的机制,使得他们不直接联系在一起。

6、  通过揭示从表示层到业务层之间的上下文来得到业务逻辑。

7、  管理程序的执行(从业务层到持久层)。

四、             域模块层

既然我们致力于一个WEB的应用,我们就需要一个对象集合,让它在不同层之间移动。域模块层由实际需求中业务对象组成,比如订单明细、产品、等。开发者在这层不用管哪些数据传输对象,而关注域对象即可。例如,Hibernate允许你将数据库中的信息存入域对象,这样你可以在连接断开的情况下把这些数据显示到用户界面层,而那些对象也可以返回给持久层,从而在数据库里更新。而且,你不必把对象转化成DTO(这可能导致它在不同层之间传输过程中丢失)。这个模型使得Java开发者能很自然运用面向编程,而不需要附加编码。

时间: 2024-11-03 01:37:55

WEB项目的分层结构的相关文章

java web项目的目录结构

 

【spring boot】5.spring boot 创建web项目并使用jsp作前台页面

贼烦的是,使用spring boot 创建web项目,然后我再idea下创建的,but 仅仅启动spring boot的启动类,就算整个项目都是好着的,就算是能够进入controller中,也不能成功访问到jsp页面.很尴尬!也很无语!   好吧,开头一句抱怨,下面全靠编~~~ ======================================================================================================= 1.idea

myeclipse中的web项目引入spring框架的文件夹结构?

问题描述 myeclipse中的web项目引入spring框架的文件夹结构? 最近作毕设,使用的是spring框架,文件夹的结构大概是.dao,.dao.Impl,db,form,service service.Impl,socket等,我想知道这个结构是固定的么,这些包的意义是什么, 请大神赐教. 解决方案 不是固定的,一般有entity ,dao ,service ,controller 四层.你上面的几个意识应该是数据层接口,数据实现类,数据库链接,form就不知道了,业务层接口,业务层实

java web项目 目录结构

问题描述 从别人那里copy了一个java web项目.但是这个项目的目录结构和我之前见过的都不一样.结构是这样的.项目名称:|-.settings|-JavaSource|-WebContent|-test|-.copyarea.db我想把这个项目导入到MyEclipse中,但是无法导入.好像提示找不到.project.最后我自己建立了一个web工程.把项目中的内容都copy进去 这样就可以了.这是为什么呢?我见过的web项目都是这样的结构:|-.myeclipse|-.settings|-.

Java Web项目中连接Access数据库的配置方法_JSP编程

老师决定期末考试采用access数据库实现增删改查,我认为现在的我已经没有问题了,但是以前都是在JSP页面中连接access数据库,无论是以下的那种方式都进行了连接的练习,但是现在我想让我的项目中的访问access数据库的java代码,封装到DAO中,在DAO中连接数据库,没有和Servlet API有任何的关系.对于大多数人都会优先选择使用ODBC数据源的方式或者是使用绝对路径的方式连接access数据库,但是我个人认为,这样做不太好,如果采用这样的方式,项目做好后,放到他人的服务器上是无法运

关于分层结构的感悟,请指教(转)

  众所周知,经典的三层结构包括数据访问层.业务逻辑层和表示层.当然,如果继续扩展下去,还可以分为4层.5层--    我相信很多人都用过,很多人都写过,但是为什么要这么做,我相信一部分人是不能够说清楚的,这不是我猜想的,而是遇见过很多想分层但是分的乱七八糟的层次结构. 数据访问层:    功能描述:处理与数据库之间的交互,不应对数据做任何业务上的加工.捕获数据库交互式出现的异常,抛出或记录下来.         说明:它的作用就是数据访问,如果你没有用其他的类似于ORM的框架,那么这里应该是S

浅析Android系统的架构以及程序项目的目录结构

Android框架结构 直接上图: 由上图,我们可以看出Android系统架构由5部分组成, 分别是:Linux Kernel(linux内核).Android Runtime(运行时环境).Libraries(类库).Application Framework(应用框架).Applications(应用). 1.1.Linux Kernel Android基于Linux 2.6提供核心系统服务,例如:安全.内存管理.进程管理.网络堆栈.驱动模型.Linux Kernel也作为硬件和软件之间的抽

在基于MVC的Web项目中使用Web API和直接连接两种方式混合式接入

在我之前介绍的混合式开发框架中,其界面是基于Winform的实现方式,后台使用Web API.WCF服务以及直接连接数据库的几种方式混合式接入,在Web项目中我们也可以采用这种方式实现混合式的接入方式,虽然Web API或者WCF方式的调用,相对直接连接数据库方式,响应效率上略差一些,不过扩展性强,也可以调动更多的设备接入,包括移动应用接入,网站接入,Winfrom客户端接入,这样可以使得服务逻辑相对独立,负责提供接口即可.这种方式中最有代表性的就是当前Web API的广泛应用,促进了各个接入端

ASP.NET MVC 入门 2、项目的目录结构与核心的DLL

我们新建一个ASP.NET MVC的Web Application后,默认的情况下,项目的目录结构如下: App_Data :这个目录跟我们一般的ASP.NET website是一样的,用于存放数据. Content :这个目录是建议用来存放一下资源文件的.例如CSS.JS.图片等等.当然你不愿意的话,完全可以不放到这里来. Controllers :这个目录是建议将Controller类都放到这里来,方便管理.Controller类的命名必须以Controller结尾,例如一个名为Home的C