SpringMVC初步理解

  1. 上张图
    在这里插入图片描述
    DispatcherServlet是SpringMVC的核心控制类,wiliam-me写到:SpringMVC的整个运行体系,是由DispatcherServlet、组件和容器三者共同构成的。在这个运行体系中,DispatcherServlet是逻辑处理的调度中心,组件则是被调度的操作对象。而容器在这里所起到的作用,是协助DispatcherServlet更好地对组件进行管理。三者的关系如下:
    DispatcherServlet - 容器 —— DispatcherServlet对容器进行初始化
    容器 - 组件 —— 容器对组件进行全局管理
    DispatcherServlet - 组件 —— DispatcherServlet对组件进行逻辑调用

    在这里插入图片描述
  2. 使用SpringMVC时,先要在web.xml里配置DipatcherServlet,它本质是servlet(jar包里已经写好了的),跟普通的servlet一样配置,可以用load-on-startup指定其何时初始化,区别在于,servlet-mapping时,指定的url-pattern,为*.do,由于它匹配所有的servlet文件,因此相当于访问servlet文件时都先被它拦截了,它拦截这些请求做什么?它首先会初始化容器,默认是根据WEB-INFO目录下的DipatcherServletName-servlet.xml初始化的,也可以通过在配置Dispatcher时指定init-param自定义位置。如下为基本配置内容:
    web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4" 
	xmlns="http://java.sun.com/xml/ns/j2ee" 
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
	xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee 
	http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
  
  <!-- 中央控制器 -->
  <!-- 配控制器时,一定要导入commons-logging包,否则tomcat启动时出现Failed to start component --><!--
  <servlet>
  	<servlet-name>springMVC</servlet-name>
  	<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
  	<load-on-startup>0</load-on-startup> 服务器启动时初始化该实例 
  </servlet> 
  <servlet-mapping>
  	<servlet-name>springMVC</servlet-name>
  	<url-pattern>*.do</url-pattern>
  </servlet-mapping>
--> 
  <!-- 自定义位置 -->
  <servlet>
  	<servlet-name>springMVC</servlet-name>
  	<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
  	<init-param>
  		<param-name>contextConfigLocation</param-name>
  		<param-value>/WEB-INF/custom.xml</param-value>
  	</init-param>
  </servlet>
  <servlet-mapping>
  	<servlet-name>springMVC</servlet-name>
  	<url-pattern>*.do</url-pattern>
  </servlet-mapping>
</web-app>

springMVC-servlet.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.2.xsd">

<!-- 映射 -->
<bean name="/hello.do" class="com.controller.HelloController"></bean>
<bean name="/hello2.do" class="com.controller.HelloController2"></bean>


</beans>

其次,它会调度相应的组件进行处理,经过多个组件后,最终响应到用户视图。

猜你喜欢

转载自blog.csdn.net/yicha_i/article/details/82755266
今日推荐