Struts2入门教程:从HelloWorldAction开始

需积分: 9 3 下载量 200 浏览量 更新于2024-08-18 收藏 265KB PPT 举报
"这篇教程主要介绍了如何编写Struts2的Action类,并概述了Struts2框架的基本知识,包括其历史、工作流程以及与Struts1的区别。教程通过一个简单的HelloWorldAction示例来演示Action的编写,同时也提到了Struts2的核心配置文件和默认配置文件的要点。" 在Struts2框架中,Action类扮演着核心角色,它是业务逻辑的载体,负责处理用户请求并返回相应的结果。在给定的代码示例中,`HelloWorldAction` 类展示了如何定义一个基本的Struts2 Action。这个类有两个关键方法:`getMessage()` 和 `setMessage()`,它们用于获取和设置message属性,而 `execute()` 方法是Action的核心,它执行实际的业务逻辑并返回一个表示结果的字符串,例如 `"success"`。 Struts2框架的历史与WebWork框架紧密相关,它实际上是WebWork的进一步发展。WebWork和Struts1社区决定合并,形成了Struts2,这个新的框架结合了两者的优点,具有更好的稳定性和性能。相比于Struts1,Struts2在设计上有很大的改进: 1. **Action类的设计**:在Struts1中,Action类需要继承特定的抽象基类,而在Struts2中,Action类只需实现Action接口或者扩展ActionSupport基类即可,甚至任何带有`execute()` 方法的Plain Old Java Object (POJO) 都可以作为Action使用,这提供了更高的灵活性。 2. **线程模型**:Struts1的Action是单例模式,开发者需要确保其线程安全,而在Struts2中,每个Action实例对应一个请求,避免了线程安全问题,使得Action设计更为简单。 3. **对Servlet API的依赖**:Struts1的Action直接与Servlet API交互,接收HttpServletRequest和HttpServletResponse对象,而Struts2则降低了这种依赖,Action不必直接处理HTTP请求,简化了开发。 在Struts2的工作流程中,用户请求首先通过Dispatcher Servlet(StrutsPrepareAndExecuteFilter)捕获,然后根据配置信息(如`struts.xml`)找到对应的Action,Action执行完毕后,根据返回的结果字符串,框架会决定跳转到哪个结果页面(JSP、Freemarker等)。 默认配置文件`struts-default.xml`包含了Struts2的一些基础设置,例如拦截器栈的配置,而`Struts.xml`则是开发者自定义的配置文件,用于指定Action、结果、拦截器等的映射。 在实际开发中,了解并熟练掌握Struts2的核心配置文件`Struts.xml`是非常重要的,它可以定义Action类、结果视图、包的继承关系以及拦截器的使用。开发者可以根据需求定制Action的行为,比如添加自定义拦截器,改变结果的跳转规则等。 通过学习这个初级教程,开发者能够掌握如何创建和配置Struts2的Action,理解其与Struts1的区别,为进一步深入学习Struts2框架打下坚实的基础。