ActionForm有两种生命周期,一种是Request,另外一种是Session,经常使用的是Request,也就是ActionFom都是存在于一个Request中,也就是从一个客户请求开始到最终响应用户的过程。
通常使用Struts框架不外乎以下两种方式:一种是从页面提交数据,交由Struts处理,另外一种就是直接由Struts负责Model2类型中的转发器。
第一种最常见的就是用户登录表单,当用户填写完毕提交给处理页面,通常是1个Action中,在Action处理之前,会到对应的Request中取ActionForm,并将所有的用户、密码数据自动组装成到这个ActionForm中,然后进入到Action的处理逻辑;处理完后,可能会在页面上显示该ActionForm的数据,也就是“欢迎你, chiefsailor!”这样的话,另外可能性就是转发到(forward)指定的页面,此时已经把要显示的数据存放到了Request/Session的Attribute里了,再显示页面也能很方便的显示。
另外一种其实就是利用Struts直接访问链接,也就是类似“/server/homepage.do?name=chiefsailor”,这个时候ActionForm是直接创建的,所以ActionForm必然需要无参构造函数的,然后通过在Action里通过对参数的处理,其实这个时候ActionForm是刚初始化的,没有信息在里面,可以进行强制类型转换,并在里面进行填充信息,然后转发到对应的信息页
分享到:
相关推荐
在Struts 1中,ActionForm的生命周期包括以下几个阶段: 1. 创建:ActionForm实例可以在请求级别或者session级别被创建。请求级别意味着每个HTTP请求都会创建一个新的ActionForm实例,而session级别则表示一个用户的...
博客文章"Struts学习笔记之ActionForm - xiaodaoxiaodao——蓝小刀的自言自语 - BlogJava.mht"可能包含更深入的实践示例和经验分享,包括如何处理ActionForm的生命周期、动态Form Beans、国际化等话题。通过阅读这篇...
在Java Web开发中,Struts...总的来说,这个主题涵盖了Struts框架的表单处理机制、ActionForm的生命周期以及如何在代码中检查ActionForm的存在。学习并掌握这些内容对于理解和调试基于Struts的Web应用程序至关重要。
一个ActionForm实例的生命周期通常包括创建、初始化、填充、处理、销毁几个阶段。在请求处理过程中,Struts框架可能会复用ActionForm对象以提高性能,这就要求开发者在处理完一次请求后,正确清理ActionForm的状态...
- **Struts1**: 在Struts1架构中,Action的生命周期是由容器管理的。每次HTTP请求都需要重新创建Action实例,并调用它的`execute`方法。这种方式导致了较高的资源消耗。 - **Struts2**: 每个Action实例都只服务于...
Struts的生命周期包括初始化、请求处理、清理和销毁四个阶段。ActionServlet在Web应用启动时初始化,处理每个HTTP请求,然后在请求完成后清理资源,最后Web应用关闭时销毁。 6. **如何在Struts中处理异常?** ...
- **Struts2**:支持拦截器堆栈,允许为每个Action创建独特的生命周期,堆栈可以根据需要定制。 总的来说,Struts2在设计上更加灵活、可测试和可扩展,而Struts1则相对更注重基础功能和简单的实现。在实际项目中,...
5. **生命周期管理**:Struts1框架对Action和Form Bean的生命周期进行管理,如实例化、初始化、请求处理和销毁等。 6. **国际化与本地化**:Struts1支持多语言环境,可以通过资源文件(.properties)来实现不同语言...
**Struts1** 在架构上要求Action类必须继承一个特定的抽象基类,这限制了开发者的灵活性,同时也意味着所有的Action都需要遵循相同的生命周期管理方式。这种方式的主要问题在于它强制要求使用抽象类而不是接口进行...
此外,Spring的配置文件(如applicationContext.xml)也是关键,因为它定义了Bean的生命周期和依赖关系。 工具方面,IDE如IntelliJ IDEA或Eclipse对于Java Web开发非常有用,它们有内置的Struts和Spring支持,可以...
5. **RequestProcessor**:处理请求的入口,它是Struts生命周期的第一步,负责初始化和调度ActionServlet。 6. **ActionForward**:表示请求转发的对象,用于定义请求处理后转向的页面或资源。 7. **Tiles**:...
- **Struts1**: 支持为每个模块单独配置Request Processors(即生命周期管理器),但模块内的所有Action必须共享相同的生命周期。 - **Struts2**: 通过配置拦截器堆栈(Interceptor Stacks)来为每个Action定制不同...
总结来说,Struts视图组件的学习涵盖了ActionForm的使用、生命周期理解,以及一系列用于构建视图的标签。熟练掌握这些知识点,将有助于你在Java Web开发中构建出高效且易于维护的用户界面。同时,实践中的代码分析和...
练习这部分可能包括创建和配置Servlet,以及理解Servlet生命周期和Struts如何与Servlet协同工作。 2. **struts_threadtest**: 这可能是一个测试多线程(Threads)的示例。在Struts应用中,多线程问题可能出现在并发...
在实际项目中,开发者需要在web.xml中配置`SpringModuleFilter`和`SpringModuleInitListener`,确保Spring能够正确初始化并参与Struts的生命周期。同时,需要在Spring的配置文件中声明Struts相关的bean,如Action、...
10. **生命周期管理**:Struts1框架管理ActionForm实例的生命周期,包括创建、初始化、处理请求、清理资源等步骤,确保了在多线程环境下的正确性。 通过这个"Struts1小demo",你可以实际操作这些概念,了解它们如何...
3. **生命周期管理**:要合理控制ActionForm在Session中的生命周期,避免不必要的内存泄漏。可以使用`HttpSessionBindingListener`接口来监听ActionForm的添加和移除事件。 4. **安全性考虑**:敏感数据不应长时间...
关于Action的生命周期,每个Action请求只初始化一次,因此它们是线程不安全的。为了确保安全,开发者需要注意不要在Action中使用实例变量或类变量来存储请求相关的数据。同时,对公共资源的操作需要考虑同步问题。...