Struts2框架入门:Action类型解析

需积分: 0 3 下载量 196 浏览量 更新于2024-08-18 收藏 265KB PPT 举报
"Action的类型-strust初级教程" 在Struts2框架中,Action类是控制器层的核心组件,它负责接收用户请求,处理业务逻辑,并转发到相应的视图进行展示。Struts2提供了多种方式来创建Action类,这些方式在不同场景下各有优势,下面将详细阐述: 1. 普通的类并定义execute方法: 这是最基础的Action实现方式,只需要创建一个Java类,然后在该类中定义一个名为`execute`的方法。这个方法会作为处理请求的主要入口点。如果在执行过程中抛出异常,Struts2框架会自动捕获并进行处理。 2. 实现Action接口: Struts2提供了一个Action接口,用户可以直接实现这个接口来创建Action类。接口中只有一个`execute`方法需要实现,这种方式相比单纯的类更加规范,但灵活性相对较低。 3. 继承ActionSupport类: `ActionSupport`是Struts2提供的一种便利的基类,它已经实现了Action接口,同时还提供了很多有用的功能,如国际化支持、错误和验证处理等。在实际开发中,大部分Action类会选择继承`ActionSupport`,这样可以减少重复代码,提高开发效率。 Struts2框架本身具有丰富的功能和高度的灵活性,与它的前辈Struts1相比,有以下显著差异: - Action类:Struts1要求Action类继承特定的抽象基类,而Struts2允许Action类实现Action接口或直接使用有`execute`方法的普通类,提高了可定制性和灵活性。此外,Struts2提供了`ActionSupport`基类,方便开发者实现常见功能。 - 线程模式:Struts1的Action采用单例模式,所有请求共享一个Action实例,这要求Action必须是线程安全的。相反,Struts2为每个请求创建一个新的Action实例,避免了线程安全问题,简化了开发。 - Servlet依赖:Struts1的Action直接依赖于Servlet API,`execute`方法接收`HttpServletRequest`和`HttpServletResponse`参数。而在Struts2中,Action不再直接依赖Servlet API,这使得Action可以在非Web环境中复用,增加了框架的通用性。 Struts2的工作流程主要包括以下步骤: 1. 用户发送HTTP请求到服务器。 2. Struts2拦截器链处理请求,执行预定义的拦截操作,如验证、权限检查等。 3. 请求到达Action,执行`execute`方法。 4. Action根据业务逻辑处理请求,可能涉及Service层调用。 5. Action返回一个Result,指示如何展示结果,如转发到JSP页面、重定向到另一个URL等。 6. Struts2根据Result配置将响应返回给客户端。 Struts2的配置主要由两个核心文件组成: - `struts-default.xml`:提供框架的默认配置,定义了一些全局行为,如拦截器栈、数据类型转换等。 - `Struts.xml`(或其他自定义名称):应用级别的配置,用于指定Action、Result、包等具体设置。 通过以上知识,我们可以了解到Struts2在设计上的改进以及其与Struts1的区别,这对于理解和使用Struts2框架进行Web应用开发是非常关键的。