zoukankan      html  css  js  c++  java
  • 第63节: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 点赞
  • 相关阅读:
    svn的revert、checkout、clean up、setting
    jsonp跨域原理
    王亚伟北大演讲:一切通胀问题都是货币问题(全文)
    string <-> wstring
    点在多边形内 经典算法(转)
    不可不表的OSG智能指针之强指针与弱指针 《转载》
    一个shell脚本给客户使用服务器生成一个序列号
    Rsync(远程同步): linux中Rsync命令的实际示例
    一个 rsync同步文件脚本
    用UltraISO制作CentOS U盘安装盘
  • 原文地址:https://www.cnblogs.com/dashucoding/p/10133926.html
Copyright © 2011-2022 走看看