关于Java Web结构和SSM框架的理解

Java Web常见的三层结构

表现层:也就是Web层,常见的框架有Spring MVC、Struts2 ,并包括用于展示的界面,如JSP界面;
业务层:Service层,专注于业务逻辑的实现;
持久层:也叫Dao层,常见的框架是Hibernate、MyBatis。负责与数据库的交互,封装数据库的访问细节;从数据库表中读取加载数据并实例化领域对象(Domian Object)也就是从数据库中读取数据,或者返过来将领域对象实例化到数据库中,也就是将数据写入到数据库中。
当服务器接受到来时浏览器的请求后,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文件放到此包中

  • Java 代码源文件中几个包的作用

DAO: 里面可以是数据库操作,也可以是文件读写操作,甚至是redis缓存操作。也有人叫做数据持久层。因为Mybatis可以直接在配置文件中实现接口的每个方法,所以不需要DAOImpl。
DTO:刚学框架的人可能不明白这个有什么用,其实就是用于service层与web层之间传输,为什么不直接用entity(pojo)?其实在实际开发中发现,很多时间一个entity并不能满足我们的业务需求,可能呈现给用户的信息十分之多;或者一个 Entity 包含的信息过多,我们需要的信息仅仅是Entity的一部分,为了减少网络传输,这时候就有了dto。 一般我们使用DTO类来继承entity实体类,在DTO类里放一些业务字段,并提供get、set方法。当我们在业务逻辑层或者交互层用到一些数据库中不存在的字段时,我们就需要在DTO类里放这些字段,这些字段的意义就相当于一些经处理过的数据库字段,实质意义就是方便数据交互,提高效率。
Entity:一般与数据库的表相对应,封装dao层取出来的数据为一个对象,也就是我们常说的pojo,一般只在dao层与service层之间传输

可选的额外包:

Exception:自定义异常。

Utils,即utility,工具辅助层,一组通用的代码集合,比如处理多语言功能,网站非法信息过滤等等功能的代码集;

resource:存放后端配置文件

webapp:前端页面与配置文件:

存放jsp、css等静态文件,web.xml 配置文件主要包含:

配置 Spring 需要加载的配置文件、启用 disapatcher 转发处理所有的请求、指定编码格式

关于几个包之间的关系
controller 包是 Spring MVC 的主要文件,其中对来自浏览器的各种请求进行转发和处理。在 controller 中会内置各种 Service 包中的对象,当接收到新的请求的时候,解析 url ,根据注解调用相应的服务来完成请求。
entity 包常常与数据库中的表一一对应,dao 包中定义了数据库的基本操作,并在 mapper 包中的 xml 配置文件中完成数据操作的具体实现(也就是增、删、改、查)。Mybatis 可以实现 dao 与 .xml 的自动匹配,这时候就需要把 xxxMapper.xml 和 xxxMapper.java 放在同一个包内。
在 Service 包中定义了各种服务的接口,然后在 Service-Impl 包中对接口进行实现,在实现接口的时候会内置一个 DAO 包中的对象(因为 web 服务的实现肯定是涉及到数据访问的,而数据访问被抽象成了 DAO 包中的对象,所以服务的实现必须借助 DAO 包),然后我们借助 DAO 中的对象所实现的各种数据访问处理方法来实现具体的服务。
SSM框架中各框架的作用
MyBatis:持久层框架,负责数据库访问。
Spring MVC:表现层框架,把模型、视图、控制器分离,组合成一个灵活的系统。
Spring: 整合项目的所有框架,管理各种Java Bean(mapper、service、controller),事务控制。

原文地址:https://www.cnblogs.com/ATao365/p/11070335.html

时间: 2024-11-06 03:28:23

关于Java Web结构和SSM框架的理解的相关文章

Eclipse使用Maven创建Web项目+整合SSM框架

