protected Action processActionCreate(HttpServletRequest request,
HttpServletResponse response,
ActionMapping mapping)
throws IOException {
// Acquire the Action instance we will be using (if there is one)
String className = mapping.getType();
if (log.isDebugEnabled()) {
log.debug(" Looking for Action instance for class " + className);
}
// :TODO: If there were a mapping property indicating whether
// an Action were a singleton or not ([true]),
// could we just instantiate and return a new instance here?
Action instance = null;
synchronized (actions) {
//sss 每次ancton的创建都是从系统的action map里面根据类名来读取,所以是另外的一种单例模式,所有的同类的action共享一个实例 struts127
// Return any existing Action instance of this class
instance = (Action) actions.get(className);
if (instance != null) {
if (log.isTraceEnabled()) {
log.trace(" Returning existing Action instance");
}
return (instance);
}
// Create and return a new Action instance
if (log.isTraceEnabled()) {
log.trace(" Creating new Action instance");
}
try {
instance = (Action) RequestUtils.applicationInstance(className);
// :TODO: Maybe we should propagate this exception
// instead of returning null.
} catch (Exception e) {
log.error(
getInternal().getMessage("actionCreate", mapping.getPath()),
e);
response.sendError(
HttpServletResponse.SC_INTERNAL_SERVER_ERROR,
getInternal().getMessage("actionCreate", mapping.getPath()));
return (null);
}
分享到:
相关推荐
10. **生命周期管理**: Struts2中的Action实例默认为多例,但可以通过配置改为单例,以优化性能。同时,Struts2还支持Spring等依赖注入框架,方便管理Action的依赖关系。 深入学习Struts2的源码,有助于理解其运行...
深入研究Struts 1.3.10源代码,可以帮助我们掌握Web应用开发的基本架构,理解MVC模式在实践中的应用,以及学习如何通过配置和编程控制请求流程。同时,通过分析源码,还可以学习到如何处理HTTP请求,验证用户输入,...
通过阅读源码,可以学习到设计模式的应用,如工厂模式、单例模式、装饰者模式等。此外,还可以了解到如何优化性能,例如Hibernate的缓存策略,以及Spring如何实现事务的自动提交和回滚。 总之,深入学习SSH框架的...
通过阅读和分析源码,我们可以学习到如何设计和实现一个高效、灵活的Web框架,了解设计模式的应用,如工厂模式、单例模式、装饰者模式等。同时,还能学习到如何使用Apache的Commons系列库和其他开源组件,提升自己的...
- **单例模式**: 在应用启动时只创建一次DAO和服务实例,提高性能。 - **工厂模式**: 用于创建DAO和服务对象,隐藏具体的创建过程。 - **贫血/富模型**: 在JSP页面中,可能会使用富模型(包含业务逻辑)或贫血模型...
通过源码,你可以看到设计模式的实际应用,比如工厂模式、单例模式、观察者模式等,并学习到如何在大型项目中组织代码和管理依赖。 总之,深入学习Struts、Spring和Hibernate的源码,对于提升Java开发者的专业水平...
1. **设计模式**:两者都大量运用了设计模式,如工厂模式、单例模式、观察者模式等,理解这些模式在源码中的应用有助于你提升设计能力。 2. **事件驱动和拦截机制**:Struts2的拦截器链和Spring的AOP都是事件驱动的...
10. **设计模式**:识别和学习源码中应用的设计模式,如工厂模式、单例模式、策略模式等,提升自己的设计能力。 通过深入学习和研究这些源码,开发者不仅可以提升对Struts Commons组件的理解,还能加深对Java Web...
8. **设计模式应用**: 可以采用工厂模式、单例模式等设计模式来组织分页相关的类和方法,提高代码的可读性和可维护性。 9. **响应式设计**: 如果项目需要支持多种设备,还需要考虑到分页在不同屏幕尺寸下的适应性,...
8. **设计模式**:XWork源码中运用了多种设计模式,如工厂模式(Factory)、单例模式(Singleton)、装饰器模式(Decorator)等,这些都是Java开发中的经典模式,值得深入研究。 通过学习和分析XWork 2.1.6的源码,...
《Xwork2 源码阅读.pdf》是一个深入解析Xwork2框架的文档,结合了Webwork和Struts2的源码...同时,源码阅读也能加深对Java设计模式的理解,如工厂模式、单例模式、装饰者模式等,这些都是软件开发中不可或缺的知识。
观察者模式 Observer:Swing中的事件模型 工厂模式 Factory:在JDK中遍地都是,比如JDBC、JNDI等,是学习Spring的基础 命令模式 Command:Struts框架的基石 单例模式 Singleton:最简单的设计模式,大量...
Struts2.0是Java Web开发中的一个强大框架,它基于Model-View-Controller(MVC)设计模式,旨在简化企业级应用的开发流程。这个框架提供了丰富的特性,包括动作调度、结果映射、插件架构、国际化的支持以及与各种...
7. **设计模式**:源码中可能运用了常见的设计模式,如工厂模式、单例模式、观察者模式等。设计模式是解决特定问题的成熟方案,熟悉它们能提高代码的可读性和可维护性。 8. **网络编程**:Java的Socket编程可用于...
此外,对于DAO和Service的设计模式,也应该有所了解,如单例模式、工厂模式等。 总之,SSH框架的整合不仅提升了开发效率,也为项目提供了清晰的分层结构。通过学习和实践这个小项目,开发者可以深入理解Java Web...
通过设计模式如工厂模式、单例模式等,可以使代码更易于理解和复用。 通过研究和学习这个"办公企业OA源码1",开发者不仅可以了解OA系统的实现原理,还能掌握相关技术的应用,为自己的项目开发积累宝贵经验。同时,...
在源码层面,Struts2的设计遵循了OOP原则,使用了大量设计模式,如工厂模式、单例模式、装饰器模式等,增强了框架的可扩展性和可维护性。通过阅读Struts2源码,开发者可以深入了解MVC框架的工作原理,提升自身技能。...
服务层的设计可以遵循单例模式或工厂模式,以确保高并发环境下的性能和线程安全。 3. **Controller**:控制器层(Controller)通常由Struts的Action类实现,它们接收HTTP请求,调用相应服务层的方法,处理业务逻辑...
Spring框架的源码充满了设计模式的运用,如工厂模式、单例模式、观察者模式、装饰器模式等。通过阅读源码,你可以学习到如何在实际项目中有效地运用这些模式。此外,Spring的源码还展示了如何优雅地处理依赖关系,...
3. **设计模式**:在开源MVC框架中,设计模式如工厂模式用于创建对象,单例模式用于确保类只有一个实例,观察者模式则用于对象间的事件通知。这些模式帮助框架实现灵活、可扩展的结构。 4. **AOP**:面向切面编程...