前言
感謝! 承蒙關照~
Java
中的Spring MVC
簡介筆記
MVC
簡介
Spring MVC
基本概念Spring MVC
專案搭建
maven
使用
Spring MVC
進行開發
實現資料繫結和檔案上傳
MVC
mvc
是開發web
架構的通用方式.
Front Controller(MVC)
前端控制器,Front controller
到Controller
到View template
,使用者頁面.
前端控制器
前端控制器用於分發排程,而控制器用於業務資料抽取,view template
用於頁面呈現.
MVC
的本質
mvc
的本質是將業務資料的抽取與業務邏輯的呈現想分離.(資料和呈現分離).
什麼是所謂的mvc
mvc
- Model-View-Controller
程式中的view
是檢視層,用於提供ui
,是用來呈現資料的.模型層是業務資料的資訊的表示.
模型層:
// 業務資訊的構成
public class Course {
private Integer courseId;
private String title;
private Integer learningNum;
private Integer level;
private String imgPath;
private List<Chapter> chapterList;
public Integer getCourseId(){
return courseId;
}
public void setCourseId(Integer courseId){
this.courseId = courseId;
}
public String getTitle(){
return title;
}
public void setTitle(String title){
this.title = title;
}
public Integer getLearningNum(){
return learningNum;
}
}
複製程式碼
檢視和模型- Controller
控制器,控制層,作用是將資料傳遞給檢視層,用於呈現.
mvc
是一種架構模式,用於呈現的分層,分工合作,模型層,檢視層,控制層.
spring mvc
概念:
DispatcherServlet
controller
- HandlerAdapter
表現形式
集合
DispatcherServlet
Controller
HandlerAdapter
HandlerInterceptor
HandlerMapping
HandlerExecutionChain
ModelAndView
ViewResolver
View
複製程式碼
DispatcherServlet
重點
View
Controller
DispatcherServlet
-> Request
-> HandlerMapping
-> Controller
-> HandlerInterceptor
-> Hander/HandlerAdapter
ModelAndView
-> DispatcherServlet
-> ViewResolver
-> View
-> Response
結構
DispatcherServlet
Common Services
->
Locale Resolution
Theme Resolution
Multipart(File Upload) Handing
複製程式碼
Controller
HandlerMapping
HandlerInterceptor
Handler
-Data Binding
-Validation, Type Conversion, Formatting
-Invoke Service Layer
-Update Model and State
HandlerExceptionResolver
複製程式碼
View
ViewResolver
View
複製程式碼
spring mvc
專案搭建-maven
// maven
pom(project object model) - an xml file(pom.xml)
// contains information
dependency management
coordinates
複製程式碼
座標Coordinates
groupId
artifactId
version
packaging
複製程式碼
maven
安裝
下載解壓maven
,配置環境變數,(M2_HOME,Path
),配置maven
配置檔案.
(M2_HOME,Path)
配置檔案:
%HOME%\.m2
複製程式碼
複製settings.xml
檔案到.m2
下
開啟.m2
下檔案settings.cml
檔案
配置:
<mirror>
<id>UK</id>
<name>UK Central</name>
<url>http://uk.maven.org/maven2</url>
<mirrorOf>central</mirrorOf>
</mirror>
複製程式碼
maven
建立專案
eclipse
-> eclipse kepler sr2 packages
eclipse
-> window
-> preferences
-> maven
-> Installations
-> add
-> 'maven-
apache-maven-x.x.x->
user settings`中確保路徑正確.
mvn archetype:generate -DgroupId=dashucoding-arthur -DartifactId=spring-mvc-study
-DarchetypeArtifactId=maven-archetype-webapp
複製程式碼
點選Enter鍵-都Enter鍵
專案
Import
-> maven
-> existion maven projects
-> spring-mvc-study
/pom.xml
spring-mvc-study
-> properties
-> java build path
-> spring-mvc-study/src/main/java(missing)
main
-> folder
-> java
-> pom.xml
packaging: jar
複製程式碼
點選pom.xml
@Controller
@RequestMapping("/hello")
public class HelloMvcController{
@RequestMapping("/mvc");
// host:8080/hello/mvc
public String helloMvc(){
return "home";
}
}
複製程式碼
mvn jetty:run
複製程式碼
spring mvc
操作
DispatcherServlet
WebApplicationContext
WebApplication
複製程式碼
controller
model
service
複製程式碼
@Controller
@RequestMapping("/courses")
public class CourseController {
private static Logger log = LoggerFactory.getLogger(CourseController.class);
private CourseService courseService;
}
複製程式碼
Controller
@Controller
@RequestMapping
URL template(@RequestParam and @PathVarialbe)
HttpServletRequest and / or HttpSession
複製程式碼
Binding
繫結
是將請求中的欄位按照名字匹配的原則填入模型物件.
CourseController.java
@RequestMapping(value="/admin", method=RequestMethod.GET, params="add")
public String createCourse(){
return "course_admin/edit";
}
複製程式碼
package com.model;
複製程式碼
FileUpload
單檔案上傳
檔案上傳:
<dependency>
<groupId> commons-fileupload </groupId>
<artifactId> commons-fileupload </artifactId>
<version>1.3.1</version>
</dependency>
複製程式碼
JSON
json是一種輕量級的格式
複製程式碼
ContentNegotiatingViewResolver
ResponseEntity
@ResponseBody/@ResquestBody
複製程式碼
知識點
@RequestMapping
@PathVariable
@Controller
redirect/forward
MultipartFile
@ModelAttribute
@ResquestBody
@RequestParam
@ResponseBody
enctype="multipart/form-data"
multipartResolver
ResponseEntity
複製程式碼
達叔小生:往後餘生,唯獨有你 You and me, we are family ! 90後帥氣小夥,良好的開發習慣;獨立思考的能力;主動並且善於溝通 簡書部落格: 達叔小生 www.jianshu.com/u/c785ece60…
結語
- 下面我將繼續對 其他知識 深入講解 ,有興趣可以繼續關注
- 小禮物走一走 or 點贊