Java之Spring mvc详解(非原创)
文章大綱
一、Spring mvc介紹
二、Spring mvc代碼實(shí)戰(zhàn)
三、項(xiàng)目源碼下載
四、參考文章
一、Spring mvc介紹
1. 什么是springmvc
??springmvc是spring框架的一個(gè)模塊,springmvc和spring無需通過中間整合層進(jìn)行整合。springmvc是一個(gè)基于mvc的web框架。
2. mvc設(shè)計(jì)模式在b/s系統(tǒng) 下的應(yīng)用
3. Spring mvc框架執(zhí)行流程
??第一步:發(fā)起請(qǐng)求到前端控制器(DispatcherServlet)
??第二步:前端控制器請(qǐng)求HandlerMapping查找 Handler,可以根據(jù)xml配置、注解進(jìn)行查找,通過@RequestMapping(value = "/test")中的test進(jìn)行查找
??第三步:處理器映射器HandlerMapping向前端控制器返回Handler
??第四步:前端控制器調(diào)用處理器適配器去執(zhí)行Handler
??第五步:處理器適配器去執(zhí)行Handler
??第六步:Handler執(zhí)行完成給適配器返回ModelAndView
??第七步:處理器適配器向前端控制器返回ModelAndView,ModelAndView是springmvc框架的一個(gè)底層對(duì)象,包括 Model和view
??第八步:前端控制器請(qǐng)求視圖解析器去進(jìn)行視圖解析,根據(jù)邏輯視圖名解析成真正的視圖(jsp)
??第九步:視圖解析器向前端控制器返回View
??第十步:前端控制器進(jìn)行視圖渲染,視圖渲染將模型數(shù)據(jù)(在ModelAndView對(duì)象中)填充到request域
??第十一步:前端控制器向用戶響應(yīng)結(jié)果
4. Spring mvc組件介紹
(1)前端控制器DispatcherServlet(不需要程序員開發(fā))
作用接收請(qǐng)求,響應(yīng)結(jié)果,相當(dāng)于轉(zhuǎn)發(fā)器,中央處理器。
有了DispatcherServlet減少了其它組件之間的耦合度。
(2)處理器映射器HandlerMapping(不需要程序員開發(fā))
作用:根據(jù)請(qǐng)求的url查找Handler
(3)處理器適配器HandlerAdapter
作用:按照特定規(guī)則(HandlerAdapter要求的規(guī)則)去執(zhí)行Handler
(4)處理器Handler(需要程序員開發(fā))
注意:編寫Handler時(shí)按照HandlerAdapter的要求去做,這樣適配器才可以去正確執(zhí)行Handler
(5)視圖解析器View resolver(不需要程序員開發(fā))
作用:進(jìn)行視圖解析,根據(jù)邏輯視圖名解析成真正的視圖(view)
(6)視圖View(需要程序員開發(fā)jsp)
View是一個(gè)接口,實(shí)現(xiàn)類支持不同的View類型(jsp、freemarker、pdf...)
二、Spring mvc代碼實(shí)戰(zhàn)
??Spring mvc常見使用功能有數(shù)據(jù)交互方式(ModelAndView和JSON)、靜態(tài)資源的解析、參數(shù)校驗(yàn)、全局異常處理、攔截器、上傳圖片等。
1. 創(chuàng)建maven的javaweb項(xiàng)目
文章重點(diǎn)在于講解Spring mvc功能,因此創(chuàng)建項(xiàng)目方式不進(jìn)行深入講解,創(chuàng)建后的項(xiàng)目目錄如下:
2. Spring mvc基本配置
2.1 在pom.xml添加maven依賴
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>springmvc_demo</groupId> <artifactId>springmvc_demo</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>war</packaging> <name/> <description/> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <!-- spring版本號(hào) --> <spring.version>4.2.5.RELEASE</spring.version> </properties> <dependencies> <dependency> <groupId>com.google.code.gson</groupId> <artifactId>gson</artifactId> <version>2.8.2</version> </dependency> <dependency> <groupId>org.apache.openejb</groupId> <artifactId>javaee-api</artifactId> <version>5.0-1</version> <scope>provided</scope> </dependency> <dependency> <groupId>javax.servlet</groupId> <artifactId>jstl</artifactId> <version>1.2</version> <scope>provided</scope> </dependency> <dependency> <groupId>javax.servlet.jsp</groupId> <artifactId>jsp-api</artifactId> <version>2.1</version> <scope>provided</scope> </dependency> <!-- 分頁 --> <dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper</artifactId> <version>4.1.4</version> </dependency> <!--測(cè)試包--> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> <scope>test</scope> </dependency> <!-- c3p0數(shù)據(jù)庫連接池 --> <dependency> <groupId>c3p0</groupId> <artifactId>c3p0</artifactId> <version>0.9.1.2</version> </dependency> <!-- commons工具包 --> <!--圖片上傳相關(guān)的--> <dependency> <groupId>commons-fileupload</groupId> <artifactId>commons-fileupload</artifactId> <version>1.3.1</version> </dependency> <dependency> <groupId>commons-io</groupId> <artifactId>commons-io</artifactId> <version>2.6</version> </dependency> <dependency> <groupId>commons-beanutils</groupId> <artifactId>commons-beanutils</artifactId> <version>1.7.0</version> </dependency> <dependency> <groupId>commons-codec</groupId> <artifactId>commons-codec</artifactId> <version>1.7</version> </dependency>
轉(zhuǎn)載于:https://www.cnblogs.com/WUXIAOCHANG/p/10765264.html
總結(jié)
以上是生活随笔為你收集整理的Java之Spring mvc详解(非原创)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 玻璃门多少钱一平方啊?
- 下一篇: IPv6地址分类及表示方法