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各个方面的知识,有的 ...
随机推荐
- Promise.allSettled & Promise.all & Promise.race & Promise.any All In One
Promise.allSettled & Promise.all & Promise.race & Promise.any All In One new Promise(), ...
- 图解 HTTP, 图解 HTTPS, 图解 HTTP/2, 图解 HTTP/3, 图解 QUIC
图解 HTTP, 图解 HTTPS, 图解 HTTP/2, 图解 HTTP/3, 图解 QUIC HTTP https://en.wikipedia.org/wiki/Hypertext_Transf ...
- SQL Tutorials & MySQL & SQL Server
SQL Tutorials SQL MySQL https://www.mysql.com/ $ mysql --version # mysql Ver 8.0.21 for osx10.15 on ...
- 如何在 macOS 上进行滚动截屏
如何在 macOS 上进行滚动截屏 Shift-Command-5 https://support.apple.com/zh-cn/guide/mac-help/mh26782/mac demo Xn ...
- Flutter & release an iOS app
Flutter & release an iOS app https://flutter.dev/docs/deployment/ios .ipa https://en.wikipedia.o ...
- js 裁剪图片
js 裁剪图片 https://gugeji.com/search?q=js剪切图片
- js replace all
js replace all https://stackoverflow.com/questions/1144783/how-can-i-replace-all-occurrences-of-a-st ...
- NGK算力持有好处多多!SPC、VAST等免费拿!
众所周知,NGK是分布式存储的,作为Web3.0以及数字经济时代的基础设施,为数字加密市场带来了全新的商业模式和经济业态,但是,这只是一个重要的起点,真正的价值还在后面! 为了满足NGK生态建设者强烈 ...
- React 函数式组件的 Ref 和子组件访问(useImperativeHandle)
引入:如何调用函数式组件内部的方法 对于 React 中需要强制修改子组件的情况,React 提供了 Refs 这种解决办法,使得我们可以操作底层 DOM 元素或者自定的 class 组件实例.除此之 ...
- node应用层中间件使用
var express = require("express") var path = require("path") var app = express() ...