网站备案核网页界面设计的主要内容

news/2025/10/8 18:37:02/文章来源:
网站备案核,网页界面设计的主要内容,icp备案查询工具,cms网站怎么做前后端分离的开发中#xff0c;用户http请求应用服务的接口时, 如果要求检测该用户是否已登录。可以实现的方法有多种#xff0c; 本示例是通过aop 的方式实现#xff0c;简单有效。 约定#xff1a;前端http的post 请求 export async function request(url,data) {const … 前后端分离的开发中用户http请求应用服务的接口时, 如果要求检测该用户是否已登录。可以实现的方法有多种 本示例是通过aop 的方式实现简单有效。 约定前端http的post 请求 export async function request(url,data) {const config {method: POST,headers: {Content-Type: application/json},}//每个请求的参数要求附加sessionid, 该sessionid 是登录时生成的const paramsData Object.assign(data,{sessionid:globalData.sessionID || })config.body JSON.stringify(paramsData)try {const res await window.fetch(url, config)if(res.status!200){return {status: res.status,data:{},headers: res.headers,url: res.url,statusText:res.statusText}}return {status: res.status,data:await res.json(),headers: res.headers,url: res.url,}} catch (err) {return {status: 404,data:{},headers: res.headers,url: res.url,statusText:fetch error:err.toString()}}} 1、在pom.xml 引用 dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-aop/artifactId/dependency 2、创建插入标记 Target({ElementType.METHOD}) // 只在对象方法上标记 Retention(RetentionPolicy.RUNTIME) //运行时反射 public interface Interceptor {String additionalMessage() default ; } 3、实现切入类 Aspect Component Slf4j public class LoggingAspect {Autowiredpublic StringRedisTemplate redisTemplatelocate;private T T getSessionID(Object postData,ClassT clazz){return (T)postData;}Around(annotation(Interceptor)) //有标记的地方将实现以下和切入public Object logExecutionTime(ProceedingJoinPoint proceedingJoinPoint) throws Throwable {//获取切入方法的参数就是前部请求的json数据Object[] args proceedingJoinPoint.getArgs();//获取其中的sessionid// requestBase 实体类只有一个参sessionid , 做为其它实体类的父类用于接收接口上传的参数。RequestBase requestBasegetSessionID(args[0],RequestBase.class);log.info(sessionid:{},requestBase.getSessionid());//检测该sessionid 是否存在(redis)if (requestBase.getSessionid()null || !redisTemplatelocate.hasKey(requestBase.getSessionid())) {//用户未登陆throw new Exception(用户未登陆);}//获取 request 和 responseServletRequestAttributes servletRequestAttributes ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes());log.info(request:{},servletRequestAttributes.getRequest());log.info(response:{},servletRequestAttributes.getResponse());MethodSignature methodSignature (MethodSignature) proceedingJoinPoint.getSignature();String className methodSignature.getDeclaringType().getSimpleName();String methodName methodSignature.getMethod().getName();Instant startTime Instant.now();//实行被切入的方法Object result proceedingJoinPoint.proceed();String additionalMessage methodSignature.getMethod().getAnnotation(Interceptor.class).additionalMessage();long elapsedTime Duration.between(startTime, Instant.now()).toMillis();log.info(Class Name: {}, Method Name: {}, Additional Message: {}, Elapsed Time: {}ms,className, methodName, additionalMessage, elapsedTime);log.info(Result: {}, result);return result;} } 4 建立api接口在需要检测的方法上加入Interceptor 就完成切入的检测。 RestController Slf4j public class ExampleController {PostMapping(/t1)Interceptor(additionalMessage 要求检测登录)ResponseBodypublic ResponseEntityRequestBase getData(RequestBody DataRequest req) {try {return new ResponseEntity(req, HttpStatus.OK);} catch (Exception e) {return new ResponseEntity(null, HttpStatus.BAD_REQUEST);}} } 5 实体类 Data public class DataRequest extends RequestBase {private String name; }Data public class RequestBase{private String sessionid; }该方法只适用于少部分需要检测而大部份不需要检测的情况下如果整个包都需要检测的利用execution方 法实现 Pointcut(execution(public * com.example.myapp..*.*(..))) Aspect Component Slf4j public class LoginExecution {Autowiredpublic StringRedisTemplate redisTemplatelocate;private T T getSessionID(Object postData,ClassT clazz){return (T)postData;}//切入点 com.aop.ttt 下的所有public 方法Pointcut(execution(public * com.aop.ttt..*.*(..)))public void publicMethods() {}Around(publicMethods())public Object logExecutionTime(ProceedingJoinPoint joinPoint) throws Throwable {//获取切入方法的参数就是前部请求的json数据Object[] args joinPoint.getArgs();//获取其中的sessionid// requestBase 实体类只有一个参sessionid , 做为其它实体类的父类用于接收接口上传的参数。RequestBase requestBasegetSessionID(args[0],RequestBase.class);log.info(sessionid:{},requestBase.getSessionid());//检测该sessionid 是否存在(redis)if (requestBase.getSessionid()null || !redisTemplatelocate.hasKey(requestBase.getSessionid())) {//用户未登陆throw new Exception(用户未登陆);}//获取 request 和 responseServletRequestAttributes servletRequestAttributes ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes());log.info(request:{},servletRequestAttributes.getRequest());log.info(response:{},servletRequestAttributes.getResponse());MethodSignature methodSignature (MethodSignature) joinPoint.getSignature();String className methodSignature.getDeclaringType().getSimpleName();String methodName methodSignature.getMethod().getName();Instant startTime Instant.now();//实行被切入的方法Object result joinPoint.proceed();long elapsedTime Duration.between(startTime, Instant.now()).toMillis();log.info(Class Name: {}, Method Name: {}, Elapsed Time: {}ms,className, methodName, elapsedTime);log.info(Result: {}, result);return result;} }

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

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

