根据在web.xml中配置的初始化参数,当容器第一次启动或者ActionServlet的请求第一次发生的时候,将会加载struts ActionServlet,不管哪种方式加载,和其它Servlet一样,ActionServlet的init( )方法将被调用.这个方法的调用,将在所有的其他的请求发生之前完成.当init()方法被调用以后,struts将会完成一系列的复杂的初始化工作,让我们来看看在初始化过程中将发生些什么,理解了这些,对于我们debug和扩展自己的应用更加得心应手。
1、 初始化框架的内部消息绑定,这些消息用来输出提示,警告,和错误信息到日志文件中。org.apache.struts.action.ActionResources用来获取内部消息;
2、 加载web.xml中定义的不同参数,用以控制ActionServlet的不同行为,这些参数包括config, debug, detail, and convertNull ;
3、 加载并初始化web.xml中定义的servlet 名称和servlet映射信息(mapping info)。通过初始化,框架的各种DTD被注册,DTD用来在下一步校验配置文件的有效性;
4、 为默认应用加载并初始化Struts配置文件,配置文件,即初始化参数config指定的文件。默认配置文件被解析,产生一个ApplicationConfig对象存于ServletContext中。可以通过关键字org.apache.struts.action.APPLICATION从ServletContext中获取ApplicationConfig;
5、 Struts配置文件中指定的每一个消息资源都被加载,初始化,并存在ServletContext的合适区域(基于每个message-resources元素的key属性),如果key属性没有设置,则为org.apache.struts.action.MESSAGE;因为key的唯一性,仅仅只有一个消息资源能够以默认的方式存储下来
6、 Struts配置文件中声明的每一个数据源被加载并且初始化,如果没有配置数据源,这一步跳过;
7、 加载并初始化Struts配置文件中指定的插件。每一个插件的init()方法被调用;
8、 当默认应用加载完成,init()方法判断是否有应用模块需要加载,如果有,重复步骤4—7万成应用模块的加载。
分享到:
相关推荐
### Struts框架初始化详解 #### 一、Struts框架简介 Struts是一个开源的MVC(Model-View-Controller)架构实现,用于简化Java Web应用的开发过程。它基于Servlet和JSP技术来构建Web应用程序,能够帮助开发者更加...
Struts2是Java EE开发中一个非常流行的MVC框架,用于构建可维护、可扩展的Web应用程序。在开始使用Struts2之前,...在实际开发中,你可能还需要了解更多关于Struts2的特性,如拦截器、插件、国际化、异常处理等内容。
然而,有一个常见的问题出现在尝试初始化`java.util.Date`类型的字段时,即“Struts的form不能初始化java.util.Date类型”。这个问题通常是由于日期对象的序列化和反序列化机制导致的,以及Struts默认的数据绑定策略...
本资源“精通Java EE项目案例--基于Eclipse Spring Struts Hibernate (例子中的初始化SQL)”正是针对这样的集成环境提供了一套完整的数据库初始化语句,帮助开发者快速构建一个功能完善的Web应用。 首先,让我们...
总之,Struts2.3.8、Spring 3.2 和 Hibernate4.1.9 的集成可以构建出功能强大的Web应用,通过合理配置和设计,可以实现高效的网站初始化和定时任务,同时支持完整的CRUD操作。在项目中的`src`目录下,通常包含Java源...
本文将深入探讨Struts2的源码分析,特别是关于StrutsPrepareAndExecuteFilter的初始化过程,这是Struts2的核心组件之一,负责处理HTTP请求。 首先,我们来看`StrutsPrepareAndExecuteFilter`的初始化。这个过滤器...
如果你有具体的`com-init`文件列表,我们可以更深入地分析这些文件在Struts初始化过程中的作用。 总的来说,"struts com-init"涉及的是Struts框架在启动时的初始化流程,尤其是`com`包下的类或组件的初始化。理解这...
Action可以通过依赖注入的方式初始化,因此可以更容易地模拟出不同的测试场景。 #### 表单处理 - **Struts1**: 使用ActionForm来封装表单数据。ActionForm是一个JavaBean,负责验证和封装用户输入的数据。Struts1...
- 这告诉Struts在初始化时查找名为`ApplicationResources.properties`的资源包。 6. **控制器逻辑**: - 在Action类中,可以通过`ActionContext`获取当前的`Locale`,并根据它加载对应的资源包。然后,Action可以...
ActionServlet的初始化过程是整个框架工作的基础,它负责加载配置、初始化模块并处理请求。通过深入理解Struts 1.2的源码,开发者可以更好地利用这个框架,解决实际项目中的问题,同时为自定义扩展和优化提供可能。
SSH项目初始化模板是一个基于Spring、Struts2和Hibernate三大开源框架构建的基础项目模版,它为开发者提供了一个快速开发新项目的起点。这个模板集成了多种常用的技术和库,包括Shiro进行安全控制,Spring MVC作为...
ActionServlet 是 Struts 的核心 Servlet,负责初始化 Struts 配置并处理 HTTP 请求。它是 javax.servlet.http.HttpServlet 的子类,负责解析请求、调用 Action 类和处理结果。 8. JSP Tag Library: Struts 提供...
- 在`init()`方法中初始化编码配置。 - 在`doFilter()`方法中设置请求的字符编码: ```java request.setCharacterEncoding(encoding); ``` #### 总结 针对Struts2中的中文乱码问题,上述三种方案提供了从前端...
- 配置过程中需要注意过滤器的初始化参数,这些参数对于框架的正确运行至关重要。 - **使用struts.xml实现页面导航**: - `struts.xml`是Struts2的核心配置文件,用于定义应用的业务逻辑流程。 - 可以通过配置...
而 Struts2 Action 可以通过依赖注入进行初始化和测试,提高了测试的便利性。 5. **输入数据的处理**: - Struts1 使用 ActionForm 来捕获用户输入,ActionForm 必须继承基类,有时会造成额外的类定义。Struts2 则...
前者定义了Action的映射、Form Beans、DataSources等,后者则是Servlet容器的配置文件,用于设置Struts的初始化参数。开发者需要理解这些配置文件的语法和作用,以确保框架能够正确地运行。 在实际开发中,Struts与...
ActionServlet是Struts1的核心组件,它的生命周期分为初始化、拦截请求和销毁三个阶段。在初始化阶段,`init()`方法执行了一系列关键步骤: 1. `initInternal()`方法初始化内部资源,如国际化设置。它包含了英文和...
初始化过程中,ActionServlet的init()方法会被调用,这是初始化Struts应用的关键。 init()方法的执行保证了当ActionServlet需要处理用户请求时,它已经被完全初始化。在初始化过程中,ActionServlet会读取web.xml中...