spring起步实例 对新学着很有帮助 客户通过HTML表单向JSP引擎递交数据,并保存在request对象中,然后引擎在把request中的数据发送到服务器组件如bean中,组件可能将这些数据存到数据库或其它地方 ### Spring实例“Developing_a_Spring_Framework_MVC_application_step-by-step”剖析 #### 一、Spring MVC 应用启动流程 本案例详细介绍了如何通过一个简单的Spring MVC应用来理解其核心工作原理。在这个实例中,我们关注的是客户端通过HTML表单提交数据至服务器端,并由服务器端处理这一过程。下面我们将逐一分析各个关键步骤。 #### 二、DispatcherServlet的初始化与配置 1. **DispatcherServlet的加载** 在`web.xml`中,定义了一个名为`springapp`的`servlet`,其类为`org.springframework.web.servlet.DispatcherServlet`。这意味着当Web容器启动时,`DispatcherServlet`会被自动初始化。这是通过`<load-on-startup>`元素设置为1实现的,表示该`servlet`将在Web应用程序启动时立即加载。 ```xml <servlet> <servlet-name>springapp</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>springapp</servlet-name> <url-pattern>*.htm</url-pattern> </servlet-mapping> ``` 2. **初始化日志** 当`DispatcherServlet`初始化时,会打印一系列日志信息,如下所示: ``` 2004-10-04 23:18:38,549 INFO [org.springframework.web.servlet.DispatcherServlet] - <Initializing servlet 'springapp'> 2004-10-04 23:18:38,699 INFO [org.springframework.web.servlet.DispatcherServlet] - <Framework servlet 'springapp' init> ``` 3. **配置文件加载** `DispatcherServlet`初始化后,首先会尝试加载位于`/WEB-INF/springapp-servlet.xml`的配置文件,以获取应用程序所需的Bean定义和其他配置信息。 ```xml <servlet> <servlet-name>springapp</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>springapp</servlet-name> <url-pattern>*.htm</url-pattern> </servlet-mapping> ``` 此时,日志记录如下: ``` 2004-10-04 23:18:38,839 INFO [org.springframework.beans.factory.xml.XmlBeanDefinitionReader] - <Loading XML bean definitions from resource [/WEB-INF/springapp-servlet.xml] of ServletContext> ``` #### 三、Bean的创建与配置 接下来,`DispatcherServlet`会基于`springapp-servlet.xml`文件中定义的Bean进行创建。 1. **SpringappController Bean的创建** 在`springapp-servlet.xml`文件中,定义了一个名为`springappController`的Bean,其实现类为`SpringappController`。 ```xml <beans> <bean id="springappController" class="SpringappController"/> <bean id="urlMapping" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping"> <property name="mappings"> <props> <prop key="/hello.htm">springappController</prop> </props> </property> </bean> </beans> ``` 初始化时的日志信息如下: ``` 2004-10-04 23:18:39,029 INFO [org.springframework.beans.factory.support.DefaultListableBeanFactory] - <Creating shared instance of singleton bean 'springappController'> 2004-10-04 23:18:39,029 INFO [SpringappController] - <日志:初始化SpringappController> ``` 2. **URL映射配置** 通过`SimpleUrlHandlerMapping` Bean定义了URL路径`/hello.htm`到控制器`springappController`的映射。 ``` 2004-10-04 23:18:39,130 INFO [org.springframework.web.servlet.handler.SimpleUrlHandlerMapping] - <Mapped URL path [/hello.htm] onto handler [SpringappController@908faf]> ``` #### 四、其他组件的初始化 除了上述主要组件外,`DispatcherServlet`还会初始化其他组件,如: - **MultipartResolver**:处理文件上传功能。 - **LocaleResolver**:解决国际化问题。 - **ThemeResolver**:解决主题相关的问题。 #### 五、总结 通过以上步骤,我们可以清楚地看到Spring MVC应用是如何从启动到完成所有初始化工作的。这个过程中涉及的关键点包括:`DispatcherServlet`的加载与配置、Bean的创建以及各种辅助组件的初始化等。这些步骤共同构成了Spring MVC框架的核心机制,也是理解和开发Spring MVC应用的基础。
剩余8页未读,继续阅读
- 粉丝: 0
- 资源: 1
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助