相关文章

实用指南:go get下载三方库异常

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

微信机器人制作教程+源码

微信机器人制作教程+源码,开发微信机器人/个微/WTAPI框架,微信个人号二次开发 微信个人号二次开发,是完整的第三方服务平台,并基于IPAD协议8.0.57开发出的最新个微API服务框架。 你可以 通过API 实现 个性化微信功…

基于 Rust 的英文数字验证码识别系统实现

一、引言 验证码(CAPTCHA,Completely Automated Public Turing test to tell Computers and Humans Apart)是一种防止恶意自动化访问的技术,常见于网站注册、登录等场景。 通过随机字符、干扰线、扭曲等方式,验证…

做外包的网站山东住房与城乡建设网站

JsonDB项目介绍JsonDB是一个由原生PHP实现的文件数据库,JsonDB只有一个文件,如果你不想使用庞大的数据库系统,而且只需要单机功能,那么JsonDB就是你最佳的选择。 JsonDB只有初始化写入和查询功能,所以适用于比较固定的,数据量不大…

使用 Fortran 实现英文数字验证码识别系统

一、引言 验证码(CAPTCHA)是一种防止自动化程序滥用网络资源的安全机制。 常见的验证码由英文字母与数字组成,并通过随机扭曲、噪声、干扰线等方式防止机器识别。 更多内容访问ttocr.com或联系1436423940 Fortran(…

力扣热题100之翻转二叉树 - 详解

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

高校后勤网站建设网站多语言

一、背景 笔者已介绍过在Qt 5.15.x中使用MinGW(8.10版本)编译并集成Crypto 8.8.0。 但是该编译出来的库(.a和.dll)不适用MSVC(2019版本)构建环境,需要重新编译(.lib或和.dll&#xf…

初来乍到,发篇博客试试功能

初来乍到,发篇博客试试功能本人大二,努力学编程中!!!

国庆集训游记

前言 为什么我的假期比别人少五天? \(\rm Day \, 0\) 假期前两天把除了英语作业外的所有作业写完了,因为英语老师说可以不写。 下午报道。 饭比二南好吃。 厕所有门!!!!! \(\rm Day \, 1\) 上午讲了二分,黄绿为…

P11967 [GESP202503 八级] 割裂

解题思路 问题分析 我们需要找到满足以下条件的节点:删除该节点后,所有好点对仍然连通删除该节点后,坏点对不连通关键思路好点对连通性分析:如果一个节点在某个好点对的路径上,删除它会导致该好点对不连通因此,能…

LeetCode热题100-74题、数据流的中位数

LeetCode热题100-74题、数据流的中位数中位数是有序整数列表中的中间值。如果列表的大小是偶数,则没有中间值,中位数是两个中间值的平均值。例如 arr = [2,3,4] 的中位数是 3 。 例如 arr = [2,3] 的中位数是 (2 + 3…

用 Ada 实现英文数字验证码识别

一、引言 验证码(CAPTCHA)用于区分人类用户与自动化脚本程序,是现代网站和安全系统的重要组成部分。 常见验证码包含英文和数字字符,并带有随机噪声、扭曲、颜色干扰等元素。 更多内容访问ttocr.com或联系14364239…

找做网站做网站背景图片

在这篇文章中 创建API帮助页面将帮助页面添加到现有项目添加API文档在敞篷下下一步作者:Mike Wasson 创建Web API时,创建帮助页面通常很有用,以便其他开发人员知道如何调用API。您可以手动创建所有文档,但最好尽可能自动生成。 为…

【sgImportBtn】自定义组件:导入按钮(支持上下文关联导出菜单,配置下载导入Excel模板按钮命令、样式、图标路径等) - 实践

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

WPS word 已有多级列表序号 - 指南

WPS word 已有多级列表序号 - 指南2025-10-08 18:17 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !impo…

佳简几何工业设计有限公司一个新网站关键词怎么做SEO优化

开发的工作主要是写代码, 有考虑过使用代码写代码, 使用代码分析和改进代码吗? JavaParser 就可以帮你用来处理Java 代码的这些功能。 Java Parser 的介绍 Java Parser是一个用于解析和分析Java源代码的开源工具。它提供了一个API接口&…

数据增强操作

如何对图片进行处理? import os import cv2 from glob import glob import albumentations as A from tqdm import tqdm# ==== 配置区域 ==== # 原始数据 images_dir = "./train/images" labels_dir = &quo…

HTML5实现简洁的端午节节日网站源码 - 实践

HTML5实现简洁的端午节节日网站源码 - 实践pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "…

Visio的图片,粘到word中显示不全,右边和下面显示不出来

在visio中画一个图如下: 粘贴在word中,右边和下边显示不出来.调整尺寸,还是显示不出来.如下.怎么解决呢?出现问题后,重启电脑,很神奇吧? 遇到多次了.反正就是这么解决的!

25国庆总结

总结 这个国庆我们打了不少的 CF、AT、还有联考,也听了两个同学的复习讲课。总的来说感觉还行,复习有一定的效果,然后感觉就是 CF、AT 还是打少了,有的简单题思维难度高一些就会被卡好一会。但是在这段时间我也在思…