SpringMVC 簡單

weixin_30488085發表於2020-04-06

一、SpringMVC簡介

SpringMVC也叫Spring Web mvc,屬於表現層的框架。Spring MVC是Spring框架的一部分,是在Spring3.0後釋出的

二、Spring結構圖

 

三、SpringMVC架構圖

四、SpringMVC請求流程圖

 

五、SpringMVC請求流程文字描述:

request-------->DispatcherServler(中央排程器/前端控制器)-----> HandlerMapping(處理器對映器)------>返回一個執行鏈----->將執行鏈轉交給HandlerAdaptor(處理器介面卡)----->排程Handler(處理器)-----> ModelAndView----->先將結果交給HandlerAdaptor,然後再由HandlerAdaptor轉交給 DispatcherServler--------->DispatcherServler排程ViewResolver(檢視解析器)---->交給DispatcherServler-------> 尋找View---->View做出響應(response)


六、第一個入門案例:

 案例:使用者提交一個請求,伺服器端處理器在接收到這個請求後,給出一條歡迎資訊,在頁面中顯示。

步驟:

①在web.xml中配置前端控制器

②處理器對映器(HandlerMapping)

③處理器介面卡 (HandlerAdaptor)

④處理器

⑤檢視解析器(ViewResolver)

1、引入jar檔案

 


 2、註冊中央排程器[Web.xml]

 


 3、控制器

 


4、applicationContext.xml配置檔案。配置檢視解析器以及註冊處理器

 


 5、jsp頁面

 

實現效果:


七、關於urlpattern 

最好配成*.do

不能配成/* ===[無法訪問*.jsp等動態資源]

最好也不要配成/ === [無法訪問靜態資源]

不得不配成/

 如果url-pattern配成/*,則無法訪問動態資源,出現404. 如果配成/ ,則無法訪問靜態資源,圖片無法顯示。

不能配成/*緣由:

 DispatcherServlet會將向動態頁面請求,即向jsp頁面的跳轉請求也當做是一個普通的Controller請求。中央排程器會呼叫處理器對映器為其查詢相應的處理器。當然是找不到的。jsp頁面會報404錯誤

結論:/*會攔截動態資源

不能配成/:

 方案一:使用Tomcat預設的Servlet解決

 


方案二:使用MVC的default-servlet-handler

會將對靜態資源的訪問請求通過HandlerMapping對映到預設Servlet請求處理器DefaultServletRequestHandler物件。而該處理器呼叫了Tomcat的DefaultServlet來處理靜態資源的訪問請求。當然需要引入mvc約束

 

 


方式三:使用MVC的resource解決

在Spring3.0.4之後,Spring定義了專門用於處理靜態資源請求的處理器ResourceHttpRequestHandler。並且新增了<mvc:resources/>標籤,專門用於解決靜態資源無法訪問問題。

 Location:靜態資源所在目錄

mapping: 對資源的請求

注意:需要Tomcat7支援

效果圖:

 


 八、配置式開發--BeanNameUrlHandlerMapping 

<!-- 配置處理器對映器 -->
   <bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"></bean>
 配置式開發--SimpleUrlHandlerMapping 
<bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
  <property name="mappings">
  <props>
  <prop key="/hello.do">firstController</prop>
   <prop key="/sayhello.do">firstController</prop>
  </props>
  </property>
   
  </bean>
  
<bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
 <property name="urlMap">
  
 <map>
 <entry key="/hello.do">
 <value>firstController</value>
 </entry>
  
  <entry key="/sayhello.do">
 <value>firstController</value>
 </entry>
  
 </map>
  
 </property>
 </bean>
 

轉載於:https://www.cnblogs.com/ainiaiwo/p/6197903.html

相關文章