转载

第63节:Java中的Spring 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

第63节:Java中的Spring MVC简介笔记

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
复制代码
第63节:Java中的Spring MVC简介笔记

坐标 Coordinates

groupId
artifactId
version
packaging
复制代码

maven 安装

下载解压 maven ,配置环境变量,( M2_HOME,Path ),配置 maven 配置文件.

(M2_HOME,Path)

第63节:Java中的Spring MVC简介笔记
第63节:Java中的Spring MVC简介笔记
第63节:Java中的Spring MVC简介笔记
第63节:Java中的Spring MVC简介笔记
第63节:Java中的Spring MVC简介笔记
第63节:Java中的Spring MVC简介笔记
第63节:Java中的Spring MVC简介笔记
第63节:Java中的Spring MVC简介笔记

配置文件:

第63节:Java中的Spring MVC简介笔记
%HOME%/.m2
复制代码

复制 settings.xml 文件到 .m2

第63节:Java中的Spring MVC简介笔记

打开 .m2 下文件 settings.cml 文件

第63节:Java中的Spring MVC简介笔记

配置:

第63节:Java中的Spring MVC简介笔记
<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

第63节:Java中的Spring MVC简介笔记

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
复制代码
第63节:Java中的Spring MVC简介笔记

点击回车键-都回车键

第63节:Java中的Spring MVC简介笔记

项目

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

第63节:Java中的Spring MVC简介笔记
第63节:Java中的Spring MVC简介笔记
第63节:Java中的Spring MVC简介笔记
第63节:Java中的Spring MVC简介笔记
第63节:Java中的Spring MVC简介笔记
第63节:Java中的Spring MVC简介笔记
@Controller
@RequestMapping("/hello")
public class HelloMvcController{
 @RequestMapping("/mvc");
 // host:8080/hello/mvc
 public String helloMvc(){
  return "home";
 }
}
复制代码
第63节:Java中的Spring MVC简介笔记
mvn jetty:run
复制代码

spring mvc 操作

DispatcherServlet
WebApplicationContext
WebApplication
复制代码
第63节:Java中的Spring MVC简介笔记
controller
model
service
复制代码
@Controller
@RequestMapping("/courses")
public class CourseController {
 private static Logger log = LoggerFactory.getLogger(CourseController.class);
 private CourseService courseService;
}
复制代码
第63节:Java中的Spring MVC简介笔记
第63节:Java中的Spring MVC简介笔记
第63节:Java中的Spring MVC简介笔记

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";
}
复制代码
第63节:Java中的Spring MVC简介笔记
package com.model;
复制代码
第63节:Java中的Spring MVC简介笔记

FileUpload 单文件上传

文件上传:

第63节:Java中的Spring MVC简介笔记
<dependency>
 <groupId> commons-fileupload </groupId>
 <artifactId> commons-fileupload </artifactId>
 <version>1.3.1</version>
</dependency>
复制代码

JSON

json是一种轻量级的格式
复制代码
ContentNegotiatingViewResolver
ResponseEntity
@ResponseBody/@ResquestBody
复制代码
原文  https://juejin.im/post/5c179f905188251e663ec1d3
正文到此结束
Loading...