前言 感謝! 承蒙關照~ 中的 簡介筆記 簡介 1. 基本概念 2. 項目搭建 使用 進行開發 實現數據綁定和文件上傳 是開發 架構的通用方式. 前端控制器, 到`Controller View template`,用戶頁面. 前端控制器 前端控制器用於分發調度,而控制器用於業務數據抽取, 用於頁面 ...
前言
感謝! 承蒙關照~
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
點擊回車鍵-都回車鍵
項目
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後帥氣小伙,良好的開發習慣;獨立思考的能力;主動並且善於溝通
簡書博客: 達叔小生
https://www.jianshu.com/u/c785ece603d1
結語
- 下麵我將繼續對 其他知識 深入講解 ,有興趣可以繼續關註
- 小禮物走一走 or 點贊