Struts2入门教程:从HelloWorldAction开始
需积分: 9 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框架打下坚实的基础。
2011-06-29 上传
2008-11-23 上传
2012-08-15 上传
109 浏览量
2008-09-11 上传
110 浏览量
点击了解资源详情
点击了解资源详情
1535 浏览量
ServeRobotics
- 粉丝: 39
- 资源: 2万+
最新资源
- 实战部署UC平台(OCS=VOIP GW=Exchange2007).pdf
- thinking in java
- 嵌入式Linux Framebuffer 驱动开发.pdf
- grails入门指南
- Apress.Pro.OGRE.3D.Programming.pdf
- Linux设备驱动开发详解讲座.pdf
- GoF+23种设计模式
- Wrox.Python.Create.Modify.Reuse.Jul.2008
- sd卡spi模式翻译资料
- 最新计算机考研专业课程大纲
- oracleproc编程
- Google-Guice-Agile-Lightweight-Dependency-Injection-Framework-Firstpress
- oracle工具TOAD快速入门
- Unix 操作命令大全
- ARM映象文件及执行机理
- rhce教材RH033 - Red Hat Linux Essentials