前幾天照著教程似懂非懂地搭建起乙個簡單的springmvc例項,現在是時候做乙個入門學習,了解一下springmvc流程及工作細節。
springmvc是圍繞乙個dispatcherservlet 來設計的,這個servlet會把請求分發給各個controller,並支援可配置的處理器對映、檢視渲染、本地化、時區與主題渲染等,甚至還能支援檔案上傳,總結起來就是功能挺強,有不少優點:
dispatcher 其本質是乙個servlet,採用前端控制器設計模式。springmvc 中dispatcher處理請求的工作流如下:
既然是servlet,其主要工作就是配置bean、初始化物件等(web.xml, [name]-servlet.xml)
很多資料上都是先實現controller,畢竟框架中業務處理工作主要集中在此。可是本人總是喜歡按照使用者使用的業務流程來進行框架的使用,所以很奇葩的開發流程出現了(專案配置xml–>資料bean封裝–>前端頁面–>controller實現–>配置交付對映)
視**析器 viewresolver 負責處理檢視名與實際檢視之間的對映關係。檢視介面 view 負責準備請求,並將請求的渲染交給某種具體的檢視技術實現。
舉乙個簡單的例子
id="viewresolver"
class="org.springframework.web.servlet.view.urlbasedviewresolver">
name="viewclass"
value="org.springframework.web.servlet.view.jstlview"/>
name="prefix"
value="/web-inf/jsp/"/>
name="suffix"
value=".jsp"/>
bean>
檢視鏈
結合例子簡單了解一下:
id="jspviewresolver"
class="org.springframework.web.servlet.view.internalresourceviewresolver">
name="viewclass"
value="org.springframework.web.servlet.view.jstlview"/>
name="prefix"
value="/web-inf/jsp/"/>
name="suffix"
value=".jsp"/>
bean>
id="excelviewresolver"
class="org.springframework.web.servlet.view.xmlviewresolver">
name="order"
value="1"/>
name="location"
value="/web-inf/views.xml"/>
bean>
name="report"
class="org.springframework.example.reportexcelview"/>
beans>
控制器的實現內容比較多,會在以後的學習過程中單獨記錄,特別是基於註解的程式設計
圖中顯而易見
eg1:
頁面檔案 http://localhost:8080/theoriginals/views/register.jsp的頁面中引入資源
css檔案 http://localhost:8080/theoriginals/css/jquery.min
.js相對路徑 ../css/jquery.min
.jseg2:
http://localhost:8080/theoriginals/login,其中login是action,經過controller後解析到檢視/views/main.jsp但是uri沒有改變,故此時css檔案的相對路徑是css/main.css
SpringMvc入門學習(一)
我的第乙個springmvc 的helloworld 第一步,匯入spring mvc所需要的jar包 第二步 在專案工程下的web.xml裡配置dispatcherservlet 需要注意的是,若沒有顯示配置contextconfiglocation的初始值,spring則會自動到該預設的路徑下載...
SpringMvc 學習筆記 入門程式
入門程式 需求 商品訂單管理 功能需要 商品列表查詢 1 配置前端控制器 在web.xml中配置。2 配置處理器介面卡 通過檢視源 此介面卡能執行實現controller介面的handler 3 開發handler 需要實現controller介面,才能由org.springframework.we...
Spring MVC入門基礎
1.spring mvc基本流程 從url接受請求及資料 dispacherservlet 根據請求呼叫具體的controller controller 呼叫service方法處理資料 通過dao訪問 db 增刪改查 db 返回操作結果集 service 處理返回結果 controller 返回具體...