Struts2 Action名称搜索顺序详解与优点

需积分: 0 0 下载量 142 浏览量 更新于2024-08-23 收藏 283KB PPT 举报
Struts2是Apache Software Foundation下的一个开源Web应用框架,它是在WebWork2的基础上发展而来,采用Model-View-Controller (MVC)架构模式。与早期版本的Struts1相比,Struts2在设计上更加灵活,具备以下显著特点: 1. **解耦设计**:Struts2不像Struts1那样与Servlet API和Struts API紧密结合,采用了无侵入式设计,使得应用能独立于这些API运行,提高了灵活性和可扩展性。 2. **拦截器支持**:Struts2引入了拦截器机制,允许开发者进行面向切面编程(AOP),例如实现用户权限控制等业务逻辑,增强了代码的复用性和模块化。 3. **类型转换器**:Struts2内置类型转换器,能够自动将特殊格式的请求参数转换为所需类型,简化了开发者的工作。这在Struts1中需要手动注册类型转换器才能实现。 4. **多表现层技术**:Struts2支持多种视图技术,包括JSP、FreeMarker和Velocity等,提供了丰富的定制选项。 5. **输入校验改进**:Struts2的输入验证可以针对特定的方法进行,解决了Struts1中全局验证的不足,提升了用户体验。 6. **国际化资源管理**:Struts2提供了全局、包和Action范围的国际化资源文件管理,便于多语言应用的开发。 在搭建Struts2开发环境时,主要涉及以下步骤: - **获取依赖的jar文件**:从Apache Struts官网下载最新版本的struts-2.x.x.jar,以及可能需要的其他相关库。 - **配置文件编写**:创建或编辑`struts.xml`配置文件,定义Action、包、拦截器和结果等组件。 - **整合到web.xml**:在web.xml中添加Struts2的启动配置,以便框架能够正确地处理HTTP请求。 通过这些特性,Struts2成为了构建高效、灵活且易于维护的Web应用的首选框架之一,尤其适合那些寻求更现代开发实践和架构清晰度的开发者。在实际项目中,了解并掌握Action名称的搜索顺序是非常重要的,因为它决定了Action类的查找路径,直接影响到应用程序的行为。当用户访问URL时,Struts2会按照描述中的顺序依次检查不同级别的namespace,直到找到匹配的Action,或者返回错误消息。

192.168.85.1 - - [26/Jun/2022:06:07:07 -0400] "POST /struts2-showcase/index.action HTTP/1.1" 500 24 192.168.85.1 - - [26/Jun/2022:06:07:11 -0400] "POST /struts2-showcase/index.action HTTP/1.1" 500 24 192.168.85.1 - - [26/Jun/2022:06:07:11 -0400] "POST /struts2-showcase/index.action HTTP/1.1" 500 24 192.168.85.1 - - [26/Jun/2022:06:07:11 -0400] "POST /struts2-showcase/index.action HTTP/1.1" 200 12925 192.168.85.1 - - [26/Jun/2022:06:07:11 -0400] "POST /struts2-showcase/index.action HTTP/1.1" 200 12925 192.168.85.1 - - [26/Jun/2022:06:07:11 -0400] "POST /struts2-showcase/index.action HTTP/1.1" 200 12925 192.168.85.1 - - [26/Jun/2022:06:07:11 -0400] "POST /struts2-showcase/index.action HTTP/1.1" 200 14 192.168.85.1 - - [26/Jun/2022:06:08:06 -0400] "POST /struts2-showcase/index.action HTTP/1.1" 500 15 192.168.85.1 - - [26/Jun/2022:06:08:16 -0400] "POST /struts2-showcase/index.action HTTP/1.1" 500 1227 192.168.85.1 - - [26/Jun/2022:06:10:15 -0400] "POST /struts2-showcase/index.action HTTP/1.1" 500 79 192.168.85.1 - - [26/Jun/2022:06:13:25 -0400] "POST /struts2-showcase/index.action HTTP/1.1" 404 752 192.168.85.1 - - [26/Jun/2022:06:16:42 -0400] "POST /struts2-showcase/index.action HTTP/1.1" 500 35 192.168.85.1 - - [26/Jun/2022:06:16:57 -0400] "GET //struts2-showcase/hhh.jsp HTTP/1.1" 403 642 192.168.85.1 - - [26/Jun/2022:06:18:55 -0400] "POST /struts2-showcase/index.action HTTP/1.1" 500 35 192.168.85.1 - - [26/Jun/2022:06:19:02 -0400] "POST /struts2-showcase/index.action HTTP/1.1" 500 35 192.168.85.1 - - [26/Jun/2022:06:19:09 -0400] "GET //struts2-showcase/hhh1.jsp HTTP/1.1" 403 642 192.168.85.1 - - [26/Jun/2022:06:19:34 -0400] "POST /struts2-showcase/index.action HTTP/1.1" 500 400 192.168.85.1 - - [26/Jun/2022:06:20:37 -0400] "POST /struts2-showcase/index.action HTTP/1.1" 500 5 192.168.85.1 - - [26/Jun/2022:06:20:42 -0400] "GET //struts2-showcase/hhh1.jsp HTTP/1.1" 403 642 192.168.85.1 - - [26/Jun/2022:06:20:46 -0400] "GET //struts2-showcase/hhh.jsp HTTP/1.1" 403 642 192.168.85.1 - - [26/Jun/2022:06:20:51 -0400] "GET /struts2-showcase/hhh.jsp HTTP/1.1" 403 642

2023-07-12 上传