Spring06

一、SpirngMvc的基本概念

        Spring MVC 是 Spring 提供的一个基于 MVC 设计模式的轻量级 Web 开发框架,本质上相当于 Servlet

        MVC(Model View Controller),一种用于设计创建Web应用程序的开发模式

        Model(模型):数据模型,用于数据处理,包括(service和dao)

        View(视图):页面视图,用于展示数据

        Controller(控制器):处理用户发送的请求,调用model完成数据处理,并对view视图进行响应

        Controller接收浏览器发送的请求后,调用 Model(service和dao)处理完数据后,将响应结果返回给View(视图)

二、SpringBoot访问静态资源的特点 

        当我们在类上只加上@Controller注解,而在方法上没有加上@ResponseBody注解时,此时会进行页面跳转

    后端代码:

package com.itheima.cotroller;



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




@Controller
public class CustomerController {
    @RequestMapping("/hello2")
    public String hello2() {
        System.out.println("hello springmvc2");
        return "success.html";

    }

}

页面发送请求并得到返回结果:

后端代码中:

return "success.html";

SpringBoot程序就会默认以下路径去寻找:success.html这个页面

src/main/resources/static/ 下找有没有 success.html

src/main/resources/public/ 下找有没有 success.html

src/main/resources/resources/ 下找有没有 success.html

src/main/resources/META-INF/resources/ 下找有没有 success.html

三、通过jar包运行程序 

        SpringBoot程序默认打jar包,当然也可以打war包,官方推荐打jar包。SpringBoot程序jar包中内置了web服务器可以直接运行jar包并访问程序

        命令:java  -jar  jar 包的名称

3.1、将程序打成jar包

        

3.2、cmd进入jar包所在文件夹的命令行 

3.3、输入命令: java  -jar  jar springmvc_01.jar

可以看到此时spring项目就启动了,我们一样可以通过postman或者页面访问到这个spring程序。

需要注意的是SpringBoot项目中Maven依赖里面如果没有加上下面插件的依赖,项目就会报错

<plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>

 出现报错

四、Springmvc响应字符串或者JSON

 4.1、配置文件中改变虚拟路径、端口号

server.servlet.context-path=/springmvc_02
server.port=8080

加上虚拟路径之前的访问路径:

http://localhost:8080/hello2

此时访问路径就会变成:

http://localhost:8080/springmvc_02/hello2

4.2、 Springmvc不进行页面跳转

        4.2.1、返回字符串给前端页面

        如果Controller中方法不想进行页面跳转,在类或者方法上使用@ResponseBody注解,表示该方法不进行页面跳转,将返回值通过响应体响应给客户端

        后端代码:

package com.itheima.cotroller;




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




@Controller
@ResponseBody
public class CustomerController {
    @RequestMapping("/hello1")
    public String hello1() {
        System.out.println("hello springmvc1");
        return "你好, springmvc";
    }
    
}

页面发送请求并得到返回结果:返回给页面的是字符串

 4.2.2、返回JAVA对象给前端页面

后端代码:

package com.itheima.cotroller;



import com.itheima.pojo.User;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;


import java.util.Date;

@Controller
@ResponseBody
public class CustomerController {


    @RequestMapping("/hello3")
    public User hello3() {
        System.out.println("hello springmvc3");
        return new User("卢本伟",20,new Date());

    }

    
}

 

 页面发送请求并得到返回结果:返回给页面的是JSON数据

说明:

Springmvc底层集成了jackson工具,能够自动将java对象转换成json响应给客户端

4.2.3、@RestController注解

        直接使用@RestController注解,同样能完成返回数据,而不进行页面跳转。@RestController 是一个组合注解,同时含有 @Controller@ResponseBody功能 

 

 

五、postman的使用 

5.1、使用postman发送get请求

        点击右上角的params可以输入传入的参数:

        

        例如上面输入:

        key                                                value

        name                                            张益达

        age                                                22

        

        就会在请求行中自动拼接传入的参数, 因为GET请求的请求参数是从请求行传输的,也可以直接在请求行中输入?name=张益达&age=22       

         

5.2、使用postman发送post请求

        Body中的请求体选raw,最右边选JSON

六、过滤器和拦截器之间的区别

1、归属不同: Filter属于Servlet技术,Interceptor属于SpringMVC技术

2、拦截内容不同: Filter拦截请求响应的,Interceptor拦截访问Controller中的方法。

3、执行顺序不同:先执行过滤器,后执行拦截器

