Java Web常见的三层结构
- 表现层:也就是Web层,常见的框架有Spring MVC、Struts2 ,并包括用于展示的界面,如JSP界面;
- 业务层:Service层,专注于业务逻辑的实现;
- 持久层:也叫Dao层,常见的框架是Hibernate、MyBatis。负责与数据库的交互,封装数据库的访问细节。
当服务器接受到来时浏览器的请求后,web层首先开始工作,根据不同的请求创建相应的servlet对请求进行处理转发,业务层在收到来自web层的信息之后,调用持久层,持久层访问数据库后得到返回结果,经过业务层将返回结果填充到显示界面中(JSP中),web层将Jsp界面作为浏览器请求的响应结果返回到浏览器。
工作流程图如下所示:(引用他处图片,侵删)
三层结构在SSM框架中的体现
在用Java开发互联网应用时,SSM框架(Spring + Spring MVC + MyBatis)成为了越来越主流的选择。
在轻量级的开发中,常对Web应用分成以下几层:
- POJO层: 由一组POJO组成,是对系统各种对象的抽象表达。
- DAO层: 负责数据库的访问,增、删、改、查等,在MyBatis框架中也常被定义为Mapper层。
- Service层:由业务逻辑对象组成,是不同系统的业务逻辑的具体实现。
- Controller层:由控制器组成,对来自浏览器的用户请求进行拦截,并调用Service层的响应的业务逻辑组件处理用户请求,并转发返回结果到View层。
- View层:由JSP界面,PDF文档等组件组成,用于显示系统对用户请求的处理结果。
因此,在常见的轻量级Java Web开发中,通常会将项目建立成如下的结构:
其中SSM框架经常把dao包命名为mapper包,并将mybatis框架的xxxMapper.java和xxxMapper.xml文件放到此包中
SSM框架中各框架的作用
- MyBatis:持久层框架,负责数据库访问。
- Spring MVC:表现层框架,把模型、视图、控制器分离,组合成一个灵活的系统。
- Spring: 整合项目的所有框架,管理各种Java Bean(mapper、service、controller),事务控制。