struts2开篇(一)

20 篇文章 0 订阅
10 篇文章 0 订阅


struts2概述

struts最初是作为Apache Jakarta开源项目的组成部分,其创立者出发点是为改进JSP、Servlet、标签库和面向对象的技术。与最初版本struts1.x一起出现的还有功能强大、简洁的webwork。

struts2是Apache基金组织下的开源项目,以webwork为核心,由struts1.x和webwork合并而成的,采用拦截器的机制处理用户请求,使得业务逻辑控制器能够与Servlet API完全脱离。struts2是基于MVC模式设计,用于开发JavaEE网络应用程序的开源Web应用框架,它利用并扩展了Java Servlet API,鼓励开发者采用MVC架。目前最新版本是Struts 2.5 BETA 2(测试版)。

struts2的优点:

- 对来自用户的输入数据进行合法性验证;
- 统一布局;
- 基于AOP思想的拦截器机制,便于更好地扩展;
- 国际化和本地化
- 整合的Ajax支持 ;
- 表单的重复提交;
- 文件的上传下载;
-
- … …

MVC简述

Java Web应用结构经历过Model1和Model2。

Model1时,整个Web应用几乎都用JSP页面组成,JSP页面接受处理客户端请求,对请求处理后直接作出响应。用少量JavaBean来处理数据连接、数据访问等操作。

Model1适合小型开发,问题在于:JSP页面兼容View和Control两种角色,将视图和控制逻辑混在一起,导致代码重用性低,难以维护和扩展。

Model2已结基于MVC架构设计了,Servlet作为前端控制器,负责接收客户端发送请求,Servlet中包含控制逻辑和简单的前端处理,再调用JavaBean来完成实际的逻辑处理,接着转发相应的JSP页面处理显示逻辑。

<img src="D:\开发\笔记\myblog\java\pic\struts2\QQ截图20160423100958.png" width="963" height="580" border="0" alt="">
由于引用MVC模式,Model2具有组件化的特点,提供良好的扩展性和维护性,更适用于大规模开发,但也增加了前期开发成本,增强了开发的复杂度。

MVC将应用分成三个基本部分:Model、View、Control,这三部分以最少的耦合协同,从而提高应用的扩展性和可维护性。

经典MVC模式中,事件由控制器处理,控制器根据事件类型改变模型或试图。每个模型对应一系列的视图列表,这种对应关系通常采用注册来完成,即:把多个视图注册到一个模型,当模型发生改变时,模型向所有注册过的视图发型通知,视图从对应的模型中获得信息,然后完成视图显示的更新。

从设计模式角度来看,MVC思想非常像观察者模式,不同之处是:观察者模式下观察者和被观察者可以是两个互相对等的对象,但对于MVC思想而言,被观察者往往只是单纯的数据体,而观察者则是单纯的视图页面。

MVC特点

  • 多个视图可以对应一个模型,这样可以减少代码重复即代码维护量,一旦模型改变也方便维护;
  • 模型返回数据与显示逻辑分离,模型数据可以应用任何任何显示技术,如JSP页面、Velocity模板或直接产生Excel文档等;
  • 应用被分为三层,降低了各层之间的耦合,提供应用的扩展性;
  • 控制层的概念把不同的模型和不同视图组合在一起,完成不同请求。因此,控制层可以说是包含了用户请求权限的概念;


相比早期的MVC,Web模式下的MVC思想发生一些变化,对于普通应用,可以将视图注册给模型,当模型数据发生变化时,即时通知视图页面发生变化,而对于Web应用,即使将多个JSP页面注册给一个模型,当模型发生变化时,模型无法主动发送消息给JSP页面(因为Web应用都是基于请求/响应模式的),只有当用户请求浏览该页面时,控制器才负责调用模型数据来更新JSP页面。

<br><img src="D:\开发\笔记\myblog\java\pic\struts2\QQ截图20160423105615.png" width="935" height="645" border="0" alt="">

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值