【菜鸟学框架】——Struts2全局把控
来源:互联网 发布:兄弟连it教育招聘 编辑:程序博客网 时间:2024/06/05 00:50
何为Struts2?
Struts2是一个基于MVC设计模式的web应用框架,本质上就是一个Servlet,在MVC设计模式中,Struts2作为controller来建立模型和视图的数据交互。
Struts发展史
Struts2是Struts1的下一代产品。Struts1是最早基于MVC模式的轻量级web框架。能够合理划分代码,并且包含验证框架,国际化框架等多个实用工具框架。但是随着技术的发展,struts1存在极大局限性,为了更加灵活,高效的开发,Struts2才产生。
虽然Struts2是Struts1的下一代产品,但是Struts2和Struts1设计思想极大不同。Struts2是在Struts1和WebWork的技术基础上进行合并的全新的Struts2框架。Struts2是以webWork为核心的,采用拦截器的机制处理用户的请求。这样设计使得业务逻辑控制完全和ServletAPI完全脱离开。其实更应该把Struts2理解为WebWork的更新产品。
PS:Webwork是由OpenSymphony组织开发,致力于组件化和代码重用的J2EE Web框架。
-----------------------------------------------------------
历史小八卦
当时webwork和struts1都是基于MVC的web框架,struts2的设计核心更偏向于Webwork,最后定名却称之为struts的衍生产品。Webwork的团队之所以同意主要原因是当时struts1的应用范围比webwork广,其中一部分原因就是为了便于新框架的推广。
-----------------------------------------------------------
Struts2编程思想——aop面向切面编程
其实struts2中核心就是控制拦截器,其实和在程序中解决乱码问题用的是一个思想。
乱码问题解决
Filter是一个横向解决问题,其实是纵向重复代码,横向抽取,故形成了面向切面的编程的思想。
Struts2优点
1、项目开源,使用和拓展方便
2、提供Exception处理机制
3、Result方式的页面导航,通过Result标签很方便的实现重定向和页面跳转(支持重定向和转发)
4、提供标准,强大的验证框架和国际化框架
5、防止表单的重复提交
等等…….好处太多!!!
总之一句话:struts2使得开发人员更加专注于业务的开发。
总结
本文主要是从struts2的发展史来讲,涉及到struts2中最核心的拦截器机制其实是基于aop面向切面编程的思想,纵向相同的代码,横向抽取,其实因此也能看出技术的进步不将就才是原动力。关于struts2的好处还是需要在实践中多多体会,才能真正感受设计的美妙。这将是一个系列文章,下篇主要讲解struts2的实践应用,期待大家持续关注!
下篇文章【菜鸟学框架】——Struts2快速上手
- 【菜鸟学框架】——Struts2全局把控
- 【菜鸟学框架】——Struts2快速上手
- 【菜鸟学框架】——Struts2自定义拦截器
- 【菜鸟学框架】——struts2结合框架分析执行流程
- 菜鸟学SSH(四)——Struts2拦截器
- 菜鸟学SSH(五)——Struts2上传文件
- 【菜鸟学框架】——hibernate入门Demo
- 菜鸟学框架——JDBC VS Hibernate VS Mybatis
- 菜鸟学框架——Mybatis核心组件
- 菜鸟学SSH(二)——Struts2国际化手动切换版
- 菜鸟学SSH(三)——Struts2国际化自动检测浏览器语言版
- 菜鸟学SSH(十六)——Struts2内部是如何工作的
- 菜鸟学SSH(十六)——Struts2内部是如何工作的
- 菜鸟学SSH(二)——Struts2国际化手动切换版
- 菜鸟学SSH之Struts2的配置
- 菜鸟学STM32——流水灯
- 【菜鸟学EF】——初识EF
- 菜鸟学反汇编1—empty
- 网页中点击按钮弹出QQ聊天窗口的功能实现
- 流式计算、实时计算和离线计算
- Unity3D每隔几秒就重复执行一段代码
- after伪元素清楚浮动
- intellij idea创建kotlin项目遇到的项目结构不全的解决办法
- 【菜鸟学框架】——Struts2全局把控
- 什么样的程序猿,最容易被鄙视?
- IAR编译ZStack-CC2530为可下载运行的HEX文件的正确配置:
- openssl 单向认证
- 2----编程实现大小写字母的转换
- js 常用
- struts2.3升级struts2.5
- java---interrupt、interrupted和isInterrupted的区别
- python基础3之函数高级特性