SSH&SSM
SSH和SSM的区别
SSH是Spring+Struts+Hibernate的缩写,是一种Web应用程序开源框架。框架系统分为四层:表选层、业务逻辑层、数据持久层和模块层。
SSM是Spring+SpringMVC+MyBatis的缩写,是数据源较简单的web项目的框架。由Spring、MyBatis两个开源框架整合而成(SpringMVC是Spring中的部分内容)。
Struts2
Struts2简介 :是一个web层框架,使用 MVC设计模式 实现,用来为控制器建立模型与视图的数据交互。
MVC设计模式
MVC概念 :M是模型(Model),V是指(用户界面)视图(View),C是控制器(Controller),使用MVC的目的是将模型(M)和视图(V)的实现代码分离,使同一个程序可以使用不同的表现形式。
请求相应流程 :

Web 应用程序的主流开发技术:
Servlet
PHP
.net
Servlet缺点 :不安全性、复杂、很难管理、内容繁多、不利于分组开发。
MVC优点:
1.各司其职,互不影响
在用户提出需求时,各层只需要管理好自己的工作,给出答复
2.可重用性
多个视图可以共享一个模型,模型层共用,只需要改视图
3.降低生命周期
程序员可以集中精力于业务逻辑,界面程序员集中精力于表现形式。
4.提高维护性
分离视图层和业务逻辑层,更易于维护和修改。
缺点:
1.比较复杂:不容易完全理解和掌握。
2.调试困难:模型和视图要严格的分离,每个构建在使用之前都需要经过彻底的测试。
3.增加系统结构和实现的复杂性:对于简单的界面,严格遵循MVC,使模型、视图和控制器分离,会增加结构的复杂性。
Spring MVC:SpringMVC属于SpringFrameWork的后续产品。
SpringMVC和Struts2对比
Struts2需要借助Spring实现,Spring MVC和Spring有直属血缘关系,吻合度高。
SSH&SSM的更多相关文章
- java mvc框架系列总结ssh,ssm,servlet
2016年10月3日 10:36:40 一直以来都很想写属于自己的博客,一来可以分享自己的学习经验,二来可以及时总结,毕竟博客是写给所有人看的,需要更加仔细的注意每个细节,而不是仅仅让自己看懂. 学了 ...
- SSH,SSM框架文件上传
一.了解文件上传 1.1 什么是文件上传 将本地文件通过流的形式写到服务器上 1.2 文件上传的技术 JspSmartUpload: 其组件是应用jsp进行B/S程序开发过 ...
- ssh ssm ssi 服务器平台架构
1.spring + springmvc + mybatis 使用maven构建,数据库是oracle,主要是温习mybatis配置以及与spring集成.这种框架目前是使用最广泛的,这里就不多说 2 ...
- SSH和SSM的区别
一怒成仙 博客园 首页 新随笔 联系 管理 订阅 随笔- 54 文章- 1 评论- 0 SSH(Struts,Spring,Hibernate)和SSM(SpringMVC,Spring,M ...
- SSH(Struts,Spring,Hibernate)和SSM(SpringMVC,Spring,MyBatis)的区别
SSH 通常指的是 Struts2 做前端控制器,Spring 管理各层的组件,Hibernate 负责持久化层. SSM 则指的是 SpringMVC 做前端控制器,Spring 管理各层的组件,M ...
- SSM框架开发web项目系列(二) MyBatis真正的力量
前言 上篇SSM框架环境搭建篇,演示了我们进行web开发必不可少的一些配置和准备工作,如果这方面还有疑问的地方,可以先参考上一篇“SSM框架开发web项目系列(一) 环境搭建篇”.本文主要介绍MyBa ...
- SSM整合(1): spring 与 springmvc 整合
久没有写博客了, 今年事情太多了, 也没了心思. 去深圳出差, 更重要的结婚的事情, 一茬接一茬. 好在最近闲暇一些, 就想记录一些曾经困扰过我的问题(现在用spring boot真是太方便了, 很 ...
- 2016年终分析(传统开发与网络时代的Java开发)
2016重大事件:(在此将2016年的开发称为传统开发) 1.乌镇互联网大会大会(大数据&云计算) 2.某东struts2安全漏洞 3.作为一个程序呀对于淘宝双11和双12的分析应该是最好的案 ...
- 关于成为Java高级工程师之路
简单说明一下现状,个人目前学习使用java已经一年半,很迷茫,高不成低不就,在此列一个目标,为期18个月,再来个一年半,这样软件生涯三年后,我必须成为高级工程师! 这里涉及Java各个方面的知识,有的 ...
随机推荐
- taro 滚动事件
taro 滚动事件 taro scroll bug ScrollView https://nervjs.github.io/taro/docs/components/viewContainer/scr ...
- django中间件介绍
在学习django中间件之前,先来认识一下django的生命周期,如下图所示: django生命周期:浏览器发送的请求会先经过wsgiref模块处理解析出request(请求数据)给到中间件,然后通过 ...
- Java Reference核心原理分析
本文转载自Java Reference核心原理分析 导语 带着问题,看源码针对性会更强一点.印象会更深刻.并且效果也会更好.所以我先卖个关子,提两个问题(没准下次跳槽时就被问到). 我们可以用Byte ...
- 【commons-pool2源码】_pre JMX
目录 一.定义 二.demo 三.JMX在commons-pool2中的应用 一.定义 JMX(Java Management Extensions) 简单来说JMX技术提供了一套轻量的标准化的资源管 ...
- python中的enumerate 函数(编号的实现方式)
enumerate 函数用于遍历序列中的元素以及它们的下标: 默认从0开始,如果想从1开始,可以仿照最后案例 加上逗号,和数字编号 >>> for i,j in enumerate( ...
- CentOS7安装Mysql并配置远程访问
(su root登录到root账户) 下载repo源 wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm 安装rpm ...
- SpringBoot2.x整合Email并利用AOP做一个项目异常通知功能
因为不知aop能干嘛,因此用aop做个小功能,再结合最近学的springboot-Email做了个系统异常自动邮件通知的功能, 感觉满满的成就感. AOP不懂的可以看上一篇:https://www.c ...
- linux的0,1,2号进程
一.答案 https://blog.csdn.net/gatieme/article/details/51532804 仔细读一下作者的博客,都是操作系统底层相关. 二.补充: 1.linux代码,a ...
- 后端程序员之路 10、gbdt(Gradient Boosting Decision Tree)
1.GbdtModelGNode,含fea_idx.val.left.right.missing(指向left或right之一,本身不分配空间)load,从model文件加载模型,xgboost输出的 ...
- vue3中watch函数
watch 监听普通类型 let count = ref(1); const changeCount = () => { count.value+=1 }; watch(count, (newV ...