SpringBoot项目中WEB与Controller的联系--【SB系列之009】

news2024/11/26 10:49:58

SpringBoot系列文章目录

SpringBoot 的项目编译即报错处理–SB系列之001
—第一部的其它章节可以通过001链接
————————————————

SpringBoot项目中WEB页面放哪里–【SB系列之008】
SpringBoot项目中WEB与Controller的联系–【SB系列之009】
SpringBoot项目中MVC使用–【SB系列之010】

文章目录

  • SpringBoot系列文章目录
  • Resources目录
  • Resources子目录
  • Controller层代码
  • 实际操练起来!
  • 总结
  • 作业(难度★✫✰✰✰ )
  • 配套资源


本文力图把复杂的跳转关系帮你理清
在这里插入图片描述

Resources目录

使用maven管理JAVA类的项目时,我们往往会被目录结构所迷惑,明明有个Java文件夹,又有什么main, Resources文件夹,又冒出个test文件夹?
这些文件夹的作用:

  • JAVA编译出来class文件
  • resources下的原文件(复制即可)
  • test目录下仅仅是项目测试其它代码是否可运行(或运行结果是否正确)
    我们先看看整体的目录结构:
    在这里插入图片描述
    事实上我们需要的是JAVA编译出来的class文件,resources下的原文件(复制即可),test 目录下一个文件都不需要。

Resources子目录

1.public目录:
优先级最低, 一般放一些公共资源

2.static目录:
静态页面放在static下,比如说一些图片. 首页(index.html)有时也放在static里面

3.templates目录:
动态页面放在Templates下, 只能通过controller才能访问到该目录!(和原来的WEB-INF差不多)。

Controller层代码

先来看从路径到页面。

@Controller
public class mainController {
    @RequestMapping("/reg")
    public String reg(){
        return "userReg.html";
    }
}

然后我们再来看userReg.html的代码

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>用户注册</title>
</head>
<body>
<form action="/user/getUser" method="post">
    username:<input type="text" name="username"><br>
    pwd:<input type="password" name="pwd"><br>
    tel:<input type="text" name="telephone"><br>
    <input type="submit" value="注册">
</form>
</body>
</html>

再来看接受这个form提交的Controller类代码:

/**
 *返回用户数据的JSON数据
 */
@RestController
@RequestMapping("/user")
public class UserJSONController {
    @RequestMapping("getUser")
    public User getUser(User user){
        return user;
    }
}

整个过程看上去很乱。让我们用图形梳理。
在这里插入图片描述

实际操练起来!

在这里插入图片描述

先下载本博客的资源项目。然后找到resources目录。
启动这个springBoot项目。运行这个Application,可以看到,项目再一次的“呼呼的”跑起来了
在这里插入图片描述
打开心爱的浏览器。
输出一行神秘的阿拉丁上古文字:

http://localhost:8080/reg

在这里插入图片描述

总结

提示:这里对文章进行总结:
文章虽小,但是难度并不低,准确一点说,一步能跟着做成功的,已经就是学习JAVA的天才了,你完全可以不用报班,只看B站视频,查查博客,就能碾压大片大片的初学者baby。
主要就是一个resources里的文件夹的理解问题。
至少要修改URL,修改html文件名三次以上!!
需要多尝试,多试错。方能理解其中之奥妙。
不怕别人比你聪明,就怕聪明的人比你还努力!

作业(难度★✫✰✰✰ )

1 模仿MainController的控制类新建一个控制类,能够映射"/getsundasheng “的地址。
然后制做一个页面sun.html,内有文字“我是孙大圣” 以及一张孙悟空的图片。
当访问”/getsundasheng " 的地址时,能够显示 “sun.html”
2 自己修改类,页面名字,使程序出错,观察程序错误的信息

配套资源

https://download.csdn.net/download/dearmite/88048008

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

喜报|英码科技联合广师大荣获“智芯杯”AI芯片应用创新创业大赛两大奖项

