strust2中是如何初始化container并且使其全局单例?
StrutsPrepareAndExecuteFilter
protected PrepareOperations prepare;
protected ExecuteOperations execute;
Dispatcher dispatcher = init.initDispatcher(config);
init()
Container container = init_PreloadConfiguration();
private Container init_PreloadConfiguration() {
Configuration config = configurationManager.getConfiguration();
Container container = config.getContainer();
boolean reloadi18n = Boolean.valueOf(container.getInstance(String.class, StrutsConstants.STRUTS_I18N_RELOAD));
LocalizedTextUtil.setReloadBundles(reloadi18n);
return container;
}
Configuration config = configurationManager.getConfiguration();
Container container = config.getContainer();
public synchronized Configuration getConfiguration() {
if (configuration == null) {
setConfiguration(createConfiguration(defaultFrameworkBeanName));
try {
configuration.reloadContainer(getContainerProviders());
} catch (ConfigurationException e) {
setConfiguration(null);
throw new ConfigurationException("Unable to load configuration.", e);
}
} else {
conditionalReload(configuration.getContainer());
}
return configuration;
}
....
prepare = new PrepareOperations(filterConfig.getServletContext(), dispatcher);
execute = new ExecuteOperations(filterConfig.getServletContext(), dispatcher);
分享到:
相关推荐
### Struts框架初始化详解 #### 一、Struts框架简介 Struts是一个开源的MVC(Model-View-...理解这些初始化细节有助于开发者更好地掌握Struts的工作原理,并在开发过程中有效地利用其特性来提高应用的质量和性能。
在Struts2中,全局结果集(Global Results)是一种设计模式,它允许开发者定义一组通用的结果,这些结果可以在整个应用中重用,而无需在每个Action类中单独配置。这提高了代码的复用性和维护性。 全局结果集的概念...
### Struts2 国际化全局资源 Struts2的国际化处理更加灵活,它支持动态资源加载和更丰富的配置选项。 1. **资源文件**:与Struts1类似,也需要创建多个`.properties`文件,但Struts2可以使用Spring的`...
标题中的“过滤器 Struts2全局变量 action转化do”可能指的是Struts2框架中的ActionMapping和FilterDispatcher配置,以及全局结果(Global Results)的概念。 1. **过滤器(Filter)**:在Java Web开发中,过滤器是...
Struts2是Java EE开发中一个非常流行的MVC框架,用于构建可维护、可扩展的Web应用程序。在开始使用Struts2之前,...在实际开发中,你可能还需要了解更多关于Struts2的特性,如拦截器、插件、国际化、异常处理等内容。
9. **异常处理**:Struts2通过全局异常映射(Global Exception Mapping)来统一处理应用程序中抛出的异常,提高代码的可维护性。 10. **国际化与本地化**:Struts2支持多语言环境,可以通过资源包(properties文件...
项目中出现的异常通常要用一个友好的异常页面来显示,通过对struts2.xml的配置能拦截全局异常,只要出现异常就会转向异常页面。
- **Struts2**: Struts2中的Action更像是工厂模式下的产品,每个Action实例都是线程安全的。Struts2提供了ActionSupport基类来简化Action的实现。Action本身可以是任何实现了特定接口的Java对象,甚至是普通的POJO。...
而 Struts2 Action 可以通过依赖注入进行初始化和测试,提高了测试的便利性。 5. **输入数据的处理**: - Struts1 使用 ActionForm 来捕获用户输入,ActionForm 必须继承基类,有时会造成额外的类定义。Struts2 则...
2. **配置文件**:即使使用了约定优于配置,仍需要一个基本的`struts.xml`配置文件来初始化Struts2框架,并可能包含全局配置,如拦截器栈。 3. **安全考虑**:Struts2在过去曾有过一些安全漏洞,因此确保使用的是...
在Struts2中,这个容器就是IOCContainer,它负责实例化对象、注入依赖,并管理对象的生命周期。 Struts2的IOCContainer是基于OGNL(Object-Graph Navigation Language)实现的,这使得它可以方便地处理对象属性的...
- **Struts2** 提供了更好的测试支持,Action可以通过设置属性、初始化和调用方法进行单元测试,依赖注入使得测试更加简单。 7. **输入数据处理** - **Struts1.x** 使用ActionForm对象捕获用户输入,ActionForm...
- **适用范围**:Struts2广泛应用于企业级Java Web项目的开发中,特别是那些需要处理大量用户交互和数据展示的应用。 #### 二、Struts2入门案例 - **Hello Struts2**:通过创建一个简单的“Hello World”示例,...
3. 在`web.xml`中配置Struts2的Filter,使框架在Web应用启动时能够正确初始化。 Struts2的Filter配置示例如下: ```xml <filter-name>struts2 <filter-class>org.apache.struts2.dispatcher.ng.filter....
9. **异常处理**:Struts2提供了全局和局部的异常处理机制,可以统一处理应用中的异常情况,提高代码的可维护性和用户体验。 10. **国际化(i18n)**:Struts2支持多语言环境,通过资源包(Properties文件)来实现...
Struts2 的主要特点是使用 FilterDispatcher 作为核心控制器,将请求分发到相应的 Action 中。下面是 Struts2 面试题中涉及到的知识点: 1. Struts1 和 Struts2 的区别: Struts1 和 Struts2 是两个不同的框架,...
- 在**Struts2**中,Action类通过初始化、拦截器等机制进行配置和扩展,这使得开发者可以更加灵活地控制请求的处理流程,而无需直接操作Servlet API。 #### ActionForm模式的变化 - **Struts1**采用ActionForm模式...
struts4 使用Struts2中内部类中的方法进行自定义类型转换,用到的类StrutsTypeConverter struts5 增加集合类型,使用范型 struts6 直接设置要进行类型转换的字段值 struts7 制作一个表单,对表单中的内容进行...
- **Struts2**: 在Struts2中,可以通过初始化、设置属性和调用方法等方式轻松地测试Action。依赖注入的支持进一步简化了测试过程,使开发者能够更加专注于逻辑验证而非环境配置。 #### 5. 输入数据的处理方式 - **...