SpringMVC核心、两种视图解析方法、过滤器拦截器 “ / “ 的意义
SpringMVC的执行流程
1. Spring MVC 的视图解析机制
Spring MVC 的核心职责之一是将数据绑定到视图并呈现给用户。它通过 视图解析器(View Resolver) 来将逻辑视图名称解析为具体的视图文件(如 HTML、JSP)。
核心流程
-
Controller 处理请求:
Controller
方法可以通过返回 逻辑视图名称 或ModelAndView
对象来决定视图和数据。
-
视图解析器解析视图名称:
- 视图名称由
ViewResolver
解析为实际视图文件路径。
- 视图名称由
-
模型数据绑定到视图:
- 数据由
Model
或ModelAndView
提供,Spring MVC 会将数据传递给视图引擎渲染。
- 数据由
常见视图解析器
-
Thymeleaf 视图解析器
- Spring Boot 默认集成了 Thymeleaf,只需配置模板路径:
spring.thymeleaf.prefix=classpath:/templates/
spring.thymeleaf.suffix=.html
-
JSP 视图解析器
- 通过
InternalResourceViewResolver
或者xml配置文件配置: -
@Bean public InternalResourceViewResolver jspViewResolver() {InternalResourceViewResolver resolver = new InternalResourceViewResolver();resolver.setPrefix("/WEB-INF/views/");resolver.setSuffix(".jsp");return resolver; }
- 通过
2. Model
和 ModelAndView
的作用与区别
2.1 Model
的作用
- 职责:仅负责传递数据。
- 特点:
Model
是一个数据容器。- 不能直接设置视图名称。
- Spring 自动将
Model
中的数据绑定到视图。
- 常用场景:
- 数据简单,视图名称固定,返回视图逻辑名称。
@RequestMapping("/exampleModel")
public String example(Model model) {model.addAttribute("message", "Hello from Model");return "viewName"; // 返回逻辑视图名称
}
2.2 ModelAndView
的作用
- 职责:同时封装视图名称和数据。
- 特点:
- 既可以设置视图名称,也可以传递数据。
- 可以动态调整视图名称和数据,灵活性更高。
- 常用场景:
- 视图名称需要动态确定,或者需要同时设置多个数据。
@RequestMapping("/exampleModelAndView")
public ModelAndView exampleModelAndView() {ModelAndView mav = new ModelAndView();mav.setViewName("viewName"); // 设置视图名称mav.addObject("message", "Hello from ModelAndView");return mav;
}
2.3 Model
与 ModelAndView
的对比
特性 | Model | ModelAndView |
---|---|---|
职责 | 传递数据 | 传递数据并设置视图名称 |
视图名称设置 | 通过返回值设置 | 通过 setViewName 设置 |
灵活性 | 较低 | 较高 |
适用场景 | 固定视图名称,数据传递较简单的场景 | 动态视图名称或需要同时传递多个数据的场景 |
3. Model
和 ModelAndView
配合视图解析的用法
以下分别说明 Thymeleaf 和 JSP 的用法。
3.1 配合 Thymeleaf
(1)使用 Model
通过 Model
传递数据,并返回视图的逻辑名称。
@RequestMapping("/thymeleaf/model")
public String useModel(Model model) {model.addAttribute("message", "Hello from Model");model.addAttribute("title", "Thymeleaf Example");return "example"; // 解析为 /templates/example.html
}
对应 Thymeleaf 模板文件 (example.html
):
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head><title th:text="${title}">Default Title</title>
</head>
<body><h1 th:text="${message}">Default Message</h1>
</body>
</html>
(2)使用 ModelAndView
通过 ModelAndView
同时设置视图名称和数据。
@RequestMapping("/thymeleaf/modelAndView")
public ModelAndView useModelAndView() {ModelAndView mav = new ModelAndView();mav.setViewName("example"); // 解析为 /templates/example.htmlmav.addObject("message", "Hello from ModelAndView");mav.addObject("title", "Thymeleaf Example with ModelAndView");return mav;
}
3.2 配合 JSP
(1)使用 Model
通过 Model
传递数据,并返回视图的逻辑名称。
@RequestMapping("/jsp/model")
public String useModel(Model model) {model.addAttribute("message", "Hello from Model");model.addAttribute("title", "JSP Example");return "example"; // 解析为 /WEB-INF/views/example.jsp
}
对应 JSP 文件 (example.jsp
):
<!DOCTYPE html>
<html>
<head><title>${title}</title>
</head>
<body><h1>${message}</h1>
</body>
</html>
(2)使用 ModelAndView
通过 ModelAndView
同时设置视图名称和数据。
@RequestMapping("/jsp/modelAndView")
public ModelAndView useModelAndView() {ModelAndView mav = new ModelAndView();mav.setViewName("example"); // 解析为 /WEB-INF/views/example.jspmav.addObject("message", "Hello from ModelAndView");mav.addObject("title", "JSP Example with ModelAndView");return mav;
}
3.3 总结
特性 | Thymeleaf | JSP |
---|---|---|
视图路径配置 | classpath:/templates/ | /WEB-INF/views/ |
支持数据传递 | 支持 Model 和 ModelAndView | 支持 Model 和 ModelAndView |
模板引擎风格 | 现代化 HTML5 | 传统 Java 模板 |
性能 | 高效 | 较低 |
4. 综合总结
4.1 Model
和 ModelAndView
的选择
- 简单场景:使用
Model
配合返回视图逻辑名称。 - 复杂场景:使用
ModelAndView
同时设置视图名称和数据。
4.2 配合视图解析器
- Thymeleaf 和 JSP 均支持
Model
和ModelAndView
,用法完全一致。 - 如果是新项目,推荐使用 Thymeleaf。
4.3 推荐实践
- 优先使用
Model
和逻辑视图名称返回方式,更简洁清晰。 - 在需要动态调整视图名称或复杂数据传递时,使用
ModelAndView
。
过滤器、拦截器、路径匹配规则与应用
以下是关于 过滤器(Filter) 和 拦截器(Interceptor) 的核心内容,以及路径匹配中 /
、/*
和 /**
的使用规则和场景总结。
1. 过滤器(Filter)
1.1 定义
- 属于 Servlet 规范的一部分,运行在 Servlet 容器中。
- 用于对所有 HTTP 请求和响应进行预处理和后处理。
1.2 特点
- 作用范围广:可以作用于动态资源(如 API 请求)和静态资源(如 HTML、CSS、JS)。
- 生命周期:由 Servlet 容器管理,启动时初始化过滤器,容器销毁时释放过滤器。
- 使用场景:适用于跨域处理、编码设置、访问日志记录、请求参数过滤等基础功能。
1.3 示例
- 典型实现:
@WebFilter("/*") public class MyFilter implements Filter {@Overridepublic void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)throws IOException, ServletException {System.out.println("Filter: Before processing request");chain.doFilter(request, response); // 执行后续逻辑System.out.println("Filter: After processing request");} }
2. 拦截器(Interceptor)
2.1 定义
- 属于 Spring 框架的一部分,运行在 Spring MVC 的
DispatcherServlet
内部。 - 用于拦截由 Spring 处理的动态资源(如控制器方法)。
2.2 特点
- 作用范围窄:仅作用于 Spring MVC 控制的请求(动态资源)。
- 生命周期:由 Spring 容器管理,在 Spring 启动时加载,关闭时销毁。
- 使用场景:适用于业务权限校验、登录校验、动态数据封装等业务逻辑。
2.3 示例
-
典型实现:
public class MyInterceptor implements HandlerInterceptor {@Overridepublic boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)throws Exception {System.out.println("Interceptor: Before handling request");return true; // 返回 false 会中断请求}@Overridepublic void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView)throws Exception {System.out.println("Interceptor: After handling request");}@Overridepublic void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex)throws Exception {System.out.println("Interceptor: After rendering view");} }
-
拦截器注册:
@Configuration public class WebConfig implements WebMvcConfigurer {@Overridepublic void addInterceptors(InterceptorRegistry registry) {registry.addInterceptor(new MyInterceptor()).addPathPatterns("/api/**") // 拦截所有 /api 的请求.excludePathPatterns("/static/**"); // 排除静态资源} }
3. 过滤器与拦截器的区别
特性 | 过滤器(Filter) | 拦截器(Interceptor) |
---|---|---|
作用范围 | 全局,包含静态资源和动态资源 | 仅作用于 Spring MVC 处理的动态资源 |
触发时机 | 在 DispatcherServlet 之前运行 | 在 DispatcherServlet 内部运行 |
适用场景 | 跨域、编码设置、日志记录、IP 限制等基础功能 | 登录校验、权限校验、业务逻辑处理等 |
生命周期管理 | 由 Servlet 容器管理 | 由 Spring 容器管理 |
实现方式 | 实现 Filter 接口 | 实现 HandlerInterceptor 接口 |
路径匹配能力 | 通过 /* 等规则匹配所有请求路径 | 支持 /** ,匹配所有路径,包括多级子路径 |
静态资源支持 | 支持静态资源(如 HTML、CSS、JS) | 不支持静态资源,只作用于动态请求 |
4. 路径匹配规则与应用
4.1 匹配规则
规则 | 匹配范围 | 适用场景 |
---|---|---|
/ | 仅匹配根路径 / | 网站首页、主路径请求 |
/* | 匹配当前路径下的一级子路径 | 静态资源过滤、一级子路径匹配 |
/** | 匹配当前路径及其所有层级子路径 | 拦截器配置、递归匹配所有子路径 |
5. 综合推荐
-
过滤器(Filter):
- 如果需要对所有请求(包括静态资源)进行操作,使用
/*
。 - 常见场景:日志记录、编码设置、跨域处理。
- 如果需要对所有请求(包括静态资源)进行操作,使用
-
拦截器(Interceptor):
- 如果需要对动态请求(如 API 请求)进行操作,使用
/**
。 - 常见场景:登录校验、权限控制、封装业务逻辑。
- 如果需要对动态请求(如 API 请求)进行操作,使用
-
路径匹配规则:
/
:适用于根路径请求。/*
:适用于当前路径的一级子路径。/**
:适用于所有子路径的递归匹配。
相关文章:
SpringMVC核心、两种视图解析方法、过滤器拦截器 “ / “ 的意义
SpringMVC的执行流程 1. Spring MVC 的视图解析机制 Spring MVC 的核心职责之一是将数据绑定到视图并呈现给用户。它通过 视图解析器(View Resolver) 来将逻辑视图名称解析为具体的视图文件(如 HTML、JSP)。 核心流程 Controlle…...
ubuntu快速入门
1.进入某个文件夹 cd workspace/2.tab自动补全 3.列出当前文件夹所有文件 ls列出所有文件包括隐藏文件 ls -a 4.创建文件夹 mkdir linuxLearn 5.创建文件 gedit command.sh在commmand.sh键入 echo hello echo hi? echo how are you? PS:touch hello.txt(也可以创建新…...
HarmonyOS NEXT应用开发实战:一分钟写一个网络接口,JsonFormat插件推荐
在开发鸿蒙操作系统应用时,网络接口的实现往往是一个繁琐且重复的过程。为了提高开发效率,坚果派(nutpi.net)特别推出了一个非常实用的插件——JsonFormat。这款插件的主要功能是将JSON格式的数据直接转换为arkts的结构定义,让我们在编写接口…...
光谱相机与普通相机的区别
一、成像目的 普通相机:主要目的是记录物体的外观形态,生成人眼可见的、直观的二维图像,重点在于还原物体的形状、颜色和纹理等视觉特征,以供人们进行观赏、记录场景或人物等用途。例如,拍摄旅游风景照片、人物肖像等…...
贝叶斯神经网络(Bayesian Neural Network)
最近在研究贝叶斯神经网络,一些概念一直搞不清楚,这里整理一下相关内容,方便以后查阅。 贝叶斯神经网络(Bayesian Neural Network) 贝叶斯神经网络(Bayesian Neural Network)1. BNN 的核心思想2. BNN 的优化目标3. BNN 的结构与特点4. BNN 的训练过程5. BNN 的优缺点6. …...
使用FFmpeg进行拉流和推流操作
FFmpeg是一款强大的多媒体处理工具,可以用于视频的录制、转换、推流和拉流等操作。下面将详细介绍如何使用FFmpeg进行拉流和推流操作。 1. FFmpeg推流操作 推流是将本地的音视频流推送到流媒体服务器上,例如主播将本地电脑上的画面推流到直播平台的流媒…...
flutter插件开发-ios
flutter插件开发是一个重要的技能,拓展flutter与原生的通信,将一些公用的东西封装,给不同的项目使用。 阅读前置: flutter基本通道调用 objective-c基础语法 ios项目基础知识 目录 1、创建一个插件项目2、项目结构3、编写原生代码…...
【代码随想录|完全背包问题】
518.零钱兑换|| 题目链接:518. 零钱兑换 II - 力扣(LeetCode) 这里求的是组合数,就是不强调元素排列的顺序,211和121是同一个数那种,要先遍历物品,这样的话我算出来的每个值才是按顺序121&…...
xss csrf怎么预防?
一、XSS(跨站脚本攻击)预防 XSS 是指攻击者向目标网站注入恶意脚本,从而在用户浏览器中执行。 1. 输入过滤 清理用户输入: 拦截或清理HTML特殊字符(如 <, >, , ", &)。使用安全库&#x…...
黑神话悟空游戏鼠标光标使用教程与下载
效果图: 鼠标光标特点 这套鼠标光标的设计灵感来源于《黑神话:悟空》游戏中的角色和元素,具有以下特点: • 主题鲜明:光标设计紧扣游戏主题,采用了游戏中的元素,让玩家在使用电脑时也能感受到…...
<数据集>芝麻作物和杂草识别数据集<目标检测>
数据集下载链接 <数据集>芝麻作物和杂草识别数据集<目标检测>https://download.csdn.net/download/qq_53332949/90181548数据集格式:VOCYOLO格式 图片数量:1300张 标注数量(xml文件个数):130…...
实测数据处理(CS算法处理:可斜视)——SAR成像算法系列(十一)
系列文章目录 《SAR学习笔记-SAR成像算法系列(一)》 《线性调频变标算法(CSA)-SAR成像算法系列(四)》 文章目录 前言 一、算法流程 1.1、回波信号生成 1.2、CS处理 1.3、距离脉压 1.4、方位脉压 1.5…...
【强化学习入门笔记】 2.4 时序差分算法
本系列为学习赵世钰老师的《强化学习的数学原理》所作的学习笔记. 本节我们将介绍强化学习中的蒙特卡洛方法. 2.4.1 Robbins-Monro算法 Robbins-Monro算法是一种随机近似方法,通过迭代的方式求解非线性方程。 假设我们要求解: g ( w ) 0 g(w)0 g(w)0, 但是我们…...
Scrapy数据解析+保存数据
Scrapy数据解析保存数据 目录 1.数据解析 2.基于item存放数据并提交给管道 3.用txt文件来保存数据 今天我们需要爬取B站数据并保存到txt文件里面。 我们先打开B站, 然后点击热门, 进去之后再点击排行榜: 我们打开F12后, 可以看到, 我们想要的请求, 轻而易举的就可以拿到(…...
Redis--缓存穿透、击穿、雪崩以及预热问题(面试高频问题!)
缓存穿透、击穿、雪崩以及预热问题 如何解决缓存穿透?方案一:缓存空对象方案二:布隆过滤器什么是布隆过滤器?优缺点 方案三:接口限流 如何解决缓存击穿问题?方案一:分布式锁方案一改进成双重判定…...
【Python高级353】python实现多线程版本的TCP服务器
前面学了了套接字编程、tcp服务端客户端开发、面向对象版的服务端客户端、带有端口复用的服务端。 这里使用多线程开发多任务版的服务端 多任务版本的TCP服务器 来一个客户,就为其创建一个线程 import socket import threadingclass WebServer:# 3、定义一个__ini…...
【Pandas】pandas Series to_period
Pandas2.2 Series Conversion 方法描述Series.astype用于将Series对象的数据类型转换为指定类型的方法Series.convert_dtypes用于将 Series 对象的数据类型智能地转换为最佳可能的数据类型的方法Series.infer_objects用于尝试推断 Series 中对象(object࿰…...
深度学习领域车辆识别与跟踪
深度学习中车辆识别是一个广泛应用的领域,它涵盖了从车辆检测到车型识别的多个方面。以下是对深度学习中车辆识别与车辆相关内容的详细探讨: 一、车辆检测 车辆检测是车辆识别中的基础任务,其目标是在图像或视频中准确地定位出车辆的位置。…...
数学建模 绘图 图表 可视化(2)
文章目录 前言柱形图条形图克利夫兰点图系列坡度图南丁格尔玫瑰图径向柱图极坐标图词云图总结参考资料 前言 承接上期 数学建模 绘图 图表 可视化(1)的总体描述,这期我们继续跟随《Python 数据可视化之美 专业图表绘制指南》步伐来学习其中l…...
vue源码分析(十)—— 生命周期
文章目录 前言一、关键方法 callHook二、详细的钩子函数说明1.beforeCreate和create2.beforeMount & mounted注意点组件(非根组件)的渲染节点(1)invokeInsertHook函数(2)insert方法(3&#…...
[创业之路-222]:波士顿矩阵与GE矩阵在业务组合选中作用、优缺点比较
目录 一、波士顿矩阵 1、基本原理 2、各象限产品的定义及战略对策 3、应用 4、优点与局限性 二、技术成熟度模型与产品生命周期模型的配对 1、技术成熟度模型 2、产品生命周期模型 3、技术成熟度模型与产品生命周期模型的配对 三、产品生命周期与产品类型的对应关系 …...
# 【超全面了解鸿蒙生命周期】-生命周期补充
【超全面了解鸿蒙生命周期】-生命周期补充 鸿蒙所有的生命周期函数梳理 文章目录 【超全面了解鸿蒙生命周期】-生命周期补充前言一、AbilityStage的生命周期二、ExtensionAbility卡片生命周期三、Web组件常用生命周期 前言 本文是继之前写的生命周期函数梳理的进一步补充&…...
sentinel-请求限流、线程隔离、本地回调、熔断
请求限流:控制QPS来达到限流的目的 线程隔离:控制线程数量来达到限流的目录 本地回调:当线程被限流、隔离、熔断之后、就不会发起远程调用、而是使用本地已经准备好的回调去提醒用户 熔断:熔断也叫断路器,当失败、或者…...
unplugin-vue-router 的基本使用
1. 前言 在Vue3开发过程中,每次创建新的页面都需要注册路由,需要在src/router.ts中新增页面的路径,并将URL路径映射到组件中,如下所示: import { createMemoryHistory, createRouter } from vue-routerimport HomePage…...
[Leetcode] 最大子数组和 [击败99%的解法]
解法1: 暴力解法 遍历每个元素,从它当前位置一直加到最后,然后用一个最大值来记录全局最大值。 代码如下: class Solution {public int maxSubArray(int[] nums) {long sum, max nums[len-1];for (int i0; i<nums.length;…...
SSRF服务端请求Gopher伪协议白盒测试
前言 是什么SSRF? 这个简单点说就是 服务端的请求伪造 就是这个如果是个 请求图片的网站 他的目的是请求外部其他网站的 图片 但是 SSRF指的是让他请求本地的图片 再展示出来 请求的是他的服务器上的图片 SSRF(Server-Side Request Forgery:服务器端请求伪造) …...
[2029].第6-06节:MyISAM引擎中的索引与 InnoDB引擎中的索引对比
所有博客大纲 后端学习大纲 MySQL学习大纲 1.MyISAM索引: 1.1.B树索引适用存储引擎: 1.B树索引适用存储引擎如下表所示: 2.即使多个存储引擎都支持同一种类型的B树索引,但它们的实现原理也是不同的 Innodb和MyISAM默认的索引是B…...
WOFOST作物模型(3):(本地化校准)优化PCSE模型中的参数
目录 一、准备自己的LAI观测数据二、优化参数三、损失函数四、NLOPT优化五、优化结果可视化一、准备自己的LAI观测数据 在进行田间实测后,得到自己的LAI观测数据 在程序这个地方输入自己的LAI采样日期和观测值 二、优化参数 这里主要选择了TDWI(Total Dry Weight at ger…...
如何修改pip全局缓存位置和全局安装包存放路径
使用场景: 在默认情况下,pip 会将安装的包存放在 Python 环境的 site-packages 目录下,会使用到系统盘的内存。 当遇到系统盘的内存很小的时候,需要修改pip的全局缓存位置和全局安装包存放路径,可以极大的节省系统盘内存 详细步骤ÿ…...
ZooKeeper注册中心实现
具体步骤 安装ZooKeeper(启动端口占用,2181:客户端,8080:管理端)引入客户端依赖实现注册中心接口SPI补充ZooKeeper注册中心 引入依赖 <!-- zookeeper --> <dependency><groupId>org.a…...
PyTorch快速入门教程【小土堆】之DataLoader的使用
视频地址DataLoader的使用_哔哩哔哩_bilibili dataset数据集,相当于一副扑克,dataloader数据加载器相当于我们的手,选择摸几张牌,怎么摸牌 import torchvision# 准备的测试数据集 from torch.utils.data import DataLoader from …...
khadas edge2安装ubuntu22.04与ubuntu20.04 docker镜像
khadas edge2安装ubuntu22.04与ubuntu20.04 docker镜像 一、资源准备1.1 镜像文件1.2 刷机工具1.3 ubuntu20.04 docker镜像(具备demon无人机所需各种驱动) 二、开始刷机(安装ubuntu22.04系统)2.1 进入刷机状态2.2 刷机 三、docker…...
大数据面试笔试宝典之Kafka面试
1.Kafka 如何实现高吞吐率 Kafka 如何实现高吞吐率? 参考答案: 1)顺序读写...
新手SEO入门指南如何有效提升网站排名
内容概要 在进行搜索引擎优化(SEO)时,了解基本概念与重要性是首要步骤。SEO不仅仅是提升网站在搜索引擎中排名的手段,它还关乎用户体验和网站内容的质量。随着互联网的发展,越来越多的人意识到优秀的SEO策略能带来持续…...
【Redis】:初识Redis
1.1 盛赞 Redis Redis 是⼀种基于键值对(key-value)的 NoSQL 数据库,与很多键值对数据库不同的是,Redis 中的值可以是由 string(字符串)、hash(哈希)、list(列表…...
C-5 B样条曲线
C-5 B样条曲线 N i , 0 ( u ) { 1 , u i ≤ u < u i 1 0 , o t h e r s N_{i,0}(u)\left\{\begin{matrix} 1 , \quad u_i\le u <u_{i1} \\0 ,\quad others \qquad \quad\end{matrix}\right. Ni,0(u){1,ui≤u<ui10,others N i , p ( u ) u − u i u i p −…...
python安装
python安装 1.下载2.安装3.验证安装成功 1.下载 (1)下载网址:https://www.python.org/downloads/windows/ 进入后稍等一会,比较慢 (2)选择版本 2.安装 (1)双击或者以管理员身份运…...
游戏引擎学习第65天
回顾我们在模拟区域更改方面的进展 目前我们正在进行游戏的架构调整,目标是建立一个引擎架构。我们正在实施的一个关键变化是引入模拟区域的概念,这样我们可以创建非常大的游戏世界,而这些世界的跨度不必受限于单个浮点变量。 通过这种方式…...
代码随想录算法训练营第十六天-二叉树-513.找树左下角的值
左下角不是以为的左下角,而最后一层最左侧的节点也是就是说一个右叶子节点,也可能是最左下角,当然是在其左侧再无其它同级节点看视频讲解使用的递归与回溯方法,自己是完全想不到的,对这道题解法完全是脑袋空空 #inclu…...
力扣第122题:买卖股票的最佳时机 II
力扣第122题:买卖股票的最佳时机 II - C语言解法 题目描述 给定一个数组 prices,其中 prices[i] 是一支股票第 i 天的价格。你可以多次买入和卖出股票,求能够获得的最大利润。 注意: 你不能同时参与多笔交易(即必须…...
【Spring MVC】第一站:Spring MVC介绍配置基本原理
目录 1.引入 2. Java web的发展史 Model I 和Model II 3. MVC模式 4. Spring MVC配置 5. SpringMVC原理 5.1 SpringMVC中心控制器 6. Maven配置 1.引入 $$ Spring与Spring MVC的区别 SSM 包含三部分: Spring MVCSpringMybatis SSM就是升级版的Servlet。 Servlet…...
密钥登录服务器
1. 生成 SSH 密钥对 如果您还没有生成密钥对,可以使用以下命令生成: ssh-keygen 在 root 用户的家目录中生成了一个 .ssh 的隐藏目录,内含两个密钥文件:id_rsa 为私钥,id_rsa.pub 为公钥。 在提示时,您可…...
Java中StopWatch的使用详解
stopWatch 是org.springframework.util 包下的一个工具类,使用它可直观的输出代码执行耗时,以及执行时间百分比。 在未使用这个工具类之前,如果我们需要统计某段代码的耗时,我们会这样写: public static void main(String[] args…...
安全运营 -- splunk restapi 最小权限
0x00 背景 最小化权限原则,为每个功能,每个账户分配最小的权限。 0x01 实践 只需要7个 capability: Youll need to add certain capabilities to that user or that userss role(s).[capability::rest_apps_management] * Lets a user edit settings …...
12. 日常算法
1. 主持人调度(一) 题目来源 class Solution { public:bool hostschedule(vector<vector<int>>& schedule) {// write code heresort(schedule.begin(), schedule.end());int start -1, end 0;for (auto & nums : schedule){end…...
运行Zr.Admin项目(后端)
1.下载Zr.Admin代码压缩包 https://codeload.github.com/izhaorui/Zr.Admin.NET/zip/refs/heads/main 2.打开项目 我这里装的是VS2022社区版 进入根目录,双击ZRAdmin.sln打开项目 3.安装.net7运行时 我当时下载的代码版本是.net7的 点击安装 点击安装࿰…...
CSS(二):美化网页元素
目录 字体样式 文本样式 列表样式 背景图片 字体样式 字体相关的 CSS 属性: font-family:设置字体font-size:设置字体大小font-weight:设置字体的粗细(如 normal, bold, lighter 等)color:…...
如何不让场景UI受后处理影响
1)如何不让场景UI受后处理影响 2)Sprite打入SpriteAtlasv2依赖丢失 3)如何为Render Texture模式的videoPlayer生成封面 4)如何排查Shader变体的SRP Batcher兼容性 这是第415篇UWA技术知识分享的推送,精选了UWA社区的热…...
【教程】通过Docker运行AnythingLLM
转载请注明出处:小锋学长生活大爆炸[xfxuezhagn.cn] 如果本文帮助到了你,欢迎[点赞、收藏、关注]哦~ 官方教程:Local Docker Installation ~ AnythingLLM 1、先创建一个目录用于保存anythingllm的持久化文件: sudo mkdir /app su…...
2024/12/29 黄冈师范学院计算机学院网络工程《路由期末复习作业一》
一、选择题 1.某公司为其一些远程小站点预留了网段 172.29.100.0/26,每一个站点有10个IP设备接到网络,下面那个VLSM掩码能够为该需求提供最小数量的主机数目 ( ) A./27 B./28 C./29 D./30 -首先审题我们需要搞清楚站点与网…...