最近对spring兴趣高涨,刚好,一个SSI框架的项目落地,空闲一段时间,索性看看spring mvc.
Spring mvc请求调用模型
一。spring mvc 的配置起点 - web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.0"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_3.1.xsd">
<display-name></display-name>
<welcome-file-list>
<welcome-file>login.jsp</welcome-file>
</welcome-file-list>
<!-- Spring ApplicationContext配置文件的路径,可使用通配符,多个路径用","号分隔 -->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:applicationContext.xml</param-value>
</context-param>
<!--Spring ApplicationContext 载入 -->
<context-param>
<param-name>webAppRootKey</param-name>
<param-value>spring_mvc_xml.root</param-value>
</context-param>
<!-- 开一条watchdog线程每3秒扫描一下配置文件的变化; -->
<context-param>
<param-name>log4jRefreshInterval</param-name>
<param-value>3000</param-value>
</context-param>
<context-param>
<param-name>log4jConfigLocation</param-name>
<param-value>/WEB-INF/classes/log4j.properties</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
</listener>
<servlet>
<servlet-name>webUrl</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:/com/wsg/conf/web/webUrl-servlet.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<!-- 拦截所有以do结尾的请求 -->
<servlet-mapping>
<servlet-name>webUrl</servlet-name>
<url-pattern>*.htm</url-pattern>
</servlet-mapping>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
</web-app>
作为项目初始化的第一步,在springMVC架构中最主要的两点:
1.ContextLoaderListener
该监听器主要负责整个项目根上下文的初始化,并保存至ServletContext,建立整个项目的ioc体系。
其中的初始化流程如下图:
2.DispatcherServlet
该servlet配置主要负责spring mvc里的子上下文的初始化。
包括相应的MVC bean对象:
国际化支持:LocalResolver
request映射:HandlerMappings
返回视图的生成:Viewresolver
等 。。。。。。。
初始化流程如图:
分享到:
相关推荐
在Spring MVC和Spring框架的整合应用中,常常会遇到两套上下文的问题。Spring MVC是Spring框架的一个模块,主要用于处理Web请求,而Spring则提供了一个更广泛的IoC(Inversion of Control,控制反转)和AOP(Aspect ...
- **初始化**:读取配置文件并初始化 Spring 容器。 - **请求处理**:处理所有进入系统的 HTTP 请求。 - **响应生成**:根据处理结果生成最终的 HTTP 响应。 #### 五、Spring MVC 双亲上下文说明 在 Spring MVC 中...
- 接着调用 `FrameworkServlet` 的 `initServletBean()` 方法进行 Web 上下文初始化。 - 最后,`DispatcherServlet` 的 `onRefresh()` 方法被调用来初始化相关的策略组件,例如 HandlerMapping、HandlerAdapter 等...
5. **创建配置文件**:在 `src/main/webapp/WEB-INF` 目录下,创建 `servlet-context.xml`,这是 Spring MVC 的应用上下文配置文件。在这里,你会定义视图解析器、模型-视图对、处理器映射器等。例如,配置一个 ...
2. **spring-context-4.1.5.RELEASE.jar**:Spring上下文模块,提供了与应用程序环境相关的服务,如国际化、事件传播、资源访问以及bean的生命周期管理。它扩展了核心容器(由spring-core和spring-beans组成),增加...
- **高性能**:Netty基于NIO,能更好地处理大量并发连接,减少了线程上下文切换的开销。 - **异步处理**:Netty的事件驱动模型使得处理请求和响应可以异步进行,提高了吞吐量。 - **灵活性**:Netty允许自定义...
3. **Spring MVC入门**:理解DispatcherServlet的作用,配置Spring MVC的上下文和组件扫描,以及配置视图解析器。 4. **Model-View-Controller**:了解MVC模式的工作原理,如何创建模型、控制器和视图。 5. **请求...
2. **portlet上下文**:与Servlet上下文类似,portlet上下文提供了portlet特有的配置和资源。 3. **portlet间通信**:通过PortletSession和PortletPreferences,portlet可以共享数据或设置用户偏好。 4. **portlet...
Spring MVC 是一个强大的Java web应用程序开发框架,它简化了基于模型-视图-控制器(MVC)架构的应用程序构建过程。在使用Spring MVC时,有若干关键点需要注意,以确保高效、稳定和易于维护的代码。 1. **配置**: ...
在项目初始化阶段,我们需要设置Spring MVC的配置文件,配置DispatcherServlet、视图解析器以及Spring的上下文加载。同时,我们需要引入Activiti的相关依赖,如activiti-engine、activiti-spring等,以确保能够正确...
2. `<listener>`:配置了 `ContextLoaderListener` 监听器,该监听器会在应用启动时加载 `contextConfigLocation` 指定的配置文件,初始化 Spring 的根应用上下文。 3. `<servlet>`:定义了一个名为 `spring` 的 ...
4. **配置Spring MVC上下文**:在Spring的配置文件(如`servlet-context.xml`)中,我们需要配置视图解析器和其他可能的bean。 5. **运行应用**:部署应用到服务器,访问`http://localhost:8080/yourapp/hello`,你...
- 创建应用上下文配置文件 applicationContext.xml,用于初始化 Spring 容器。 **2. 创建登录页面 (Login.jsp)** - 使用 HTML 表单收集用户的输入信息(用户名和密码)。 - 设置表单的 action 属性指向“login....
- 配置Web.xml文件,设置DispatcherServlet的初始化参数和监听器,以便加载Spring上下文。 - 编写Controller,处理HTTP请求,并调用Service完成业务逻辑。 5. **项目源码分析**:在压缩包中的项目源码,我们可以...
1. 应用上下文(ApplicationContext)启动时,初始化`MessageSource`。`AbstractApplicationContext`在启动时调用`initMessageSource`方法,这会创建并配置`ResourceBundleMessageSource`实例。 2. 当收到请求时,...
总之,这个压缩包为Spring MVC开发提供了一站式的解决方案,包括必备的库和源代码,简化了项目初始化阶段的工作。开发者只需要根据具体需求进行适当的配置和编码,即可快速搭建起一个功能完善的Spring MVC应用。
通常使用Mockito和Spring Test来模拟依赖和运行应用上下文。 10. **部署和运行**:最后,了解如何配置Web服务器(如Tomcat)或应用服务器(如Jetty)以运行这个整合的Spring MVC应用,以及如何连接到MongoDB服务。 ...
- `web.xml`: 配置DispatcherServlet,初始化Spring MVC的上下文。 - `applicationContext.xml`: 定义Spring的bean,包括服务、DAO、数据源等。 - `spring-mvc.xml`: 配置Spring MVC的相关设置,如视图解析器、...
在这个案例实践中,你将会看到如何配置这三个框架,从初始化Spring上下文,到设置Spring MVC的DispatcherServlet,再到配置Hibernate的数据源和实体映射。你将学习到如何在Spring中声明和使用Service层,这些Service...
1. **配置DispatcherServlet**:在 web.xml 文件中配置 DispatcherServlet,指定初始化参数以加载 Spring 配置文件。 2. **定义控制器**:控制器类需要使用 `@Controller` 注解标记,方法上可以使用 `@...