SpringMVC程序开发SpringMVC初始

举报
bug郭 发表于 2022/10/06 22:24:50 2022/10/06
【摘要】 什么是SpringMVCSpringWeb MVC是基于Servlet API构建的Web框架,在Spring下的一个Web模块!通常又被称为SpringMVCSpringMVC是一个Web框架SpringMVC是基于Servlet API构建的MVC又是个啥呢?MVC定义:Model View Controller缩写,是软件工程中的一种软件架构模式,把软件系统分为模型视图,控制器三个基...

什么是SpringMVC

SpringWeb MVC是基于Servlet API构建的Web框架,在Spring下的一个Web模块!通常又被称为SpringMVC

  • SpringMVC是一个Web框架
  • SpringMVC是基于Servlet API构建的

MVC又是个啥呢?
MVC定义:

Model View Controller缩写,是软件工程中的一种软件架构模式,把软件系统分为模型视图,控制器三个基本部分!

在这里插入图片描述

可以看到上面就是一个完整的http请求响应过程!而基本上的Web程序都是通过http协议进行交互的!也就是说要实现一个完整的Web程序就要有这三个基本部分!

  • Model 是应用程序中用于处理数据逻辑的部分,通常模型对象负责在数据库读取数据.(一些实体model等等)
  • View 这里的视图应用程序中处理数据显示的部分.通常视同是依据模型数据创建的(由一些(jsp)框架加数据模型然后经过渲染呈现在服务器上的,这里的视图并非前端页面,这里的视图类似于运行在控制台上的信息)
  • Controller程序中处理用户交互的部分.通常控制器负责从视图读取数据,控制用户输入,并向模型发送数据

SpringMVC 和MVC

MVC是一种思想,SpringMVC是对MVC思想的具体实现!
就是说SpringmVC实现了MVC软件工程架构模式,并基继承了ServletAPI的Web框架.所以Web项目,用户在浏览器输入了url,SpringMVC项目可以感知到用户的请求!

SpringMVC作用

现在市面上绝大多数java项目都是基于Spring/SpringBoot实现的.而Spring的核心就是SpringMVC. SpringMVC是Spring框架核心模块,而SpringBoot是Spring的脚手架.所以大部分java项目都约等于SpringMVC项目!
所以SpringMVC是十分重要!

SpringMVC核心功能

学习SpringMVC只需要掌握下面三个功能:

  • 连接功能:将用户输入的urljava程序中的方法连接起来,访问一个地址可以调用我们的Spring程序
  • 获取参数功能;想办法获取到用户在浏览器给我们传输的数据参数
  • 输入数据功能: 拿到请求处理了业务数据,我们需要能够将响应数据发送给用户

这不就之前的Servlet项目需要实现的功能嘛,对滴!SpringMVC也能实现这些功能,并且更加简洁!
而且SpringMVC是基于ServletAPI实现的,所以Servlet的方法我们SpringMVC也都有!例如:每个方法的request/response 参数SpringMVC项目默认也有!

SpringMVC项目创建和连接

SpringMVC项目的创建和SpringBoot项目创建一样,唯一不同就是,在项目创建的时候添加Spring Web依赖,就是SpringMVC项目了!

在这里插入图片描述
编写Web接口代码用于浏览器访问

注意:

  • 用于浏览器访问的接口只能用 @Controller注解
  • SpringMVC项目默认返回的是html静态页面,加上@ResponseBody 取消默认可以返回静态页面以及文本数据等
  • @RequestMapping 注解设置路由,类上的可以省略,方法上的路由不能省略,前端通过ip+端口+这里的路径访问该方法
package com.example.demo.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

@Controller //只能用Controller注解,直接和客户端交互!
@ResponseBody //默认只能返回静态页面(html) 加上该注解可以返回text/html
@RequestMapping("/user") //设置路由,url一级路径,可省略类上的路由!
public class UserController {

    @RequestMapping("/get") //设置路由,url二级路径,这里就不能省略!
    public String getUser(){
        return "Hello 刘备";
    }
}

启动项目:
在这里插入图片描述
浏览器输入对应的url:
在这里插入图片描述

@RequestMapping 注解

@RequestMapping是SpringMVC项目中最常使用的一个注解!
用来注册接口的路由映射!

路由映射:
当用户访问一个url时,将用户请求对应到程序中的某个类某个方法上

  • 基础使用:

基础使用就是在类上和方法上注册接口的路由映射
如果同时修饰类和方法,那用户访问的url路径就要包含这地址类+方法上的路由映射

也可以直接修饰方法直接访问方法路由映射
在这里插入图片描述

在这里插入图片描述

  • @RequestMapping 是 post 还是 get 请求

我们用postman验证一下

在这里插入图片描述

在这里插入图片描述
@RequestMapping可用这两个请求方法访问

我们查看一下@RequestMapping注解中可以访问的请求方法类型!

在这里插入图片描述
可以看到基本的请求方法都可以访问!

那如何设置指定请求访问访问呢?

GetMapping和PostMapping

  • get请求的3种写法
//默认写法所有请求方法都可以访问
@RequestMapping("/index")
//指定get方法访问
@RequestMapping(value="/index",method = RequestMethod.GET)
//指定get方法访问
@GetMapping("/index")

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
我们通过其他请求方法进行访问
在这里插入图片描述方法不允许

  • @post请求的3种方法也是如此
//默认
@RequestMapping("/index")
//设置指定方法
@RequestMapping(value="/index",method = RequestMethod.POST)
@PostMapping("/index")

通过get请求访问! 在这里插入图片描述

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。