7月15日&#xff0c;由中国仪器仪表学会主办的全国首届“智芯杯”AI芯片应用创新创业大赛总决赛暨颁奖典礼圆满结束&#xff0c;英码科技联合广东技术师范大学设计开发的“AI视觉&#xff0c;让工厂建设更智慧”和“基于AI的智慧校园无感考勤系统”创新项目均荣获三等奖。 ​ 自…

曲师大2023大一新生排位赛-C.String题解

C.String 题目描述 众所周知&#xff0c;许师哥精通字符串。 一天&#xff0c;许师哥意外的获得了一个字符串&#xff0c;但他发现这个字符串并不是一个回文串&#xff0c;因此他非常生气。于是他决定从这个字符串中删除若干个字符使得 剩余的字符串为一个回文串。 回想回文串…

如何选购开放式耳机?开放式蓝牙耳机哪些品牌比较好?开放式耳机选购指南!

作为一个耳机爱好者&#xff0c;最近更是喜欢上了开放式蓝牙耳机&#xff0c;实际用过的起码有十几款&#xff0c;但其实最终能留下来的也只有四五款。由于前期并不知道应该如何选择开放式耳机&#xff0c;经常都会高价买到些质量差、音质也不好、漏音大的开放式耳机&#xff0…

SpringBatch从入门到实战(十一):事务控制

一&#xff1a;事务模型 Step之间事务独立。Step划分成多个Chunk执行&#xff0c;Chunk事务批次独立&#xff0c;互不影响。Chunk开始启动一个事务&#xff0c;Chunk结束时提交或者回滚事务。 二&#xff1a;事务回滚控制 默认情况下&#xff0c;无论是设置了重试retry&#…

实际上手体验maven面对冲突Jar包的加载规则 | 京东云技术团队

一、问题背景 相信大家在日常的开发过程中都遇到过Jar包冲突的问题&#xff0c;emm&#xff0c;在最近处理业务需求时我也遇到了不同版本jar包冲突导致项目加载出错的问题。主要是一个完整的项目会不可避免的使用第三方的Jar包来实现功能开发&#xff0c;各种第三方包之间可能…

低代码如何帮助企业数字化转型?

在数字化时代背景下&#xff0c;企业都面临着巨大的数字化转型挑战。为了迎接这一挑战&#xff0c;企业软件开发工具和平台都在不断地创新和进化。其中&#xff0c;低代码开发平台应运而生&#xff0c;并成为了众多企业转型的首选方案。企业为什么都选择低代码开发平台&#xf…

【机器学习】PyTorch手动实现Logistic算法

参考地址&#xff1a;点击打开 计算较为繁琐&#xff0c;需要用到sigmoid函数和梯度下降算法&#xff0c;步骤主要如下&#xff1a; 二项分布概率公式表示最大似然估计和对数化计算求道带入梯度下降算法计算和优化 代码&#xff1a; import numpy as np import matplotlib.p…

[CPU飙升排查]生产CPU飙升,YGC不断的事故

背景 最近给上线还未使用的服务配置监控,监控系统电话将我呼醒 ,导致原本就不多的头发一阵掉落. 还好系统还没有流量进入,先免打扰,第二天再处理. 查看面板情况如下: FGC正常 YGC不断 CPU飙升 思路确定 分析了下YGC不断,但是没有FGC,CPU飙升,可能出现的情况是哪里有活锁或者…

数据迁移卷不动了?Squids DBMotion新增多种数据库迁移能力

Squdis DBMotion新增了多种数据库的迁移能力&#xff1a;SQLServer to SQLServer、Redis to Redis、MySQL to Kafka&#xff0c;增加了列映射、校验任务独立、抽样校验、校验复检和限速等十多项功能。 本次版本更新&#xff0c;DBMotion新增了三种数据库迁移同步的场景。目前&…

el-table组件插槽“slot-scope”

目录 一、代码展示 二、返回的数组对象不含value或者ispass&#xff0c;不会报错 三、插槽里面放的是要手动输入的值时 一、代码展示 <el-table v-loading"loading" :data"checklistList" selection-change"handleSelectionChange"><…

轻松实现数据一体化:轻易云数据集成平台全解析

