2019独角兽企业重金招聘Python工程师标准>>>

Struts2是有传统的Struts1和WebWork两个经典MVC框架发展起来,无论从Struts2的设计角度或则实际项目中的易用性来开,它都是一个非常优秀的MVC框架。

MVC的理解:MVC思想将应用中各组件按功能进行分类,不同组件使用不同技术充当,甚至推荐了严格分层,不同组件被严格限制在其所在层内,各层之间以松耦合的方式组织在一起,从而提供良好的封装。从设计模式的角度来看,MVC思想和观察者模式很类似,但是仍有一些差别。

观察者模式:观察者和被观察者是互等的对象。MVC:被观察者是单纯的数据体,而观察者是单纯的视图页面。
MVC特点:
1.多个视图可以对应一个模型;
2.模型返回的数据与显示逻辑分离;
3.应用被分为三层降低了各层之间的耦合,提供了应用的可拓展性;
4.控制层的概念很有效,由于它把不同的模型和视图组合完成不同的请求;
5.更符合软件工程化管理的精神,不同的层各司其职,每一层组件具有相同的特征,有利于通过工程化和工具化产生管理程序代码。

转载于:https://my.oschina.net/u/242479/blog/116231

Struts2基础(1)_MVC相关推荐

  1. Struts2基础学习总结

    Struts 2是在WebWork2基础发展而来的. 注意:struts 2和struts 1在代码风格上几乎不一样. Struts 2 相比Struts 1的优点: 1.在软件设计上Struts 2 ...

  2. Struts2基础知识(三)

    本文主要包括以下内容 OGNL表达式 标签 防止表单重复提交 使用第三方插件 tomcat启动时struts2容器做的事 OGNL表达式 OGNL是Object Graphic Navigation ...

  3. Struts2基础知识(二)

    本文主要包括以下内容 文件上传,多文件上传 自定义拦截器 用户输入验证 国际化 文件上传 将头设置为enctype="multipart/form-data" <body&g ...

  4. Struts2基础知识

    本文主要包括以下内容 struts2常用常量的定义与意义 struts2处理流程 拆分struts 动态方法调用,使用通配符 接收请求参数 中文编码问题 自定义类型转化器 访问或添加request/s ...

  5. CI下载与安装_基础配置_MVC

    CI:CodeIgniter -- 由Ellislab公司的CEORickEllis开发,是一个简单快速的PHP MVC框架. =============下载和安装================ 地 ...

  6. struts2基础梳理(二)

    本篇主要有:设置struts2匹配的扩展名.使用通配符,值栈,声明式异常以及标签. 设置扩展名: 默认是对.action和不加不论什么扩展名的进行处理.能够设置: <constant name= ...

  7. struts2基础----自定义拦截器

    这一章,我们开始struts2中拦截器的学习. 自定义拦截器 一.增加一个自定义的拦截器为类 package com.huhx.interceptor;import com.opensymphony. ...

  8. 最详细Struts2基础入门

    struts2 1 框架概述 1.1什么是框架 1.2 三大框架 1.3 三层架构 1.4 MVC回顾 2 Struts简介 2.1 Struts2概述 2.2 Struts2的来历 3 Struts ...

  9. struts2《轻量级框架应用与开发--S2SH》笔记

    文章目录 struts2基础 struts2处理步骤 创建一个struts2项目 struts2进阶 struts2常量配置(struts.xml) 实现action pojo实现方式 action接 ...

最新文章

  1. vue从入门到进阶:指令与事件(二)
  2. OpenCV resize函数源码解析——加速方法
  3. Python深入04 闭包
  4. Android开发热门前沿知识,成功定级腾讯T3-2
  5. android富文本图片自适应,Android 图片混排富文本编辑器控件
  6. HTTP 协议的前世今生
  7. b类 蚂蚁金服_股权设计与合伙制,解析蚂蚁金服与华为的顶层结构
  8. 1599元!荣耀Play6T Pro今日首销:史上最薄5G手机!
  9. 说说中国的图书出版业者-读《小学奥数举一反三(5年级A版)》和《2010注册建筑师建筑结构考试强化模拟试题集》有感...
  10. mysql重装第四步报错_Mysql 8.x 安装
  11. Appfuse:扩展自己的GenericManager
  12. 整合Settings.bundle显示版本信息
  13. 人工智能与深度学习概述(1)
  14. python os模块详细_python中os模块函数方法详解最全最新
  15. js判断域名是否是合法http/https
  16. 苹果支付 php,【苹果支付二】apple pay苹果支付以及自动续订订阅开发 - Laravel学习网...
  17. python opencv 旋转图像大小不变
  18. Golang 多版本管理神器 gvm
  19. Unity UI跟随鼠标移动
  20. Zabbix以trapper方式监控MySQL备份文件

热门文章

  1. web架构设计经验分享
  2. 详解.NET的RAD功能
  3. opencv使用cvFindContours提取联通域
  4. nginx http 服务器搭建
  5. 表达式必须是可修改的左值怎么解决_如何解决代码腐败的味道
  6. 进程 线程 协程_进程,线程,协程那些事
  7. java基础入门传智播客 源码_Java-_2020年版Java零基础视频教程(Java 0基础,Java初学入门)魔鬼讲师老杜出品...
  8. java c++的区别_Java语言与C、C++之间的区别?
  9. 两个下拉框相关联ajax,触发第二个下拉框以显示基于从第一个下拉框中选择的值的值ajax...
  10. r语言手动算两个C指数p值,如何用R语言进行Pvalue显著性标记?