"!符号调用方式-strust初级教程" 在Struts2框架中,`!符号`的调用方式是一种动态方法调用(Dynamic Method Invocation,DMI),允许我们直接通过URL指定要执行的Action中的具体方法。在给出的例子中,`HelloWorldAction`有两个方法:`execute()` 和 `other()`。当我们访问 `/struts/test/helloworld.action` 时,默认会执行 `execute()` 方法。如果想要调用 `other()` 方法,我们可以使用动态方法调用的方式,即 `/struts/test/helloworld!other.action`。 然而,这种方式存在一定的风险,因为它可能导致安全漏洞。因此,通常建议关闭动态方法调用,通过配置Struts2的常量 `struts.enable.DynamicMethodInvocation` 设为 `false`。这样,我们需要在配置文件(通常是 `struts.xml`)中明确指定每个Action及其对应的方法映射,提高应用的安全性和可维护性。 Struts2框架是一个基于MVC设计模式的Java Web应用框架,它是在WebWork的基础上发展起来的,融合了Struts1和WebWork的优点。与Struts1相比,Struts2具有以下显著不同: 1. **Action类设计**: - Struts1的Action类需要继承自一个抽象基类,而Struts2则允许Action类实现Action接口,或者继承ActionSupport基类,提供更大的灵活性。此外,Struts2支持任何带有`execute`方法的普通Java对象作为Action,无需强制继承特定的类。 2. **线程模型**: - Struts1的Action是单例模式,需要确保线程安全,而Struts2为每个请求创建一个新的Action实例,消除了线程安全问题,简化了开发。 3. **Servlet依赖**: - Struts1的Action直接依赖于Servlet API,Action的`execute`方法接收Servlet API参数。Struts2则通过拦截器(Interceptor)机制解耦了Action与Servlet API,使得Action可以独立于Servlet环境。 4. **配置方式**: - Struts1的配置通常较为繁琐,而在Struts2中,配置更为灵活,可以使用XML或注解来定义Action、结果类型和拦截器等。 5. **表达式语言**: - Struts2引入了OGNL(Object-Graph Navigation Language),一种强大的表达式语言,用于在视图层操作数据模型。 6. **插件架构**: - Struts2拥有强大的插件体系,允许开发者扩展和定制框架功能。 7. **异常处理**: - Struts2提供了全局的异常处理机制,可以统一处理应用中的异常,提高代码的可维护性。 在学习Struts2的过程中,理解这些核心概念和差异至关重要,这有助于我们构建更稳定、高效和易于维护的Web应用。在实际开发中,还需要掌握如何配置Struts2的`struts-default.xml`和`struts.xml`文件,以及如何使用各种拦截器、结果类型和UI标签库,以实现业务逻辑和视图的分离。
- 粉丝: 15
- 资源: 2万+
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 十种常见电感线圈电感量计算公式详解
- 军用车辆:CAN总线的集成与优势
- CAN总线在汽车智能换档系统中的作用与实现
- CAN总线数据超载问题及解决策略
- 汽车车身系统CAN总线设计与应用
- SAP企业需求深度剖析:财务会计与供应链的关键流程与改进策略
- CAN总线在发动机电控系统中的通信设计实践
- Spring与iBATIS整合:快速开发与比较分析
- CAN总线驱动的整车管理系统硬件设计详解
- CAN总线通讯智能节点设计与实现
- DSP实现电动汽车CAN总线通讯技术
- CAN协议网关设计:自动位速率检测与互连
- Xcode免证书调试iPad程序开发指南
- 分布式数据库查询优化算法探讨
- Win7安装VC++6.0完全指南:解决兼容性与Office冲突
- MFC实现学生信息管理系统:登录与数据库操作