SpringMVC執行原理以及兩種建立方法

SpringMVC的執行原理
SpringMVC接收請求的過程.jpg
Spring的web框架圍繞着DispatcherServlet而設計。
經過DispatcherServlet將請求分到處處理映射器、處理適配器、視圖解析器。所以經過配置創建springMVC項目時,首先須要在web.xml中配置DispatcherServlet。創建springMVC項目的兩種方法。
第一種:配置版
1.在web.xml中配置DispatcherServlet以及初始化,而且經過<param-value>指定配置文件的路徑。css

<servlet>
        <!--註冊DispatcherServlet-->
        <servlet-name>springmvc</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <!--初始化DispatcherServlet-->
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>classpath:springmvc-servlet.xml</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <!--將須要DispatcherServlet處理的請求映射到對應的URL-->
    <servlet-mapping>
        <servlet-name>springmvc</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>

2.在springmvc-servlet.xml配置文件中配置處理映射器(HandlerMapping)、處理適配器(HandlerAdapter)、視圖解析器(ViewResolver)、 請求的URL對應的Controller。web

<bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"/>
    <bean class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter"/>
    <!--配置視圖解析-->
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <!--視圖的路徑的先後綴-->
        <property name="prefix" value="/WEB-INF/jsp/"/>
        <property name="suffix" value=".jsp"/>
    </bean>
    <bean id="/hello" class="com.freeze.controller.HelloAgainController"/>

第二種:利用註解
1.與第一種同樣,在web.xml中配置DispatcherServlet以及初始化,而且指定配置文件路徑。
2.在springmvc-servlet.xml配置文件中spring

<!--開啓自動掃描包,讓指定包下的註解生效,有IOC統一管理-->
    <context:component-scan base-package="com.freeze.controller"/>
    <!--讓springMVC不處理靜態文件,例如.jsp .css等-->
    <mvc:default-servlet-handler/>
    <!--
支持mvc註解驅動
在spring中通常採用@RequestMapping註解來完成映射關係,
要想使@RequestMapping註解生效,
必須向上下文中註冊DefaultAnnotationHandlerMapping
和一個AnnotationMethodHandlerAdapter實例
這兩個實例分別在類級別和方法級別處理。
而annotation-driven配置幫助咱們自動完成上述兩個實例的注入。
-->
    <mvc:annotation-driven/>
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix" value="/WEB-INF/jsp/"/>
        <property name="suffix" value=".jsp"/>
    </bean>
相關文章
相關標籤/搜索