springboot(5)静态资源访问前缀+欢迎页+REST风格的传递参数

news2024/11/23 11:25:30

Springboot的访问规则是  先访问controller的请求,如果没有的话,我们在访问静态资源。

但是静态资源过多的情况下这样不好处理,所以我们可以加一个前缀,这样可以拦截掉非静态资源的请求,每次都可以准确快速无风险的访问到静态资源

写法如下:

spring.mvc.static-path-pattern=/resources/**

如果采用以上的配置方式,那么 在写欢迎页面的时候就无法直接访问到

 传递参数是非常重要的

此时我们需要学习几个注解和集中有意思的写法,如下

首先我们需要一个html页面和一些表单

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>hhhhh</title>
</head>
<body>

      <h1>喜欢读书</h1>

     <form    action="/name"  method="post"   >
         <input    type="text"   name="newname"         />
         <input   type="submit" value="提交" >
     </form>

</body>
</html>

解释一下 :首先我们需要一个form表单  action 写上我们的请求路径,然后获得input标签,前端通过name属性绑定需要传入的值,然后通过post方法传递给后端

后端处理代码如下:

@RestController
public class GetName {
@RequestMapping(value = "/name",method = RequestMethod.POST)
    public  String     getName(String newname){
         String  name  =  newname;
        System.out.println(name);
        return  name;
    }
}
@RestController  集合了  @Controller  @ResponseBody  首先通过  @Controlle  将 我们这个类交给容器管理  然后@ResponseBody 可以返回数据给前端 

然后我们使用     @RequestMapping(value = "/name",method = RequestMethod.POST)

 通过 /name 获得路径 ,然后method判断方法,无论是post or  get方法都可以使用

我们增加一下get的测试例子

<head>
    <meta charset="UTF-8">
    <title>hhhhh</title>
</head>
<body>

      <h1>喜欢读书</h1>

     <form    action="/name"  method="post"   >
         <input    type="text"   name="newname"         />
         <input   type="submit" value="提交" >
     </form>
<br>
<form   action="/name2"  method="get" >
    <input  type="submit"  value="点击get获得">
</form>

</body>
</html>

来个get的后端

public class GetName {
@RequestMapping(value = "/name",method = RequestMethod.POST)
    public  String     getName(String newname){
         String  name  =  newname;
        System.out.println(name);
        return  name;
    }

    @RequestMapping(value = "/name2",method = RequestMethod.GET)
    public  String   getName2(){
           return  "可爱的绘梨衣";
    }
}

此时就可以使用get得到数据了

我们都知道,form表单 还有 delete,put方法

我们也来写个表单,测试一下

<form  action="/name3"  method="delete"  >
  <input  type="submit"  value="执行一下delete方法">
</form>





    @RequestMapping(value = "/name3",method = RequestMethod.DELETE)
    public  String   getName3(){
    return "这是delete方法的测试";
    }

运行结果是

这是因为fiter只设定了post 和  get 的方法,我们可以通过 另一种写法来实现delete

首先我们需要进行一个配置

我们需要改变一下  HTML的写法:sprinvboot后端只能接收post 和 get   ,所以前端页面必须通过get 或者 post发送数据 ,但是我们可以通过修改 input标签,后端可以通过fiter自动解析,读取input中我们的数据,完成对应的方法寻找

写法如下

<form  action="/name3"  method="post"  >
  <input  name="_method"  type="hidden"  value="delete"  />
    <input     value="REST-delete 提交 "  type="submit"    />
</form>

通过 <   name  后面带上方法   type  hidden   value 写上自己的方法   然后提交即可 >  后端会读取里面的数据,然后找到需要的字符串

但是我们需要的配置如下  

spring.mvc.hiddenmethod.filter.enabled=true    《-----将这个属性开启,但是因为这个功能不是主流,主流是前后端分离的页面,所以默认关闭.

同时以上的写法也可以缩写

@RequestMapping(value = "/name2",method = RequestMethod.GET)   ---->缩写成  GetMapping

 

 

 

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

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

相关文章

镀镍废水处理,企业污水处理,离子交换树脂在镀镍废水中的应用

传统沉淀法不能满足日益提的环保要求(如电镀表三镍含量要求0.1mg/l以下)。针对特定重金属离子的特点&#xff0c;利用螯合树脂的特种功能基团与重金属离子形成络合物的特性&#xff0c;实现重金属离子的回收利用及深度去除。 CH-90Na对除铜镍铅锌钴锰等具有特定的选择性&#x…

API的应用

API&#xff08;Application Programming Interface,应用程序编程接口&#xff09;是一些预先定义的函数&#xff0c;目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力&#xff0c;而又无需访问源码&#xff0c;或理解内部工作机制的细节 应用程序接口 想…

安卓|aar和jar打包引入流程演示

安卓|aar和jar打包引入流程演示aar和jar存在相关意义打包环境工具aar和jar|Module项目目录aar打包|引入总览步骤|aar配置打包创建java or kotlin类文件及资源|截图展示步骤|aar包引入jar打包|引入总览步骤|jar配置打包任务创建java类文件|截图展示步骤|jar包引入aar和jar运行在…

OpenTracing协议规范链接

一、官网链接 OpenTracing specificationhttps://opentracing.io/specification/不过目前OpenTracing项目已归档&#xff0c;不再维护。需要参考OpenTelemetry官网链接 Migrating from OpenTracing | OpenTelemetryBackward compatibility with OpenTracing has been a prior…

Promise 的理解

promise 是什么&#xff1f;promise 是JS 中进行异步编程的最新的解决方案从语法上来说&#xff1a;Promise 是一个构造函数从功能上来说&#xff1a;promise 对象时用来封装一个异步操作并可以获取其结果其三种状态&#xff0c;reasolve 、pendding、 rejectedPromise 的基本运…

计算机网络-ip数据报

在图中&#xff0c;网络层包含了四种协议&#xff1a;ARP、IP、ICMP、IGMP&#xff0c;由上下关系表明&#xff0c;ARP为IP协议服务&#xff0c;IP为ICMP和IGMP服务。 IP数据报格式 此处不区分数据报和分组的概念&#xff1a;当数据部分过长时&#xff0c;将数据部分拆分&…

2022年全国职业院校技能大赛A(1)

目录 模块A 基础设施设置与安全加固 一、项目和任务描述&#xff1a; 二、服务器环境说明 三、具体任务&#xff08;每个任务得分以电子答题卡为准&#xff09; A-1任务一 登录安全加固 1.密码策略&#xff08;Windows&#xff0c;Linux&#xff09; a.设置最短密码长度为…

Python 之 NumPy 随机函数和常用函数

文章目录一、随机函数1. numpy.random.rand(d0,d1,…,dn)2. numpy.random.randn(d0,d1,…,dn)3. numpy.random.normal()4. numpy.random.randint()5. numpy.random.sample6. 随机种子np.random.seed()7. 正态分布 numpy.random.normal二、数组的其他函数1. numpy.resize()2. nu…

芯片是怎样“炼”成的?

在芯片设计完成&#xff0c;交由芯片制造厂&#xff08;Fab&#xff09;进行试产&#xff08;Tape out&#xff09;之后&#xff0c;就可以进行量产了。但Tape out是个漫长的过程&#xff0c;在此过程中&#xff0c;Fab里的工艺及设备工程师们需要不断调试&#xff0c;使得芯片…

Python优化算法—遗传算法

Python优化算法—遗传算法一、前言二、安装三、遗传算法3.1 自定义函数3.2 遗传算法进行整数规划3.3 遗传算法用于旅行商问题3.4 使用遗传算法进行曲线拟合一、前言 优化算法&#xff0c;尤其是启发式的仿生智能算法在最近很火&#xff0c;它适用于解决管理学&#xff0c;运筹…

全球认可的PMI认证体系

全球认可的PMI认证体系我们生活在一个“项目化”的世界里&#xff0c;而且这一趋势在不断加强。PMI的专业认证将使您做好准备&#xff0c;满足全球范围内各种项目、不同企业的需求。PMI的认证源于项目管理从业者&#xff0c;并服务于项目管理从业者。所有认证基于严格的标准和持…

HTML5之CSS基础学习笔记

基础认知 CSS初始 CSS的介绍 CSS&#xff1a;层叠样式表&#xff08;Cascading style sheets&#xff09; CSS作用是什么&#xff1f;&#xff1f; 给页面中的HTML标签设置样式 CSS就是用来做美化的&#xff0c;我之前写的网页就是黑白&#xff0c;要不带点彩色的图片&#x…

MYSQL-主从复制

文章目录1 概述2 原理3 搭建3.1 主库配置3.2 从库配置1 概述 主从复制是指将主数据库的DDL和 DML操作通过二进制日志传到从库服务器中&#xff0c;然后在从库上对这些日志重新执行(也叫重做)&#xff0c;从而使得从库和主库的数据保持同步。 MySQL支持一台主库同时向多台从库进…

从事架构师岗位快2年了,聊一聊我对架构的一些感受和看法

从事架构师岗位快2年了&#xff0c;聊一聊我和ChatGPT对架构的一些感受和看法 职位不分高低&#xff0c;但求每天都能有新的进步&#xff0c;永远向着更高的目标前进。 文章目录踏上新的征程架构是什么&#xff1f;架构师到底是干什么的&#xff1f;你的终极目标又是什么&#…

腾讯实践:面向在线游戏的智能推荐系统设计实践

‍省时查报告-专业、及时、全面的行研报告库省时查方案-专业、及时、全面的营销策划方案库【免费下载】2023年1月份热门报告合集ChatGPT的发展历程、原理、技术架构及未来方向《ChatGPT&#xff1a;真格基金分享.pdf》2023年AIGC发展趋势报告&#xff1a;人工智能的下一时代推荐…

【经验】CiteSpace|Wiley Online Library或除知网以外的其他网站的文献怎么导入CiteSpace 6.1.6?

如果没安装&#xff0c;请看这篇博客安装&#xff0c;现在新版&#xff08;6.1.6&#xff09;的不需要额外下载java了&#xff0c;就很妙~&#xff1a;   最新版citespace软件的安装与配置 结论&#xff1a;导出成RIS然后用它自带的转换成WoS。 Wiley Online Library导出RIS…

(考研湖科大教书匠计算机网络)第四章网络层-第三节2:分类编址的IPv4地址

获取pdf&#xff1a;密码7281专栏目录首页&#xff1a;【专栏必读】考研湖科大教书匠计算机网络笔记导航 文章目录一&#xff1a;分类IP地址概述二&#xff1a;各类地址详解&#xff08;1&#xff09;A类地址&#xff08;2&#xff09;B类地址&#xff08;3&#xff09;C类地址…

算法刷题打卡第91天:统计一个圆中点的数目

统计一个圆中点的数目 难度&#xff1a;中等 给你一个数组 points &#xff0c;其中 points[i] [xi, yi] &#xff0c;表示第 i 个点在二维平面上的坐标。多个点可能会有 相同 的坐标。 同时给你一个数组 queries &#xff0c;其中 queries[j] [xj, yj, rj] &#xff0c;表…

C++100-C++拓展002-float精度问题

文章目录C100-C拓展002-float精度问题摘要Cfloat精度问题C浮点float基本格式C查看数据范围在线练习&#xff1a;总结C100-C拓展002-float精度问题 摘要 本系列为C学习系列&#xff0c;会介绍C基础语法&#xff0c;基础算法与数据结构的相关内容。本文为C拓展内容&#xff0c;包…

linux安装

我们在部暑的时候 总要用到linux 所以我们可以提前把linux安装好 准备一个安装好的linux 到时直接克隆出来用就可以一 安装linux1). 选择创建新的虚拟机2). 选择"典型"配置3). 选择"稍后安装操作系统(S)"4). 选择"Linux"操作系统,"CentOS7 …