java元婴期(27)----java进阶(springmvc(1)---springmvc框架入门程序(上)(不基于注解开发))
springmvc框架
什么是springmvc
springmvc是spring框架的一個模塊,springmvc和spring無需通過中間整合層進行整合。(struts2與Spring整合的時候需要借助單獨的jar包)
springmvc是一個基于mvc的web框架。
mvc在b/s系統 下的應用
mvc是一個設計模式,mvc在b/s系統 下的應用:
springmvc框架
- 第一步:發起請求到前端控制器(DispatcherServlet)
- 第二步:前端控制器請求HandlerMapping查找 Handler,?可以根據xml配置、注解進行查找
- 第三步:處理器映射器HandlerMapping向前端控制器返回Handler
- 第四步:前端控制器調用處理器適配器去執行Handler
- 第五步:處理器適配器去執行Handler
- 第六步:Handler執行完成給適配器返回ModelAndView
- 第七步:處理器適配器向前端控制器返回ModelAndView,ModelAndView是springmvc框架的一個底層對象,包括 Model和view
- 第八步:前端控制器請求視圖解析器去進行視圖解析,根據邏輯視圖名解析成真正的視圖(jsp)
- 第九步:視圖解析器向前端控制器返回View
- 第十步:前端控制器進行視圖渲染,視圖渲染將模型數據(在ModelAndView對象中)填充到request域
- 第十一步:前端控制器向用戶響應結果
組件:
1、前端控制器DispatcherServlet(不需要程序員開發)
作用接收請求,響應結果,相當于轉發器,中央處理器。
有了DispatcherServlet減少了其它組件之間的耦合度。
2、處理器映射器HandlerMapping(不需要程序員開發)
作用:根據請求的url查找Handler
3、處理器適配器HandlerAdapter
作用:按照特定規則(HandlerAdapter要求的規則)去執行Handler
4、處理器Handler(需要程序員開發)
注意:編寫Handler時按照HandlerAdapter的要求去做,這樣適配器才可以去正確執行Handler
5、視圖解析器View resolver(不需要程序員開發)
作用:進行視圖解析,根據邏輯視圖名解析成真正的視圖(view)
6、視圖View(需要程序員開發jsp)
View是一個接口,實現類支持不同的View類型(jsp、freemarker、pdf...)
入門程序
需求
以案例作為驅動。
springmvc和mybaits使用一個案例(商品訂單管理)。
功能需求:商品列表查詢
環境準備
數據庫環境:mysql5.1
java環境:
- jdk1.7.0_72
- eclipse indigo
- springmvc版本:spring3.2
- 需要spring3.2所有jar(一定包括spring-webmvc-3.2.0.RELEASE.jar)
配置前端控制器
在web.xml中配置前端控制器。
配置處理器適配器
在classpath下的springmvc.xml中配置處理器適配器
通過查看原代碼:???????
此適配器能執行實現 Controller接口的Handler。
開發Handler
需要實現 controller接口,才能由org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter適配器執行。
public class ItemsController1 implements Controller {@Overridepublic ModelAndView handleRequest(HttpServletRequest request,HttpServletResponse response) throws Exception {//調用service查找 數據庫,查詢商品列表,這里使用靜態數據模擬List<Items> itemsList = new ArrayList<Items>();//向list中填充靜態數據Items items_1 = new Items();items_1.setName("聯想筆記本");items_1.setPrice(6000f);items_1.setDetail("ThinkPad T430 聯想筆記本電腦!");Items items_2 = new Items();items_2.setName("蘋果手機");items_2.setPrice(5000f);items_2.setDetail("iphone6蘋果手機!");itemsList.add(items_1);itemsList.add(items_2);//返回ModelAndViewModelAndView modelAndView = new ModelAndView();//相當 于request的setAttribut,在jsp頁面中通過itemsList取數據modelAndView.addObject("itemsList", itemsList);//指定視圖modelAndView.setViewName("/WEB-INF/jsp/items/itemsList.jsp");return modelAndView;}}視圖編寫
配置Handler
將編寫Handler在spring容器加載。
配置處理器映射器
在classpath下的springmvc.xml中配置處理器映射器???????
配置視圖解析器
需要配置解析jsp的視圖解析器。
部署調試
訪問地址:http://localhost:8080/springmvcfirst1208/queryItems.action
處理器映射器根據url找不到Handler,報下邊的錯誤。說明url錯誤。
處理器映射器根據url找到了Handler,轉發的jsp頁面找到,報下邊的錯誤,說明jsp頁面地址錯誤了。
?
總結
以上是生活随笔為你收集整理的java元婴期(27)----java进阶(springmvc(1)---springmvc框架入门程序(上)(不基于注解开发))的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java元婴期(26)----java进
- 下一篇: java元婴期(28)----java进