Java学习笔记:Action生命周期与OOP概念解析

需积分: 9 1 下载量 106 浏览量 更新于2024-09-09 收藏 111KB TXT 举报
"这篇日记记录了学习Java的过程中关于Action生命周期的知识点,以及Java语言和相关技术的概述。" 在Java Web开发中,Action是Struts2框架中的一个重要概念,它在处理用户请求时起着核心作用。以下是Action的生命周期及其特点: 1. **生命周期**: - **非单例模式**:与Servlet和JSP不同,Action并不是在容器启动时创建一个常驻内存的单例实例。相反,每当有一个新的请求到达时,都会创建一个新的Action实例,这意味着Action是轻量级的。在请求处理完成后,Action对象会被销毁,避免了多个请求之间数据的混淆。 2. **属性变量**: - **存储请求数据**:Action中可以定义普通的属性变量,这些变量可以用来保存特定请求的数据。这是Action相对于Servlet的一个优势,因为Servlet通常不鼓励在实例变量中保存请求数据,以防并发问题。 3. **拦截器**: - **参数注入**:在Action实例被创建并准备好处理请求时,拦截器会介入,调用Action对象的setter方法,将HTTP请求参数注入到Action的属性中。这使得Action可以获取到客户端传递的数据。 4. **校验**: - **验证过程**:在参数注入之后,可能会进行数据校验。Action中可以定义validateXxx()方法来检查输入数据的有效性。如果校验失败,框架通常会阻止Action的执行方法(如execute方法)被调用,或者将错误信息返回给客户端。 5. **业务逻辑执行**: - **执行方法**:当请求参数注入完成并且通过校验后,Struts2框架会调用Action的执行方法,如execute()。在这个方法中,开发者可以调用业务服务层(service)和数据访问对象(DAO)来执行实际的业务逻辑。 6. **视图渲染**: - **数据传递**:执行方法完成后,通常会将控制权转发给视图(view)。在视图中,可以使用EL(Expression Language)表达式 `${}` 来调用Action的getter方法,读取并显示Action中保存的数据。 此外,日记中还提到了Java语言的一些基础知识和相关技术: - **Java SE**:Java的标准平台,包含了Java的核心类库API,主要用于桌面应用程序开发。 - **Java EE**:Java企业级平台,扩展了Java SE,增加了对Web应用和企业级服务的支持,包括JDBC、Servlet、JSP等。 - **Java ME**:Java微型平台,适用于移动设备和嵌入式系统。 - **Java语言特点**:简单、面向对象、继承、封装、多态、抽象和跨平台。 - **JDK**:Java开发工具包,包含JRE(Java运行环境)和JVM(Java虚拟机),用于开发和运行Java程序。 在深入学习Java Web开发的过程中,掌握Action的生命周期以及相关技术如Struts2、SpringMVC和Hibernate对于理解Java应用的架构和流程至关重要。同时,了解Java语言的基础特性和相关平台,有助于构建全面的Java知识体系。