1. 程式人生 > 其它 >cocos2dx3.17.2使用spine 3.6.39匯出的檔案時,裁剪功能(遮罩,clipping)在程式裡不好用問題

cocos2dx3.17.2使用spine 3.6.39匯出的檔案時,裁剪功能(遮罩,clipping)在程式裡不好用問題

一、SprigMvc簡介

    MVC是一種軟體架構的思想,將軟體按照模型、檢視、控制器來劃分

M:Model,模型層,指工程中的JavaBean,作用是處理資料JavaBean分為兩類:

  •  一類稱為實體類Bean:專門儲存業務資料的
  • 一類稱為業務處理Bean:指Service或Dao物件,專門用於處理業務邏輯和資料訪問。

V:View,檢視層,指工程中的html或jsp等頁面,作用是與使用者進行互動,展示資料

C: Controller ,控制層,指工程中的servlet,作用是接收請求和響應瀏覽器

MVC的工作流程

      使用者通過檢視層傳送請求到伺服器,在伺服器中請求被 Controller 接收, Controller 呼叫相應的Model層處理請求,處理完畢將結果返回到 Controller ,

Controller 再根據請求處理的結果找到相應的View檢視,渲染資料後最終響應給瀏覽器。

二、什麼是SpringMVC

    SpringMVC是Spring為表述層提供的一整套解決方案。表述層為:前臺頁面和後臺Servlet

三層架構:表述層、業務邏輯層、資料訪問層

三、SpringMVC的特點

    基於原生的Servlet,通過功能強大的前端控制器DispatcherServlet,對請求和響應進行統一處理。

即SpringMVC的本質就是一個Servlet,SpringMVC對原生Servlet進行了封裝,封裝後有一個功能強大的前端控制器。 原來瀏覽器傳送的請求需要自己寫Servlet進行處理,SpringMVC之後前端瀏覽器傳送的請求就由DispatcherServlet進行統一處理,他會對很多過程進行封裝,比如說獲取請求引數的時候,或者說往域物件中放值得時候,轉發或者重定向的時候。之前Servlet需要request物件通過getParmeter()方法進行獲取引數,而在SpringMVC中不再需要Request物件,因為獲取請求引數的過程已經在前端控制器中做過了,也就說已經封裝到了前端控制器中了

四、配置web.xml

註冊SpringMVC的前端控制器 DispatcherServlet

a>預設配置方式

此配置作用下,SpringMVC的配置檔案預設位於WEB-INF下,預設名稱為<servlet-name>-servlet. xml,例如,以下配置所對應SpringMVC的配置檔案位於WEB-INF下,

檔名為 springMVC-servlet.xml

springMVC-servlet. xml
<I--配置SpringMVC的前端控制器,對瀏覽器傳送的請求統一進行處理——>
<servlet>
    <servlet-name>springMVC</servlet-name>
    <serviet-class>org.springframework.web.servlet.DispatcherServlet </servalent-class>
</servlet>
<servlet-mapping>
    <servlet-name>springMVC</servlet-name>
        設定springMVC的核心控制器所能處理的請求的請求路徑
        /所匹配的請求可以是/login或.html或.js或.css方式的請求路徑但是/不能匹配.jsp請求路徑的請求
    <url-pattern>/</url-pattern>
</servlet-mapping>

/  不能匹配.jsp請求路徑的原因:因為jsp本身就是一個servlet,他是有特定的servlet進行處理,而不是前端控制器進行處理,如果寫了.jsp,那麼會出現問題:.jsp型別的請求也會被當前

的SpringMVC進行處理,而SpringMVC會把此請求當做一個普通的請求進行處理,而不會去找到那個jsp頁面,所以專案啟動時,找不到jsp頁面

