zoukankan      html  css  js  c++  java
  • 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 点赞

    这是一个有质量,有态度的公众号

    喜欢本文的朋友们

    欢迎长按下图关注订阅号

    收看更多精彩内容

  • 相关阅读:
    【HDOJ6687】Rikka with Stable Marriage(Trie树,贪心)
    【CF1244D】Paint the Tree(树形DP,树)
    【HDOJ6681】Rikka with Cake(扫描线,线段树)
    CPU亲和力
    iostat、vmstat和mpstat命令
    sar命令介绍
    Linux网络调试工具
    svn使用入门
    深入探究C/C++基本数据类型
    core文件与gdb调试
  • 原文地址:https://www.cnblogs.com/dashucoding/p/12178586.html
Copyright © 2011-2022 走看看