天天看點

javaSSM架構—springMVC實作過程springMVC實作過程相關英語單詞:

springMVC

概述

SpringMVC是一個WEB層、控制層架構,主要用來負責與用戶端互動,業務邏輯的調用。

SpringMVC是Spring家族的一大元件.Spring整合SpringMVC可以做到無縫內建.

特點 簡單易用性能佳。

為了麼有了Servlet還要學SpringMVC

1.Servlet的開發配置相對麻煩,servlet特别多的時候web.xml檔案将會非常臃腫

2.每個Servlet都隻能處理一個功能,如果需要多個功能就需要開發多個Servlet,項目中存在大量Servlet顯得臃腫。

3.擷取請求參數 進行類型轉換 封裝資料到bean的 過程比較繁瑣。

4.其他開發中不友善的地方,例如,亂碼問題…資料格式處理…表單校驗…

架構組成

流程組成

前端控制器:本質上是一個servlet,相當于一個中轉站,所有的servlet都會走到這個中轉站中,再根據配置進行中轉到相應的Handler中進行處理,擷取到資料和視圖後,在使用相應視圖做出響應。 Handler處理器

處理器映射器:本質上就是一段映射關系,将通路路徑和對應的Handler存儲為映射關系,在需要時供前端控制器查閱。

處理器擴充卡:本質上是一個擴充卡,可以根據要求找到對應的Handler來運作。前端控制器通過處理器映射器找到對應的Handler資訊之後,将請求響應和對應的Handler資訊交由處理器擴充卡處理,處理器擴充卡找到真正handler執行後,将結果即model和view傳回給前端控制器。

視圖解析器:本質上也是一種映射關系,可以将視圖名稱映射到真正的視圖位址。前端控制器調用處理器适配完成後得到model和view,将view資訊傳給視圖解析器得到真正的view。

視圖:本質上就是将handler處理器中傳回的model資料嵌入到視圖解析器解析後得到的jsp頁面中,向用戶端做出響應。

執行流程

javaSSM架構—springMVC實作過程springMVC實作過程相關英語單詞:

實作過程

配置檔案方式實作過程

第一步:配置前端控制器

前端控制器,本質上是一個servlet,在目前web項目中配置servlet。

<servlet>
    <servlet-name>springmvc</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>classpath:springmvc.xml</param-value>
</init-param>
</servlet>

<servlet-mapping>
    <servlet-name>springmvc</servlet-name>
    <url-pattern>*.action</url-pattern>
</servlet-mapping>
           

第二步:生成SpringMVC的核心配置檔案

SpringMVC預設會自動在web應用的WEB-INF目錄下去尋找[前端控制器ServletName]-servlet.xml作為目前SpringMVC的核心配置檔案。

建立這個檔案,這個檔案本身其實就是Spring的配置檔案,是以導入Spring相關的限制資訊,包括 beans、context、mvc

注:若配置檔案中方法,則可調整核心配置檔案位置及名稱

javaSSM架構—springMVC實作過程springMVC實作過程相關英語單詞:

第三步:建立處理器,編寫代碼

想要開發一個處理器,寫一個類實作Controller接口,在其中的handlerRequest中編寫代碼處理請求,并将處理好的資料和目标視圖封裝到ModelAndView中傳回。

public class springmvctest01 implements Controller {

public class springmvctest01 implements Controller {
    @Override
    public ModelAndView handleRequest(HttpServletRequest httpServletRequest,
                                      HttpServletResponse httpServletResponse) throws Exception {
        //1.創阿ModulAndView對象
        ModelAndView mav1 = new ModelAndView();
        //2.封裝資料
        mav1.addObject("k1","v1");
        mav1.addObject("k2","v2");
        //3.封裝視圖
        mav1.setViewName("first");
        //4.傳回ModulAndView
        return mav1;
    }
}
           

第四步:配置處理器映射器中路徑和處理器的映射關系

<!--配置處理器映射器-->
    <bean name="/first.action" class="cn.tedu.web.springmvctest01">
    </bean>
           

第五步:配置視圖解析器

視圖解析器,能夠映射到真正要通路的網頁,prefix為字首、suffix為字尾,前字尾拼接到解析的路徑,既為最後要通路的路徑。

<!--配置視圖解析器-->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    <property name="prefix" value="/WEB-INF/jsp/"></property>
    <property name="suffix" value=".jsp"></property>
</bean>
           

開發視圖頁面

javaSSM架構—springMVC實作過程springMVC實作過程相關英語單詞:

釋出應用,通過浏覽器通路最後檢視結果

javaSSM架構—springMVC實作過程springMVC實作過程相關英語單詞:

注解方式實作過程

javaSSM架構—springMVC實作過程springMVC實作過程相關英語單詞:

第一步:配置前端控制器,與配置檔案方式相同

第二部:生成SpringMVC的核心配置檔案,與配置檔案方式相同

第三部:添加springMVC配置檔案 中添加mvc注解方式

<!--SpringMVC注解方式配置-->
<mvc:annotation-driven></mvc:annotation-driven>
           

第四步:配置視圖解析器,與配置檔案方式相同

第五步:使用@RequestMapping開發Handler

@Controller
public class MyController {
    @RequestMapping("/test01.action")
    public String test01(Model model){
        System.out.println("test01..");
        model.addAttribute("k1","v1");
        model.addAttribute("k2","v2");
        model.addAttribute("k3","v3");
        return "test01";
    }
}
           

SpringMVC注解方式工作原理

1.當伺服器啟動時,先會加載web.xml,之後通過引入核心配置檔案加載springmvc-servlet.xml.就會解析該xml配置檔案.

2.當解析到包掃描時,掃描指定的包并将含有@Controller注解的類解析為處理器

3.如果配置過mvc:annotation-driven/ 就會解析Spring-MVC注解

4.解析@RequestMapping(value="/hello.action"),将指定的位址和目前方法的映射關系進行儲存

當使用者送出請求通路一個位址時,SpringMVC尋找該位址映射關系,如果存在,則找到響應處理器相應方法執行,如果找不到,則報404。

相關英語單詞:

Handler處理器

servlet标簽

DispatcherServlet 前端控制器

Internal 内部的

Resource 資源

View 視圖

Resolver 分解器

prefix 字首

suffix 字尾

property 屬性