/* 也是代表了所有請求,包括.jsp請求, 而 / 則會排除.jsp請求


b>擴充套件配置方式

     由於SpringMVC的第一種預設配置方式,導致SpringMVC的配置檔案路徑只能位於WEB-INF下,因為WEB-INF下大多數放頁面類的檔案,所以需要自定義SpringMVC的配置檔案及名稱。配置SpringMVC的配置檔案和名稱需要在Web.xml中的<servlet>標籤中新增一個標籤

可通過int-param標籤設定SpringMVC配置檔案的位置和名稱,通過load-on-startup標籤設定SpringMVC前端控制器 DIspatcherServlet 的初始化時間

web.xml檔案中配置分發器和亂碼過濾器

1、請求分發器(即DispatcherServlet)

<servlet>
    <servlet-name>javawebjsp</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <!-- 此標籤可動態指定springMVC的配置檔案的名稱及路徑-->
    <init-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>classpath:springmvc-servlet.xml</param-value>  
        <!--classpath指的是src/main/resources路徑,springmvc的配置檔案springmvc-servlet.xml就放在此路徑下 -->
    </init-param>
    <!--將springMVC的前端控制器dispatcherservlet初始化時間調整到伺服器啟動時,就不會影響到第一次訪問的時間-->
    <load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
     <servlet-name>javawebjsp</servlet-name>
     <url-pattern>/</url-pattern>
</servlet-mapping>

<!--備註:

/:處理所有請求,但不包含.jsp

/*:處理所有請求,包含.jsp -->

 2、亂碼過濾器

<filter>
    <filter-name>encoding</filter-name>
    <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
</filter>
<filter-mapping>
    <filter-name>encoding</filter-name>
    <url-pattern>/</url-pattern> 
</filter-mapping>
<!--備註:
/:處理所有請求,但不包含.jsp

/*:處理所有請求,包含.jsp -->

 解讀為什麼要配置web.xml ?

        因為當前瀏覽器傳送的請求統一交給前端控制器dispathcerservlet來進行處理,而前端控制器是一個servlet,我們要想通過前端控制器處理請求, 我們就必須要在web.xml中進行註冊,在註冊時,可以使用int-param標籤來動態指定springMVC的配置檔案路徑和名稱,前端控制器處理的請求通過 / 來標識,代表可以處理非.jsp的所有請求。

五、配置SpringMVC配置檔案springmvc.xml

3、使用spring控制前端servlet,許配置如下3個點
(1)、對controller類進行註解,使用元件掃描方式
<context:component-scan base-package="com.xx.xx"/>
(2)前端請求url後,通過轉發器後,去找請求控制器和請求介面卡,找對應的url,配置如下
<mvc:annotation-driven/>  <!--註解驅動-->
<mvc:default-servlet-handler/>  <!--靜態資源處理器-->
(3)、配置檢視解析器
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    <property name="prefix" value="/WEB-INF/template/"/>
    <property name="suffix" value=".html"/>
    <!--即專案src/main/webapp/WEB-INF/資料夾/所有的以後綴名為.html中所有的檔案-->
</bean>

六、測試 

3、controller類中的方法,返回型別若是String,則預設是返回的檢視解析器的路徑
@RequestMapping(value="/h1")
public String hello(){
    return "hello";  //因為在springmvc.xml中已經配置了檢視解析器,所以直接返回hello,就行找到hello.html頁面
}
//該請求返回的就是src/main/webapp/WEB-INF/template/hello.html;

 七、總結

瀏覽晶傳送請求,若請求地址符合前端控制器的url-pattern,該請求就會被前端控制器DispatcherServlet處理。
前端控制器會讀取SpringMVC的核心配置檔案,通過掃描元件找到控制器,將請求地址和控制器中
@RequestMapping註解的value屬性值進行匹配,若匹配成功,該註解所標識的控制器方法就是處理請求的方
法。處理請求的方法需要返回一個字串型別的檢視名稱,該檢視名稱會被檢視解析器解析,加上字首和字尾組成
檢視的路徑,通過Thymeleaf對檢視進行渲染,最終轉發到檢視所對應頁面。