过滤器拦截页面的请求和响应,拦截器拦截Java内部访问Controller中的方法。 

 

过滤器详见csdn上自己总结的内容

JavaWeb(十二)-CSDN博客

 

七、SpringMvc的执行流程 

 

 

Restful风格以及其他接收前端参数的方式详见:

 常见接收前端参数的方式_怎么接收前端传过来的参数-CSDN博客

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/329880.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

苹果电脑(Mac)的node版本安装以及升降级

在开发过程中&#xff0c;对于不同的开发环境或者较老的项目可能需要切换不同的node版本&#xff0c;此过程会涉及到node版本的升级与降级&#xff0c;安装node版本管理模块n&#xff08;sudo命令&#xff09;。 全局安装n模块 sudo npm install n -g//输入后回车&#xff0c…

自动驾驶轨迹规划之碰撞检测(三)

欢迎大家关注我的B站&#xff1a; 偷吃薯片的Zheng同学的个人空间-偷吃薯片的Zheng同学个人主页-哔哩哔哩视频 (bilibili.com) 目录 1.基于圆覆盖 2.BVH 3.MATLAB自动驾驶工具箱 4 ROS内置的模型 自动驾驶轨迹规划之碰撞检测&#xff08;一&#xff09;-CSDN博客 自动驾…

