"这是一份关于Struts2入门的学习资料,适合初学者使用。这份教程由刘启玉编著,出自宁波理工学院,讲解了JavaEE应用开发中的Struts2框架。教程对比了Struts1和Struts2的区别,阐述了Struts2的架构和工作原理,以及其核心组件。此外,还介绍了Struts2的配置文件,包括web.xml、struts.xml和struts.properties。"
在JavaEE应用开发中,Struts2是一个广泛使用的MVC(Model-View-Controller)框架,它极大地简化了企业级Web应用程序的构建。该资料主要围绕以下几个知识点展开:
1. Struts2与Struts1的对比:
- Struts1中,Action和ActionForm是分离的,而在Struts2中,Action可以是普通的Java对象(POJO),简化了开发。
- Struts1使用ActionForward进行结果导航,而Struts2则采用Result和ResultType,提供了更灵活的视图技术集成。
- Struts2引入了拦截器(Interceptors)机制,增强了功能扩展性和可维护性。
2. Struts2架构:
- Struts2的架构基于拦截器模型,它不再依赖于ActionServlet和FilterDispatcher,而是使用FilterDispatcher的升级版——StrutsPrepareAndExecuteFilter。
- 请求处理器RequestProcessor在Struts2中被替换为拦截器链,使得处理逻辑更加模块化。
3. Struts2的工作原理:
- 当请求到达时,Struts2的过滤器会捕获请求并引导到相应的Action。
- Action通过ValueStack与视图进行交互,ValueStack是存储动作对象和值栈表达式语言(OGNL)的容器,使得数据绑定和表达式评估变得简单。
- 结果(Results)和ResultType负责处理Action执行后如何展示视图,支持多种视图技术如JSP、FreeMarker等。
4. Struts2的核心组件:
- Actions:业务逻辑处理的入口点,可以直接使用POJO实现。
- Interceptors:拦截器用于在Action执行前后插入额外的功能,例如日志记录、权限检查等。
- ValueStack/OGNL:提供了数据模型和视图之间的桥梁,OGNL(Object-Graph Navigation Language)用于对象属性的访问和操作。
- ResultTypes:定义Action执行后的不同结果类型,例如重定向、转发等。
- Results/ViewTechnologies:用于呈现结果的视图技术,可以是静态HTML、JSP、Freemarker等。
5. 配置文件:
- `web.xml`:配置Struts2的核心过滤器`FilterDispatcher`(在较新版本中是`StrutsPrepareAndExecuteFilter`)。
- `struts.xml`:定义Action、Interceptor、Result以及其他配置项,是Struts2应用的核心配置文件。
- `struts.properties`:全局配置文件,设置应用级别的参数,如常量、插件配置等。
通过这份教程,读者可以了解到Struts2的基本概念、核心组件及其配置方法,为进一步深入学习和实际开发打下基础。