在当今快速发展的商业环境中&#xff0c;企业面临着大量来自多样数据源的数据。如何将这些数据进行高效集成和利用&#xff0c;成为企业数字化转型的关键挑战。轻易云数据集成平台提供了一个一站式的解决方案&#xff0c;帮助企业实现数据的无缝集成和高效利用。下面我们将通过…

Pandas Groupby:在Python中汇总、聚合和分组数据

GroupBy是一个非常简单的概念。我们可以创建一个类别分组&#xff0c;并对这些类别应用一个函数。这是一个简单的概念&#xff0c;但它是一种在数据科学中广泛使用的非常有价值的技术。在真实的的数据科学项目中&#xff0c;您将处理大量数据并一遍又一遍地尝试&#xff0c;因此…

Linux(CentOS7)下源码编译 PostgreSQL13.10 安装手册

Linux&#xff08;CentOS7&#xff09;下PostgreSQL安装手册 文章目录 一、准备PostgreSQL二、安装PostgreSQL2.1解压安装包2.2编译PG2.3查看PG安装目录2.4配置PG环境变量2.5查看PG版本2.6创建postgres用户2.7创建PG数据库数据存放目录2.8授权PG数据库数据存放目录2.9切换postg…

一起学SF框架系列5.9-spring-Beans-bean实例创建

bean实例化底层采用Java反射机制&#xff0c;但Spring根据框架需要提供了更多的增强功能。 类关系图 InstantiationStrategy&#xff1a;接口-定义了创建RootBeanDefinition对应bean实例方法 SimpleInstantiationStrategy&#xff1a;简单bean的实例化处理。实现了Instantiati…

WEB:题目名称-文件包含

背景知识 题目 题目了文件包含&#xff0c;所以想到了php伪协议 构造payload尝试读取flag.php /?filenamephp://filter/readconvert.base64-encode/resourceflag.php 页面提示“do not hack”猜测可能是黑名单检测敏感字符串。猜测字符串哪些被禁用&#xff0c;这里输入单个…

【算法与数据结构】144、94、145LeetCode二叉树的前中后遍历(递归法、迭代法)

文章目录 一、题目二、递归算法三、迭代算法3.1 迭代算法13.2 迭代算法2 ——统一风格写法 四、完整代码 所有的LeetCode题解索引&#xff0c;可以看这篇文章——【算法和数据结构】LeetCode题解。 一、题目 二、递归算法 思路分析&#xff1a;这道题比较简单&#xff0c;不多说…

LCD—STM32液晶显示(2.使用FSMC模拟8080时序)

目录 使用STM32的FSMC模拟8080接口时序 FSMC简介 FSMC NOR/PSRAM中的模式B时序图 用FSMC模拟8080时序 重点&#xff1a;HADDR内部地址与FSMC地址信号线的转换&#xff08;实现地址对齐&#xff09; 使用STM32的FSMC模拟8080接口时序 ILI9341的8080通讯接口时序可以由STM32使…

PHP要怎么学--【强撸项目000】

强撸项目 总目录在000集 文章目录 本系列校训学习资源的选择环境的问题本人推荐 PHP视频的知识点分析总结题外话 本系列校训 用免费公开视频&#xff0c;卷飞培训班哈人&#xff01;打死不报班&#xff0c;赚钱靠狠干&#xff01; 只要自己有电脑&#xff0c;前后项目都能搞&a…

sqli-labs 堆叠注入 解析

打开网页首先判断闭合类型 说明为双引号闭合 我们可以使用单引号将其报错 先尝试判断回显位 可以看见输出回显位为2&#xff0c;3 尝试暴库爆表 这时候进行尝试堆叠注入&#xff0c;创造一张新表 ?id-1 union select 1,database(),group_concat(table_name) from informatio…

给你一个网站,你如何测试?

首先&#xff0c;查找需求说明、网站设计 等相关文档&#xff0c;分析测试需求。 制定测试计划&#xff0c;确定测试范围和测试策略&#xff0c;一般包括以下几个部分&#xff1a; 功能性测试&#xff1b;界面测试&#xff1b;性能测试&#xff1b;数据库测试&#xff1b;安全…