Baumer工业相机堡盟工业相机如何通过NEOAPI SDK使用相机日志跟踪功能(C#)

Baumer工业相机堡盟工业相机如何通过NEOAPI SDK使用相机日志跟踪功能&#xff08;C#&#xff09; Baumer工业相机Baumer工业相机NEOAPI SDK和短曝光功能的技术背景Baumer工业相机通过NEOAPI SDK使用相机日志跟踪功能1.引用合适的类文件2.通过NEOAPI SDK使用相机日志跟踪功能3.通…

C# 实现单线程异步互斥锁

文章目录 前言一、异步互斥锁的作用是什么&#xff1f;示例一、创建和销毁 二、如何实现&#xff1f;1、标识&#xff08;1&#xff09;标识是否锁住&#xff08;2&#xff09;加锁&#xff08;3&#xff09;解锁 2、异步通知&#xff08;1&#xff09;创建对象&#xff08;2&a…

Docker篇之修改docker默认磁盘占用目录

一、前言 通常情况下&#xff0c;当我们默认安装docker服务时&#xff0c;在不指定默认存储路径时&#xff0c;docker会自动创建目录&#xff0c;经常会出现打满根目录的情况。 默认存储路径为&#xff1a;/var/lib/docker 下 可通过如下进行查询&#xff1a; docker info输出…

UKP3d的管道编辑

山西这家用户在使用UKP3d时&#xff0c;提出以下问题&#xff1a; 1、stp导入的模型怎么测量距离&#xff1b;另外需要把某一个点移动至原点坐标&#xff0c;这个怎么操作呢&#xff1f; 回复&#xff1a;dist&#xff08;主要是捕捉点&#xff0c;推荐使用&#xff08;开启精…

国产阿里的Copilot能提效30%吗?

国产阿里的Copilot能提效30%吗&#xff1f; Copilot简介 GitHub 和 OpenAI 共同打造的一款编程神器–Copilot&#xff0c; 这是一款立足于人工智能技术的编程助手。在此基础上&#xff0c;借助于 GitHub 庞大的代码库和来自全球的开源社区帮助&#xff0c;搭配 OpenAI 在自然…

VS+QT编译环境中字符乱码问题详解

字符乱码问题详解 1 编码字符集与字符编码方式2 字符乱码原因3 字符乱码解决方案 在解释字符乱码问题之前&#xff0c;我们需要先理清一些基本概念 1 编码字符集与字符编码方式 编码字符集 编码字符集是所有字符以及对应代码值的集合。编码字符集中的每个字符都对应一个唯一的…

进阶Docker4:网桥模式、主机模式与自定义网络

目录 网络相关 子网掩码 网关 规则 docke网络配置 bridge模式 host模式 创建自定义网络(自定义IP) 网络相关 IP 子网掩码 网关 DNS 端口号 子网掩码 互联网是由许多小型网络构成的&#xff0c;每个网络上都有许多主机&#xff0c;这样便构成了一个有层次的结构。 IP 地…

【开源】基于JAVA语言的智慧家政系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块三、系统展示四、核心代码4.1 查询家政服务4.2 新增单条服务订单4.3 新增留言反馈4.4 小程序登录4.5 小程序数据展示 五、免责说明 一、摘要 1.1 项目介绍 基于微信小程序JAVAVueSpringBootMySQL的智慧家政系统&#xff0…

OB SQL引擎和存储引擎

文章目录 一 SQL引擎1.1 双模共存1.2 基本操作1.3 查看SQL的执行计划 二 存储引擎2.1 传统数据库存在的问题2.2 LSM-Tree存储2.3 OceanBase转储和合并2.4 控制内存数据落盘2.5 LSMTree存储压缩 三 备份恢复3.1 物理备份系统架构3.2 物理恢复系统架构 一 SQL引擎 1.1 双模共存 …

springboot开启HTTPS

目录 一、前言 HTTP和HTTPS的含义以及区别 二、域名映射 三、添加SSL证书 四、Http转Https 五、内网穿透 一、前言 我们平常写完一个接口&#xff0c;其访问一般都是使用http协议 我们最终想要的结果是使用安全的HTTPS来访问 在我们开始实现之前&#xff0c;我们要先搞明…

Mysql流程控制函数

1概述 Mysql中的流程控制函数非常重要&#xff0c;可以根据不同的条件&#xff0c;执行不同的流程转换&#xff0c;可以在SQL语句中实现不同的条件选择。MySQL中的流程处理函数主要包括IF()、IFNULL()和CASE()函数。 1.1 IF函数 SELECT IF(1 > 0, 正确, 错误);1.2 IFNULL…

JVM实战(22)——jamp和MAT实战

作者简介&#xff1a;大家好&#xff0c;我是smart哥&#xff0c;前中兴通讯、美团架构师&#xff0c;现某互联网公司CTO 联系qq&#xff1a;184480602&#xff0c;加我进群&#xff0c;大家一起学习&#xff0c;一起进步&#xff0c;一起对抗互联网寒冬 学习必须往深处挖&…

JNPF低代码开发平台总体架构介绍

目录 一、JNPF介绍 二、团队能力 三、技术选型 1.后端技术栈 2.前端技术栈 3.数据库支持 四、JNPF界面示意图 五、开发环境 一、JNPF介绍 JNPF是一款企业级低代码开发平台。基于Springboot、Vue技术&#xff0c;采用微服务、前后端分离架构&#xff0c;基于可视化数据建…

【办公技巧】如何设置Word文档部分内容禁止辑?

工作中我们经常会用到Word制作一些文件&#xff0c;文件中有一部分内容不想他人编辑&#xff0c;我们可以设置限制编辑&#xff0c;可以对一部分内容设置限制编辑&#xff0c;具体方法如下&#xff1a; 我们将需要将可以编辑的地方选中&#xff0c;然后打开限制编辑功能 然后勾…

【数据结构和算法】反转链表

其他系列文章导航 Java基础合集数据结构与算法合集 设计模式合集 多线程合集 分布式合集 ES合集 文章目录 其他系列文章导航 文章目录 前言 一、题目描述 二、题解 2.1 方法一&#xff1a;迭代&#xff08;双指针&#xff09; 2.2 方法二&#xff1a;递归 三、代码 3.…

2018年认证杯SPSSPRO杯数学建模C题(第一阶段)机械零件加工过程中的位置识别全过程文档及程序

2018年认证杯SPSSPRO杯数学建模 基于轮廓特征的机械零件位置识别研究 C题 机械零件加工过程中的位置识别 原题再现&#xff1a; 在工业制造自动生产线中&#xff0c;在装夹、包装等工序中需要根据图像处理利用计算机自动智能识别零件位置&#xff0c;并由机械手将零件自动搬…

云服务器CVM_云主机_弹性云计算服务器_腾讯云

腾讯云服务器CVM提供安全可靠的弹性计算服务&#xff0c;腾讯云明星级云服务器&#xff0c;弹性计算实时扩展或缩减计算资源&#xff0c;支持包年包月、按量计费和竞价实例计费模式&#xff0c;CVM提供多种CPU、内存、硬盘和带宽可以灵活调整的实例规格&#xff0c;提供9个9的数…

SQL Server中数据表的增删查改

文章目录 一、增二、查三、改四、删除 一、增 进行增删查改的前提需要在指定数据库中创建数据表&#xff0c;对这块不大理解的可以先看看前面几期文章&#xff1a; 创建数据库 创建数据表 use StudentManageDB go insert into Students (StudentName,Gender,Birthday,Age,Stu…