1. 程式人生 > >Spring MVC 筆記

Spring MVC 筆記

pos ipa framwork 代理模式 攔截 掃描 ffi post val

監聽器 》過濾器 》 DispatcherSevlet 》

【前端控制器】負責分發調度 === Spring Web Mvc 裏面的 DispatcherServlet

【控制器】業務數據抽取,傳遞 Model 。

【視圖解析器】頁面呈現

【模型】 model modelAndView Map

DispatcherServlet 怎麽發現 @Controller ?

原理是 適配器模式,使用 HandlerAdapter。

HandlerIntercepter 攔截器 (貌似是代理模式)

HandlerMapping 這樣Dispatcher就能根據 @RequestMapping 使用正確的 Controller

HandlerExecutionChain pre controller的方法 post*

【web.xml配置 DispatcherServlet 啟動順序】

【dispatcher-servlet.xml 配置】

<web-app>
    <servlet>
        <servlet-name>mvc-dispatcher</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class
> <!-- 默認為/WEB-INF/$servlet-name$-servlet.xml--> <init-param> <param-name>contextConfigLocation</param-name> <param-value>/WEB-INF/configs/spring/mvc-dispatcher-servlet.xml</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>mvc-dispatcher</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping> </web-app>
<beans>
    <context:annotation-config />

    <!--  配置只掃描 @Controller  -->
    <context:component-scan base-package="com.imooc">
        <context:include-filter type="annotation" expression="org.springframework.stereotype.Controller" />
    </context:component-scan>
<!-- 打開mvc的註解 數據綁定、 --> <mvc:annotation-driven />

<!-- 靜態資源處理 -->
<mvc:resources mapping="/resources/**" location="/resources/" />
<bean class="org.springframwork.web.servlet.view.InternalResourceViewResolver"> <property name="viewClass" value="org.springframework.web.servlet.view.JstlView" /> <property name="prefix" value="/WEB-INF/view/jsps/" /> <property name="suffix" value="*.jsp"/> </bean> </beans>

spring容器 applicationContext.xml

<beans>
    <context:annotation-config />
    
    <context:component-scan base-package="com.imooc">
        <context:exclude-fliter type="annotation" expression="org.springframework.stereotype.Controller" />
    </context:component-scan>
</beans>

=======================    Controller  ============================

數據綁定 @RequestParam @PathVariable @ModelAndAttribute

文件上傳 MultipartFile

Spring MVC 筆記