后端如何返回404地址

当我们网站输入不存在的地址,经常会出现404的页面,这是如何做到的

1.添加配置

spring:mvc:view:prefix: /templates/suffix: .html

2.resources下添加templates目录,下面放404的网站

3.添加依赖,版本在主pom里面配置好了,这里可以自行配置

        <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-thymeleaf</artifactId></dependency>

通过添加这个依赖,开发者可以在Spring Boot应用中使用Thymeleaf来渲染动态网页,利用Thymeleaf的语法特性进行变量替换、条件判断、循环遍历等操作,从而实现视图层与模型数据的绑定

4.404页面的html编写(图片地址请自行替换嗷)

<!DOCTYPE html>
<html lang="en">
<head><meta charset="utf-8" /><metaname="viewport"content="width=device-width,initial-scale=1.0,minimum-scale=1.0,maximum-scale=1.0, user-scalable=no, shrink-to-fit=no, viewport-fit=cover"/><link rel="shortcut icon" href="" /><meta name="theme-color" content="#000000" /><meta property="og:title" lang="zh-CN" content="" /><meta name="theme-color" content="#000000" /><meta property="og:type" content="video" /><meta property="og:title" content="" /><meta property="og:description" content="" /><meta property="og:image" content="" /><meta property="og:image:width" content="750" /><meta property="og:image:height" content="1334" /><title></title><style>.container,.pc-container {margin-top: 32vh;background: white;display: flex;align-items: center;flex-direction: column;}.text {color: #333333;line-height: 28px;}.container .text {margin-top: 16px;font-size: 3vw;}.pc-container .text {/* margin-top: 100px; */font-size: 18px;}.pc-container .img {height: 200px;}.container .img {width: 50vw;}textarea {width: 90vw;}</style>
</head>
<body><div class="pc-container"><div><imgclass="img"src="https://wykvituber.com/404notfound.jpg"/></div><div class="text">您访问的页面不存在,请确认链接是否正确</div></div></body>
</html>

5.编写控制器

/***  短链接不存在跳转控制器*/
@Controller
public class ShortLinkNotfoundController {/*** 短链接不存在跳转页面* @return*/@RequestMapping("/page/notfound")public String notfound() {return "notfound";}
}

6.对访问路径进行接受并响应

    public void restoreUrl(ServletRequest request, ServletResponse response) {if(XXXXXXXXXX) {((HttpServletResponse) response).sendRedirect("/page/notfound");return;}}

这样当我们后端在处理请求的时候,通过自己的IF判断,去跳转404页面

比如我们前端发请求想要拿某个数据,数据并不存在,我们就可以跳转,404页面也不一定就要是404嘛

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

一个开源的分布式在线教育系统

项目介绍 roncoo-education —— 一个分布式在线教育系统。目前主要功能有课程点播功能&#xff0c;支持多家视频云的接入&#xff0c;课程附件管理功能&#xff0c;支持多家存储云的接入&#xff0c;可以帮助个人或者企业快速搭建一个轻量级的在线教育平台。 系统分为后台、前…

CHAT~(持续更新)

CHAT&#xff08;持续更新&#xff09; 实现一个ChatGPT创建API设计页面布局业务操作技术架构 编码其他 实现一个ChatGPT 创建API 最简单也最需要信息的一步 继续往下做的前提 此处省略&#xff0c;想要获取接口创建方式联系 设计 页面布局 按照官网布局 业务操作 注册登…

Linux Ncurses库部分函数使用说明

目录 1. initscr&#xff08;&#xff09;函数 2. endwin&#xff08;&#xff09;函数 3. curs_set()函数 4.noecho()函数 5. keypad()函数 6. start_color()函数 7.init_pair()函数 8.getch()函数 9.move()函数 10.addch()函数 11. refresh()函数 12.inch()函数…

网络协议栈--网络层--IP协议

目录 本节重点网络层IP协议一、 基本概念二、 IP协议报头格式三、网段划分(重要)四、特殊的IP地址五、IP地址的数量限制六、私有IP地址和公网IP地址七、路由八、IP协议全部内容一览图 本节重点 1、理解网络层的作用, 深入理解IP协议的基本原理 2、对整个TCP/IP协议有系统的理解…

llvm后端

SelectionDAGBuilder是LLVM&#xff08;Low Level Virtual Machine&#xff09;编译器中的一个重要组件&#xff0c;它负责将LLVM中间表示&#xff08;Intermediate Representation&#xff0c;IR&#xff09;转换为SelectionDAG&#xff08;选择有向无环图&#xff09;的形式。…

JavaScript进阶

1. 作用域 1.1 局部作用域 1.2 全局作用域 1.3 作用域链 1.4 JS垃圾回收机制&#xff08;闭包做铺垫&#xff09; 1.4.1 什么是垃圾回收机制 1.4.2 内存的声明周期 1.4.3 垃圾回收的算法说明 1.4.3.1 引用计数法 1.4.3.2 标记清除法 1.5 闭包 <!DOCTYPE html> <html …

QTabWidget的tabbar不同方向显示 文字方向设置 图标跟随变化 实现方式 qt控件绘制原理

先来看结果图&#xff1a;&#xff08;参考博客&#xff1a;QTabWidget中tab页文本水平或垂直设置_pyqt tab_widget.settabposition(qtabwidget.west) 字体-CSDN博客&#xff09; 从图中可知&#xff0c;"普通"是qt自己的样式&#xff0c;但是很明显&#xff0c;在垂…

【linux】进程的地址空间

1.代码看现象引入 #include<stdio.h>#include<unistd.h>#include<string.h> #include<stdlib.h>int val100;int main (){ printf("i am father,pid:%d,ppid:%d,val:%d&#xff0c;&val:%p\n",getpid(),getppid(),val,&val);size_t…

Linux:点命令source

相关阅读 Linuxhttps://blog.csdn.net/weixin_45791458/category_12234591.html?spm1001.2014.3001.5482 source命令用于读取一个文件的内容并在当前Shell环境&#xff08;包括交互式Shell或是非交互式Shell&#xff09;执行里面的命令。它被称为点命令是因为命令名source也可…

IIS7/iis8/iis10安装II6兼容模块 以windows2022为例

因安全狗的提示 安全狗防护引|擎安装失败 可能原因是: IIS7及以上版本末安装1IS6兼容模块! .所以操作解决 如下. 在开始菜单中,找到服务器管理器.找到下图的IIS,右键添加角色和功能,找到web服务器的管理工具选项,iis6管理兼容性 打钩并安装. 如下图

自然拼读-组合音(上篇)

自然拼读-组合音 1、元音字母A的二声发音组合 组合音at 注意&#xff1a;“t”是气音&#xff0c;不要太重。 Eg&#xff1a;cat&#xff08;猫&#xff09; fat&#xff08;肥的&#xff09; bat&#xff08;蝙蝠&#xff09; 组合音ap 注意&#xff1a;“p”在尾巴发音…

MRC是谁?- 媒体评级委员会 Media Rating Council

在在线广告的世界里&#xff0c;有许多不同的技术和实践用于提供和衡量广告。对于广告商、出版商和营销人员来说&#xff0c;了解这些技术是如何工作的以及如何有效使用这些技术很重要。在这方面发挥关键作用的一个组织是媒体评级委员会&#xff08;MRC&#xff09;。 1. 了解…

蓝桥杯基础练习详细讲解二(具体代码、解题思路、Python)

试题 基础练习 回文数 提交此题 评测记录 资源限制 内存限制&#xff1a;512.0MB C/C时间限制&#xff1a;1.0s Java时间限制&#xff1a;3.0s Python时间限制&#xff1a;5.0s 问题描述 1221是一个非常特殊的数&#xff0c;它从左边读和从右边读是一样的&#x…

mysql基础3索引

存储引擎 存储引擎就是存储数据、建立索引、更新/查询数据等技术的实现方式 。存储引擎是基于表的&#xff0c;而不是 基于库的&#xff0c;所以存储引擎也可被称为表类型。 1). 建表时指定存储引擎 CREATE TABLE 表名(字段1 字段1类型 [ COMMENT 字段1注释 ] ,......字段n…

Docker进阶:Docker-compose 实现服务弹性伸缩

Docker进阶&#xff1a;Docker-compose 实现服务弹性伸缩 一、Docker Compose基础概念1.1 Docker Compose简介1.2 Docker Compose文件结构 二、弹性伸缩的原理和实现步骤2.1 弹性伸缩原理2.2 实现步骤 三、技术实践案例3.1 场景描述3.2 配置Docker Compose文件3.3 使用 docker-…

【项目管理后台】Vue3+Ts+Sass实战框架搭建二

Vue3TsSass搭建 git cz的配置mock 数据配置viteMockServe 建立mock/user.ts文件夹测试一下mock是否配置成功 axios二次封装解决env报错问题&#xff0c;ImportMeta”上不存在属性“env” 统一管理相关接口新建api/index.js 路由的配置建立router/index.ts将路由进行集中封装&am…

AIGC实战——Transformer模型

AIGC实战——Transformer模型 0. 前言1. T52. GPT-3 和 GPT-43. ChatGPT小结系列链接 0. 前言 我们在 GPT (Generative Pre-trained Transformer) 一节所构建的 GPT 模型是一个解码器 Transformer&#xff0c;它逐字符地生成文本字符串&#xff0c;并使用因果掩码只关注输入字…

海外媒体宣发:十大国外中文网站-大舍传媒

十大国外中文网站 1、欧洲时报 覆盖欧洲且较具影响力的华文媒体 国外中文新闻网站&#xff0c;欧洲时报文化传媒集团旗舰日报《欧洲时报》旗下官方网站&#xff0c;总部设在法国巴黎&#xff0c;创刊于1983年&#xff0c;现已成为唯一发行覆盖全欧、发行量最大、最具影响力的华…

Vue3 上手笔记

1. Vue3简介 2020年9月18日&#xff0c;Vue.js发布版3.0版本&#xff0c;代号&#xff1a;One Piece&#xff08;n 经历了&#xff1a;4800次提交、40个RFC、600次PR、300贡献者 官方发版地址&#xff1a;Release v3.0.0 One Piece vuejs/core 截止2023年10月&#xff0c;最…

STM32最小核心板使用HAL库ADC读取MCU温度(使用DMA通道)

STM32自带CPU的温度数据&#xff0c;需要使用ADC去读取。因此在MX创建项目时如图配置&#xff1a; 模块初始化代码如下&#xff1a; void MX_ADC1_Init(void) {/* USER CODE BEGIN ADC1_Init 0 *//* USER CODE END ADC1_Init 0 */ADC_ChannelConfTypeDef sConfig {0};/* USER…