Servlet---axios框架 ▎路由守卫

前言

在现代Web应用中,前端和后端通常分离,前端使用框架(如Vue.js、React)与后端服务交互。Servlet是Java EE中处理HTTP请求的重要组成部分,能够生成动态Web内容。

Axios是一个基于Promise的HTTP客户端,简化了HTTP请求的发送和响应处理,具有拦截器等优势。路由守卫则在路由跳转前进行权限验证,确保用户只有在符合条件的情况下才能访问特定页面。

路由守卫的必要性体现在以下几点:提升安全性、改善用户体验和保护数据。结合Servlet和Axios,后端负责数据处理,而前端则通过Axios发起请求,并利用路由守卫确保用户访问控制,从而实现一个灵活且安全的Web应用架构。在接下来的内容中,我们将深入探讨如何具体实现这一结合。

🌳Axios安装

第一种:vue项目

使用npm直接安装

npm install axios

第二种:普通项目

引用js文件

<script src="https://cdn.jsdelivr.net/npm/axios/dist/axios.min.js"></script>

🌳Axios使用

一:vue项目引用

  1. vue项目安装axios
  2. 导入axios组件
  3. 设置服务器地址
  4. 将axios挂载在全局

以下代码全是在main.js文件中配置

导入组件

//导入axios

import axios from 'axios';

设置服务器地址

//设置访问服务器地址
axios.defaults.baseURL = "http://127.0.0.1:8088/dormServer/"; 

 http://127.0.0.1:8088/dormServer/  ---->  服务器地址 

挂载全局

 //将 axios 挂载到 vue 全局对象中,并为其指定一个别名  $http是在vue对象中自定义的属性
Vue.prototype.$http = axio

  二:axios常用APl

  1. get:查询数据
  2. post:添加数据
  3. put:修改数据
  4. delete:删除数据
get方法
this.$http.get("api/student?mark=studentList").then((resp) => {//代码块
})

 "api/student?mark=studentList"---->访问的组件地址

注:全称:http://127.0.0.1:8088/dormServer/api/student?mark=studentList,但因为上面已经配置服务器地址,这里就不需要写前面了.若改变服务器地址我们也只需改变上面axios配置的服务器地址

mark=studentList  传回后端的数据

post方法 
this.$http.post("login", "account=" + this.account + "&password=" + this.password).then((resp) => {// 代码块
})

login---->组件地址

"account=" + this.account + "&password=" + this.password-->传回后端数据

🌳axios请求拦截器

//axios 请求拦截,每当我们使用axios框架向后端发送请求时,都会经过拦截器
axios.interceptors.request.use(config => {//为请求头对象,添加 Token 验证的 token 字段config.headers.token = sessionStorage.getItem('token');return config;
})

作用:前端每次和后端交互,axios请求拦截都会执行一次,他可以将秘钥(token)传回后端.

解释:因为前端数据操作有时候需要权限,而token就起到权限的作用,每次访问后端先验证token权限,如果权限足够才可进行下一步操作.而每次访问后端都需要token,所以axios框架做了axios请求拦截,每当前端访问后端就会执行拦截器中代码

🌳axios添加拦截器

// 添加响应拦截器
axios.interceptors.response.use((resp) => { //正常响应拦截if (resp.data.code == 500) {ElementUI.Message({message: resp.data.desc,type: "error"})}if (resp.data.code == 401) {ElementUI.Message({message: resp.data.desc,type: "error"})router.replace("/login");}return resp;
})

作用:每次后端与前端交互,axios添加拦截器都会执行一次,他可以验证后端传回前端的code(状态码)

解释:后端做出的响应(code(状态码),message(解释),Object(数据)),而每次后端向前端的响应,前端都需要判断code,我们就需要在所有的前端组件中写if判断,而axios框架提供添加拦截器,也就是每次后端做出响应,前端最先执行添加拦截器,我们只需要将相似code判断写在其中即可



🌳路由守卫

