经过很多年发展,Struts1已经成为了高度成熟的框架,但随着时间的发展,Struts1的局限性和缺点不断的暴露出来。
现在Struts已经分化成了两个框架
-第一个是在Struts1的基础上,融合了另一个web框架Webwork的Struts2.Struts2实质上是以Webwork为核心的,和Struts1有很大区别。
-第二个是Shale,与原有Struts1关联很少,使用了全新的设计思想。
java web动态编程技术,经历了Model和Model2时代。
Model1时代:整个Web应用几乎全部由jsp页面组成,jsp页面接收处理客户端请求,对请求处理后直接做出响应,用少量的JavaBean来处理数据库连接访问等操作。Model1的局限性非常明显,jsp页面同时担任View和Controller两种角色,将页面表现和逻辑处理混杂在一起,代码重用性极低,增加了扩展和维护难度。
Model2时代:已经采用了MVC的设计。在Model 2架构中,Servlet作为Controller,负责接收用户请求,只包含控制逻辑,然后调用后端来进行具体的逻辑处理。最后转发到相应的jsp页面负责显示。
MVC由Model(模型),View(视图),Controller(控制器)组成。
javaWeb中的三层架构
表现层:MVC,struts2框架其实是对表现层的MVC作了优化
业务层:service
持久层:dao
(1)下载Struts2 http://struts.apache.org/download.cgi 。
目录结构
apps:该文件夹下包含了基于Struts2的示例应用
docs:包含了Struts2的相关文档
lib:包含了Struts2的核心类库,以及Struts2的第三方类库
src:包含了Struts框架的所有源代码
(2)创建web项目,导入struts2所需jar包,lib中有struts2的所有jar包,但是我们不需要那么多。
我们只把必需的添加到项目即可。将apps目录下struts2-blank.war压缩包中的lib目录下的jar包添加到我们项目中即可。这是struts2必需的jar包。
(1)客户端发出HTTP请求
(2)然后请求被核心过滤器StrutsPrepareAndExecuteFilter拦截
(3)核心过滤器将请求转发到Action映射器,Action映射器负责识别当前的请求是否需要交由Struts2处理。
(4)Action映射器返回需要struts2处理的信息,StrutsPrepareAndExecuteFilter会创建一个Action代理
(5)Action代理并不知道执行哪一个Action,它会向配置管理器询问调用哪一个Action,配置管理器会从struts.xml读取我们配置的Action信息。
(6)Action代理创建相关请求的Action对象,调用相关的方法之前,struts2的一系列拦截器会帮我们做一些操作,例如获取请求参数等。
(7)然后调用execute方法根据返回的字符串去匹配相应的页面,
(8)页面可以获取一些页面模板,然后生成最终页面,再倒序的执行拦截器的后续操作
(9)最后生成HTTP响应内容
Struts2 是目前较为普及和成熟的基于MVC设计模式的web应用程序框架,它不仅仅是Struts1 的升级版本,更是一个全新的Struts架构。最初,是以WebWork框架和Struts框架为基础,通过提供增强和改进的Struts框架,进而实现简化web技术人员开发工作的目标。不久之后,Webwork框架和Struts社区联合创造了现在流行的Struts2框架。
了解了这几个主要的优点,会促使你考虑使用Struts2 :
以上是使Struts2 成为准企业框架的十大优点。
尽管Struts2 有一大列的优点,但我们还是要提到关于它的一些仍需不断改进的缺点:
最后说明一点,一个好的框架应该提供各种类型的应用程序都可以使用的通用行为,Struts2 是最好的Web框架之一,并频繁用于RIA(Rich Internet Applications)的发展。
手机扫一扫
移动阅读更方便
你可能感兴趣的文章