Struts2笔记是关于Apache Struts 2框架的学习心得,它是在Struts1之后由WebWork和XWork合并发展而来的。Struts2相较于其前辈有着显著的优势和改进,主要体现在以下几个方面:
1. **更好的扩展性**:Struts2通过拦截器(Interceptor)机制提供强大的扩展性。拦截器是一种插件式设计,允许开发者在Action执行前后添加自定义的功能,如事务管理、日志记录等,而不影响Action本身的结构。
2. **较低的侵入性**:与Struts1相比,Struts2的Action不再直接依赖于Servlet API,降低了代码的耦合度,使得Action的设计更加灵活。
3. **多视图支持**:Struts2通过`result-type`属性增强了Action的灵活性,支持多种视图技术,比如JSP、Freemarker、Velocity等,提高了页面渲染的灵活性。
4. **提高可测试性**:由于Action的实例化是为每个请求单独创建的,避免了线程安全问题,这使得Action更容易进行单元测试。
5. **表单数据处理**:Action可以直接通过属性接收表单数据,并利用内置的转换器处理基本类型和常用对象,如日期、数字等。
6. **数据验证**:Struts2支持validate方法和XWork校验框架,确保数据的准确性和完整性。
7. **强大的表达式语言**:Struts2采用OGNL(Object-Graph Navigation Language)作为其表达式语言,提供了丰富的功能,使得视图逻辑编写更为简洁。
配置方面,Struts2的核心jar包包含了一系列必要的库,如Struts Core、Tiles、Freemarker等,这些库的正确引用对于框架的正常运行至关重要。配置文件`web.xml`中的`StrutsPrepareAndExecuteFilter`是前端控制器的主要组件,它负责接收客户端请求并调用Action。`<url-pattern>/*action</url-pattern>`确保所有以`.action`结尾的URL都会经过Struts2的处理。
Struts2的控制流程涉及FilterController(前端控制器)和Interceptor(拦截器),前者接收用户请求,然后传递给Action,拦截器在此过程中执行预定义的任务,最后将结果返回给视图层。此外,Struts2还引入了分模块化的`package`机制,用于组织Action和相关的配置,使得项目结构更加清晰。
Struts2笔记详细介绍了框架的核心组件、配置方法、控制流程以及其在实际开发中的优势,对于学习和应用Struts2框架具有很高的参考价值。