//路由导航守卫,每当前端发生一次路由跳转时,会自动触发bdforeEach()
rout.beforeEach((to, from, next) => {if (to.path == '/login') {//如果用户访问的登录页,直接放行return next();}else if(to.path == '/enroll'){return next();}else {var account = sessionStorage.getItem("account");if (account == null) {return next("/login");} else {next();}}
})

作用:每次前端网页切换,都会执行一次,验证前端是否登录(前端验证权限)

解释:防止直接访问前端需登录网站,也就是如果这个网站需要登录才可进入,则每次访问我们都需要验证是否登录.如果不是需要登录访问,我们直接放行(例:上面'/login') 



 感谢大家的观看,本次分享就到这里。希望我的内容能够对您有所帮助。创作不易,欢迎大家多多支持,您的每一个点赞都是我持续更新的最大动力!如有不同意见,欢迎在评论区积极讨论,让我们一起学习、共同进步!如果有相关问题,也可以私信我,我会认真查看每一条留言。期待下次再见!

                                       希望路飞的笑容可以治愈努力路途中的你我!

博主vx:Dreamkid05 --->欢迎大家和博主讨论问题 

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

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

相关文章

手机mkv转换mp4:轻松实现视频格式兼容

如今手机已成为我们日常生活中不可或缺的伴侣&#xff0c;而视频文件则是我们享受娱乐、获取信息的重要来源。然而&#xff0c;由于不同设备和平台对视频格式的支持各有不同&#xff0c;我们有时会遇到无法在手机上播放某些视频文件的问题。 mkv是一种常见的视频格式&#xff…

AI赋能奥维云网数字生态大会,瞰见智慧家庭市场新未来

近日&#xff0c;主题为“智无界鉴未来”的“奥维云网2024数字生态大会”在杭州盛大开启。 据「TMT星球」了解&#xff0c;本次大会邀请到了国务院发展研究中心专家做政策解读&#xff0c;得到了中国电子视像行业协会、中国家用电器协会、中国五金制品协会、中国家用电器商业协…

如何使用ssm实现保险业务管理系统设计与实现

TOC ssm131保险业务管理系统设计与实现jsp 绪论 1.1 研究背景 当前社会各行业领域竞争压力非常大&#xff0c;随着当前时代的信息化&#xff0c;科学化发展&#xff0c;让社会各行业领域都争相使用新的信息技术&#xff0c;对行业内的各种相关数据进行科学化&#xff0c;规…

使用Python做一个脚本自动化机器人(二)

刚发现一个好用的Python库DrissionPage&#xff0c;使用该库不区分浏览器&#xff0c;也无需下载driver文件。 import logging from DrissionPage import WebPage from DrissionPage import ChromiumPage,ChromiumOptionsclass BaiduPage():# 创建对象page ChromiumPage()# 访…

【深度学习与NLP】——最全环境配置总指南

目录 一、Anaconda 的环境准备 1.下载和安装 1.1. 下载 1.1.1. 官网下载 1.1.2. 镜像站下载&#xff08;官网下载速度慢可选&#xff09; 1.2. 安装 2. 环境配置 2.1 Windows 平台 2.2 MacOS 和 Linux 平台 3. 环境验证 3.1 Windows 平台 3.2 MacOS 和 Linux 平台 …

漏洞挖掘 | 浅谈一次edusrc文件上传成功getshell

0x1 前言 这里记录一下我在微信小程序挖人社局等一些人力资源和社会保障部信息中心漏洞&#xff0c;人社这类漏洞相对于web应用端的漏洞来讲要好挖很多&#xff0c;里面的WAF过滤等一些验证也少。比如你在开始学习src漏洞挖掘&#xff0c;就可以从微信小程序下手。 一般像这类…

C#为复杂属性提供下拉式编辑框和弹出式编辑框

一.为属性提供编辑类 弹出式和下拉式是如何实现的呢&#xff0c;这需要为属性提供一个专门的编辑类。.Net为我们提供了一个System.Drawing.Design.UITypeEditor类&#xff0c;它是所有编辑类的基类&#xff0c;从他继承出了诸如ColorEditor、FontEditor的类&#xff0c;因此我们…

B. 不知道该叫啥

题意&#xff1a;求长度为n的数列方案数&#xff0c;数列需满足两个条件&#xff1a;1.均为正整数。2.相邻两个数乘积不能超过m 思路&#xff1a;考虑dp。 设表示前i个点以j结尾的方案数&#xff0c;则有&#xff1a; 可以得出&#xff1a; 双指针数论分块解决。把每个m/i相…

基于STM32开发的智能水箱液位控制系统

目录 引言环境准备工作 硬件准备软件安装与配置系统设计 系统架构硬件连接代码实现 系统初始化液位监测与控制水泵控制与状态显示Wi-Fi通信与远程监控应用场景 家庭用水系统的液位控制工业水箱的液位管理常见问题及解决方案 常见问题解决方案结论 1. 引言 智能水箱液位控制系…

一种简单视觉处理

背景 网友说他有个芯片的图&#xff0c;识别不出管脚的位置 俺就写了一个代码&#xff0c;识别管脚的位置&#xff0c;先看结果。 代码 识别图片&#xff0c;并显示结果&#xff0c;对于结果位置使用红色标出 PT pt new PT();pt.Find(bmp);Bitmap bmp_tmp new Bitmap(bmp);…

GPT-4、Claude 3 Opus 和 Gemini 1.0 Ultra 挑战控制工程的新领域

介绍 论文地址&#xff1a;https://arxiv.org/abs/2404.03647 近年来&#xff0c;GPT-4、Claude 3 Opus 和 Gemini 1.0 Ultra 等大规模语言模型&#xff08;LLM&#xff09;迅速发展&#xff0c;展示了它们解决复杂问题的能力。LLM 的这些发展在多个领域都有潜在的应用前景。…

Adobe After Effects的插件--------CC Ball Action

CC Ball Action是粒子效果器,其将2D图层变为一个个由3D小球构成的图层。它是AE内置的3D插件。 使用条件 使用该插件的图层需是2D图层。 我们以一张图片素材为例: 给图片图层添加CC Ball Action效果控件,然后新建一个摄像机(利用摄像机旋转、平移、推拉工具,方便在各个角…

探究Python中的函数与模块

一、引言 随着程序的复杂度增加&#xff0c;代码的组织与重用性就显得尤为重要。为了编写更加结构化、易于维护的代码&#xff0c;函数和模块的使用是必不可少的。 函数是Python中最基本的代码组织形式&#xff0c;通过将代码封装成函数&#xff0c;我们可以实现代码的重用、…

C++不同数据类型连接成一个字符串

在C中数据连接的方式使用号进行连接。 1.都是字符型时直接使用连接几个字符串&#xff1b; 2.不是字符类型时&#xff0c;要用to_string函数转换后再连接。

【C语言】浮点型数据在内存中的储存

浮点型数据在内存中的储存 文章目录 浮点型数据在内存中的储存引例概念提出浮点型数据储存规定对于有效数字M的特别规定对于指数E的特别规定指数E的储存指数E的读取 利用规则解释原因 在之前学习过整形数据在内存中的储存后&#xff0c;浮点型数据在内存中的储存又会怎样呢&…

android 实现简易音乐播放器

音乐App 源代码 &#xff1a; 简易音乐APP源代码 1、简介 一个简易的音乐APP&#xff0c;主要练习对四大组件的应用。感兴趣的可以看看。 播放界面如下&#xff1a; 歌曲列表界面如下&#xff1a; 项目结构如下&#xff1a; 接下来将对代码做详细介绍&#xff1a; 2、Musi…

Leetcode876. 链表的中间结点(双指针)

题目描述 给你单链表的头结点 head &#xff0c;请你找出并返回链表的中间结点。 如果有两个中间结点&#xff0c;则返回第二个中间结点。 示例&#xff1a; 示例 1&#xff1a; 输入&#xff1a;head [1,2,3,4,5] 输出&#xff1a;[3,4,5] 解释&#xff1a;链表只有一个中…

【蓝桥杯冲刺省一,省一看这些就够了-C++版本】蓝桥杯C++STL及相关练习题

蓝桥杯历年省赛真题 点击链接免费加入题单 STL map及其函数 map<key,value> 提供一对一的数据处理能力&#xff0c;由于这个特性&#xff0c;它完成有可能在我们处理一对一数据的时候&#xff0c;在编程上提供快速通道。map 中的第一个值称为关键字(key)&#xff0c;…

python 多进程 多线程 程序

这个纯粹为了增加理解&#xff0c;将很多比较好的资料进行归纳总结。 1、理论汇总 并发和并行 image.png 多进程和多线程 同步和异步 同步&#xff1a;所谓同步&#xff0c;就是在发出一个功能调用时&#xff0c;在没有得到结果之前&#xff0c;该调用就不会返回。 异步…

C语言刷题日记(附详解)(2)

一、有理数加法 输入格式&#xff1a; 输入在一行中按照a1/b1 a2/b2的格式给出两个分数形式的有理数&#xff0c;其中分子和分母全是整形范围内的正整数。 输出格式&#xff1a; 在一行中按照a/b的格式输出两个有理数的和。注意必须是该有理数的最简分数形式&#xff0c;若…