• SpringMVC


    1.什么是MVC?

    M:model:模型,是指JavaBean,作用是处理数据。 通常模型对象负责在数据库中存取数据。
    JavaBean:1.实体类Bean:用来存储业务数据。2.业务处理Bean:处理业务逻辑,数据访问。
    V:view,视图模型,是指工程中的html或者jsp页面,主要功能是和用户负责交互,展示数据
    C:controller,控制器,工程中的servlet,接受请求,响应浏览器。
    MVC的工作流程:
    用户通过view层发送请求到服务器,请求会被controller接受,controller会调用相应的model层,进行处理请求,controller会根据请求处理的结果找到相应的view视图,渲染数据之后最终响应给浏览器。

    2.什么是SpringMVC?

    1.Spring MVC是一个Web框架;
    2.Spring MVC是基于Servlet API构建的。

    什么是SpringMVC?
    SpringMVC是Spring的后续产品,是Spring的一个子项目。
    SpringMVC是Spring为表述层开发提供一整套完整的解决方案。
    三层架构是指:表述层(前台页面和后台servlet),业务逻辑层,数据访问层。

    3.MVC和Spring MVC的关系

    MVC是一种思想,Spring MVC是对MVC思想的具体实现。
    Spring MVC是一个实现了MVC模式,继承了Servlet API的Web框架,Web框架,用户在浏览器中输入url之后,Spring MVC项目就可以感知到用户的请求。

    4.Spring MVC的功能?

    Spring MVC的功能:
    1.连接的功能:将用户(浏览器)和Java程序连接起来,也就是访问一个地址能够调用我们的Spring程序。
    2.获取参数的功能:用户访问的时候会带一些参数,在程序中要想办法获取到参数。
    3.输出数据的功能:执行了业务逻辑之后,要把程序执行的结果返回给用户。

    5.SpringMVC的特点:

    1.Spring家族原生产品,与IOC容器等基础设施无缝对接;
    2.基于原生的servlet,通过强大的前端控制器DispatcherServlet,对响应和请求统一处理。
    3.表述层各细分领域需要解决的问题全方位覆盖,提供全面解决方案。
    4.代码清晰简洁,大幅度提升开发效率。
    5.内部组件化程度高,可插拔式组件即插即用,想要什么功能配置相应组件即可。
    6.性能卓著,尤其适合现代大型,超大型互联网项目要求。

    6.启动一个项目

    在这里插入图片描述
    @RequestMapping的作用是注册一个url路由,通过这个路由,前端请求就可以实现和后端程序交互了。@RequestMapping这个注解既可以修饰方法又可以修饰类。默认情况下使用@RequestMapping会返回一个html页面。

    7.Spring Boot热加载配置:

    1.在Spring Boot项目中引入dev-tools框架。
    在这里插入图片描述
    2.在idea的setting中开启项目自动编译
    在这里插入图片描述
    在这里插入图片描述
    3.开启热部署
    双击shift,搜索registry
    在这里插入图片描述
    在这里插入图片描述
    4.一定要按debug按钮来启动项目在这里插入图片描述

    8.@RequestMapping是post请求还是get请求

    1.当没有加任何附加的条件时,此时既符合post请求也符合get请求。
    2.当给@RequestMapping加method=RequestMethod.GET,此时请求只符合get请求。
    在这里插入图片描述

    9.路由注解扩展

    a.@GetMapping,@GetMapping和@RequestMapping中设置method=RequestMethod.GET是一样的。
    在这里插入图片描述
    b.@PostMapping:只适合post请求在这里插入图片描述

    实现用户请求和程序连接
    1.@RequestMapping:支持任意一种请求类型(get/post);
    2.@GetMapping:只支持get方式的请求;
    3.@PostMapping:支持post方式的请求。
    但是,@RequestMapping既可以修饰类又可以修饰方法。
    @GetMapping和@PostMapping只能修饰方法。

    重命名前端key值(@RequestParam)

    在这里插入图片描述
    在这里插入图片描述
    @RequestParam既可以重命名请求参数,又可以保证此参数为必传参数。
    如果不传参的话,就会报错:
    在这里插入图片描述

    如果@RequestParam不设置required的话,默认required是true,在传参的时候,这个参数就设定为必传参数,如果在get请求的时候没有传参过来,就会报错。想要传参不是必传参数,就得设置required的参数了。
    在这里插入图片描述
    此时:不传参数的时候,就不会报错。在这里插入图片描述

    10.获取Json格式对象

    想要获取前端传过来Json格式的对象,后端想要接收Json格式的对象,要加一个注解@RequestBody,加上这个注解之后,就可以获取到Json格式的对象。
    在这里插入图片描述
    在这里插入图片描述

    11.获取URL中参数@PathVariable

    想要获取URL中的参数,需要使用注解@PathVariable在这里插入图片描述>在这里插入图片描述

    12.上传文件@RequestPart

    1.将上传文件的路径配置到 配置文件当中。
    配置文件会有开发环境的配置文件、生产环境的配置文件、主配置文件。
    1.设置配置文件在这里插入图片描述
    2.设置开发环境的配置文件,注意文件名的格式
    在这里插入图片描述
    3.设置生产环境的配置文件,注意文件名的格式
    在这里插入图片描述

    4.保存文件在这里插入图片描述>5.测试
    在这里插入图片描述
    6.结果展示:
    在这里插入图片描述

    13.获取Cookie/Session/header

    1.获取Cookie

    在这里插入图片描述
    结果展示:
    在这里插入图片描述

    2.更简单的获取Cookie(@CookieValue)

    1.更简单的获取Cookie—@CookieValue
    在这里插入图片描述
    2.
    在这里插入图片描述
    3.
    在这里插入图片描述

    3.简介获取Header----@RequestHeader

    在这里插入图片描述

    4.Session存储和获取

    1.存Session
    在这里插入图片描述
    2.取Session
    在这里插入图片描述
    在这里插入图片描述

    5.更简单的获取Session—@SessionAttribute(value=“”,required=false)

    在这里插入图片描述

    14.获取用户的请求

    获取用户的请求:
    1.获取单个参数(几个参数):在方法中写相应的参数就可以实现;
    2.获取对象:在方法中直接写对象就可以实现;
    3.获取JSON对象:@RequestBody:加到方法中的参数前面
    4.获取文件:@RequestPart
    5.获取用户Cook/Session/Header
    @CookieVaule/@SessionAttribute/@RequestHeader

    15.返回结果给前端

    1.返回text/html;

    在这里插入图片描述
    在这里插入图片描述

    2.返回Json格式的数据

    在这里插入图片描述
    在这里插入图片描述

    16.请求转发或者请求重定向

    forward VS redirect
    return不但可以返回一个视图,还可以实现跳转,跳转方式有两种:
    forward:请求转发:
    redirect:请求重定向。
    1.请求转发forward:服务器帮客户进行转发并将结果响应给客户端,URL地址是不变的。
    2.请求重定向redirect:服务器将请求重新定义到要访问的地址上,URL地址是会发生改变。

    forward:请求转发

    这里要返回一个html页面,要用@Controller,而不用@RestController,@Controller类中的方法可以直接通过返回String跳转到jsp、html等模版页面。@RestController类中的所有方法只能返回String、Object、Json等实体对象,不能跳转到模版页面。
    在这里插入图片描述

    redirect:请求重定向

    在这里插入图片描述

    请求转发forward VS 请求重定向 redirect

    请求转发和请求重定向的区别
    1.请求转发URL地址不变,因为是服务器端进行转发和响应的;请求重定向URL地址会发生改变,因为服务器端直接将请求重定向到具体的地址上。
    2.使用请求转发,外部资源有可能会丢失,访问不到,而请求重定向是直接重定向到URL地址上,所以,请求重定向和直接访问访问目标地址的效果是一样的,所以不会出现外部资源丢失的情况。

  • 相关阅读:
    【教学类】小2班学号字帖(A4横版2份)
    浅析-ES6
    这个 MySQL 问题困扰了我一个月,现在终于把他解决了
    CSS 简介
    基于微信小程序的智能垃圾分类回收系统,附源码、教程
    8年测试老鸟总结,Python自动化测试实现思路(细致)
    极简的MapReduce实现
    【C++】复合类型(数组、字符串、结构体、共用体、枚举、指针)
    Python创建第一个Django框架程序
    实验六 设计模式
  • 原文地址:https://blog.csdn.net/weixin_51062428/article/details/125206625