目录
Struts2概述
Struts是一种基于MVC模式的轻量级Web框架,它的本质相当于一个Servlet,它自问世以来,就收到广大Web开发者的关注,并广泛应用于各种企业系统的发开中
-
起源
Struts1是最早的基于MVC模式的轻量级Web框架,它能够合理的划分代码结构,并包含验证框架、国际化框架等多种实用工具框架,但是随着技术的进步,Struts1的局限性也越来越多的暴露出来,为了符合更加灵活、高效的开发需求,Struts2框架应运而生。
Struts2是Struts的下一代产品,是在Struts1和WebWork的技术基础上进行了合并的全新框架(WebWork是由OpenSymphony组织开发的,致力于组件化和代码重用的J2EE Web框架,它也是一个MVC框架),虽然Struts2的名字与Struts1相似,但体系结构和设计思想差别巨大。实质上,Struts2以WebWork为核心,采用拦截器的机制来处理用户请求,这样的设计也使得业务逻辑控制器能够与ServletAPI完全脱离开,所以Struts2可以理解为Webwork的更新产品。虽然从Struts1到Struts2有太大的变化,但是相对于WebWork,Struts2的变化很小。
-
常见Web层框架
1)Struts1
2)WebWork
3)Struts2
4)SpringMVC
前端控制器模式
Web层框架都会有一个特点,就是基于前端控制器模式实现的。在传统方式的开发,有一次请求就会对应一个Servlet,这样会导致出现很多Servlet。而Struts2将所有的请求都先经过一个前端控制器,在前端控制器中实现框架的部分功能,剩下具体操作要提交到具体的Action中。那么所有的请求都会经过前端控制器,那么什么来实现前端控制器呢?过滤器就是最好的一个实现方式,因为需要所有的请求都可以被过滤器拦截,然后在过滤器中实现部分功能。所以Struts2的前端控制也是由过滤器来实现的。
-
优势
1)项目开源,使用及扩展方便,天生优势
2)提供Exception处理机制
3)Result方式的页面导航,通过Result标签很方便的实现重定向和页面跳转
4)通过简单、集中的配置来调度业务类,使得配置和修改都非常容易
5)提供简单、统一的表达式语言来访问所有可供访问的数据
6)提供标准、强大的验证框架和国际化框架
7)提供强大的、可以有效减少页面代码的标签
8)提供良好的Ajax支持
9)拥有简单的插件,只需要放入相应的Jar包,任何人都已扩展Struts2框架,比如自定义拦截器、自定义结果类型、自定义标签等,为Struts2定制需要的功能,不需要什么特殊配置,并且可以发布给其他人
10)拥有智能的默认设置,不需要另外进行繁琐的设置,使用默认设置就可以完成大多数项目程序开发所需要的功能