Java中的Spring MVC簡介筆記

前言

感謝! 承蒙關照~

Java中的Spring MVC簡介筆記

MVC簡介

  1. Spring MVC 基本概念

  2. Spring MVC 項目搭建

maven

使用Spring MVC進行開發

實現數據綁定和文件上傳

MVC

mvc是開發web架構的通用方式.

Front Controller(MVC)前端控制器,Front controllerControllerView 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 點贊

這是一個有質量,有態度的公衆號

喜歡本文的朋友們

歡迎長按下圖關注訂閱號

收看更多精彩內容

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章