一.准备环境 1.maven:apache-maven-3.5.3 2.jdk:jdk1.8.0_131 3.tomcat:apache-tomcat-7.0.68 二.配置Maven.jdk 1.Window-->Preferences-->Maven-->设置自己的Settings 2.Window-->Preferences-->Java-->Installed JREs-->Add 三.新建Maven项目 1.右击-->New(或者是File--&g

eclipse搭建maven的web项目(SSM框架)

1.File -> New -> Other,在New窗口中选择 Maven -> Maven Project:点击next 选择项目路径 Usedefault Workspace location默认工作空间 2.选择项目类型 在Artifact Id中选择maven-archetype-webapp 3.输入Group ID和 Artifact ID,以及Package         Group ID一般写大项目名称.Artifact ID是子项目名称         Packag

Java Web项目使用SpringMVC框架

一.导入SpringMVC包 需要org.springframework下的5个包文件: spring-web:spring-tx:spring-context-support:spring-webmvc:spring-jdbc 以及javax.servlet下的jstl和taglibs下的standard包 <modelVersion>4.0.0</modelVersion> <properties> <spring.version>3.2.14.RELE

[20]Java实战项目教程 Java购物项目 最新SSM框架 服务端教程[2.2G]

视频试看链接:https://pan.baidu.com/s/1skRge4l 淘宝链接:https://item.taobao.com/item.htm?spm=0.7095261.0.0.5bbdc9ce0gDP3f&id=561925672374 总目录: 子文件目录1: 子文件目录2: 视频:

[原创]java WEB学习笔记27:深入理解面向接口编程

本博客为原创:综合 尚硅谷(http://www.atguigu.com)的系统教程(深表感谢)和 网络上的现有资源(博客,文档,图书等),资源的出处我会标明 本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱好者,互联网技术发烧友 微博:伊直都在0221 QQ:951226918 ---------------------------------

Java Web框架-----------------------struts2(官网教程版HelloWorld)

Java Web框架------------------struts2(官网教程版HelloWorld) 我们都知道Struts是Java Web 常用的三大框架之一,另外还有Spring.Hibernate.学习Struts很有必 要!那么怎么学习呢?我的建议是: 1.对于英语能力还可以的人,学技术我们要从官网文档学起,再结合中文别人所写的论文.博客,视频 等.这样可以达到事半功倍的效果. 2.对于阅读英语稍微吃力的人,我们可以下载有道词典,再来本计算机专业英语书,不懂就查,但是, 我们决不能

SSM框架——实现分页和搜索分页

登录|注册     在路上 在路上,要懂得积累:在路上,要学会放下:我在路上!Stay hungry,Stay foolish. 目录视图 摘要视图 订阅 [公告]博客系统优化升级     [收藏]Html5 精品资源汇集     博乐招募开始啦 SSM框架——实现分页和搜索分页 标签: springMVC分页搜索分页mybatisssm 2014-05-21 11:09 5517人阅读 评论(9) 收藏 举报 分类: J2EE(9) 版权声明:本文为博主原创文章,欢迎转载,请注明地址. 目录(

java web 开发三剑客 -------电子书

Internet,人们通常称为因特网,是当今世界上覆盖面最大和应用最广泛的网络.根据英语构词法,Internet是Inter + net,Inter-作为前缀在英语中表示“在一起,交互”,由此可知Internet的目的是让各个net交互.所以,Internet实质上是将世界上各个国家.各个网络运营商的多个网络相互连接构成的一个全球范围内的统一网,使各个网络之间能够相互到达.各个国家和运营商构建网络采用的底层技术和实现可能各不相同,但只要采用统一的上层协议(TCP/IP)就可以通过Internet

Java web开发路线--Java学习资料汇总

Java web开发是什么? 先来说说java体系,包含:javaSE.javaEE.javaME,其实目前关注主要是javaEE,但学些javaEE必须先学习javaSE(因为这个是java基础).Java web开发其实是应用javaEE实现web应用的开发,是用Java技术来解决相关web互联网领域的技术总和. web开发主要包括前端开发和后端开发,前端主要是HTML.CSS.JS等相关技术,后端技术主要有JavaEE技术.数据库技术.文件存储技术等.java体系比较庞大,也是很多人比较迷