当前位置: 首页 > news >正文

SpringMVC+Spring+MyBatis知识点

目录

一、相关概念

1.关系

2.网页

3.架构

4.URL

5.http

6.https

7.服务器

8.Tomcat

9.Servelet

10.Javaweb作用域对象 

11.JSP

二、相关操作

1.RequestDispatcher

2.sendRedirect

3.cookie

4.Session

5.Filter过滤器

6.Listener监听器

7.MVC模型

8.JDBC连接数据库的开发步骤

9.maven

10.浏览器地址时页面处理过程


一、相关概念

1.关系

javase:java基础技术栈,包括javaweb、javaee

javaweb:java开发网站相关技术,包括Servlet、JDBC、Tomcat、Session/Cookie

javaee:Java Platform,Enterprise Edition,构建企业级的面向服务体系结构、微服务、组件等的技术栈,主流框架有Struts + Hibernate + Spring SSH、SpringMVC + Spring + Mybatis SSM、SpringBoot + Spring + Myabtis 新版SSM、微服务架构:MicroService : SpringCloud /Alibaba Cloud 、无服务架构:ServerLess 、服务网格:Service Mesh

2.网页

静态网页:内容都是不变的,由HTML+CSS+JS开发

动态网页:浏览器-》后端程序-》数据库的数据,浏览器和服务器进行数据交互,服务器端根据客户的不同请求动态的生成网页内容,开发模式为前端:HTML + CSS + JS + HTTP、后端:Servlet+Request+Response+Cookie+Session、数据库(类似excel):Mysql

3.架构

CS架构 客户机-服务器,即Client-Server(C/S)结构,缺少通用性。

BS架构 B/S架构即浏览器和服务器架构模式, WEB浏览器是客户端统一了客户端,系统功能实现的核心部分集中到服务器上。

类似于软件与网站的区别。

4.URL

统⼀资源定位符

标准格式: 协议(决定解析⽅式)://服务器IP(区分主机):端⼝(区分不同进程)/路径1(区分后端接口)/路径N ? key1=value1 & key2=value2

5.http

HyperText Transfer Protocol 超文本传输协议,规定好⼀种信息的格式,发送⽅与接 收端要按照这种格式发送或解析数据信息。http连接:客户端发送的每次请求都需要服务器回送响应。

常见协议下的数据格式

http请求

  • 请求行

    • 请求方法:

get向服务器获取资源,post向服务器提交数据,head和get类似,用于获取报头

  • URL地址
  • 协议名
  • 请求头

    • 报文头包含若干个属性 格式为“属性名:属性值”,
    • 服务端据此获取客户端的基本信息

  • 请求体

    • 请求的参数,可以是json对象,也可以是前端表单生成的key=value&key=value的字符串

http响应

    • 响应行

      • 报文协议及版本、状态码

  • 响应头

    • 报文头包含若干个属性 格式为“属性名:属性值”
  • 响应正文

    • 响应报文体,我们需要的内容,多种形式比如html、json、图片、视频文件等

6.https

Hyper Text Transfer Protocol over SecureSocket Layer,即HTTP + SSL / TLS

可防止数据在传输过程中不被窃取、改变,确保数据的完整性

7.服务器

安装服务器程序监听对应端口的远程电脑,根据用户的请求去获取对应的数据并返回给调用方。

Web服务器和应用服务器是服务器电脑上安装的软件,web服务器处理的是Http协议,包括Apache、IIS、Nginx等;应用服务器还可以处理其他协议,包括Tomcat、Jboss等

8.Tomcat

Apache是web服务器,Tomcat是应用(java)服务器,它是一个servlet容器,是Apache的扩展,是一个开放源代码的Web应用服务器;

Tomcat目录文件:

bin存放启动和关闭tomcat脚本,conf存放配置文件,lib存放Tomcat运行需要的第三方包(jar包之类的),log存放运行的相关日志文件,webapps存放web项目,work:编译后产生的class文件

9.Servelet

JavaServlet,Java编写的运行在服务器上的程序,用于交互式地浏览和生成动态Web内容(接收用户通过浏览器传来的表单数据,或读取数据库信息返回给浏览器查看,创建动态网页)

两个常见的子类:HttpServlet、GenericServlet

HttpServletRequest对象可以获得请求的所有信息。  

HttpServletResponse对象,封装了向客户端发送数据、发送响应头,发送响应状态码的方法,用于设置相关信息。

生命周期

Servlet 接口的5个方法:三个生命周期方法(初始化init()方法,在服务器装入 Servlet 时,仅执行一次 ;服务service方法,客户请求HttpServlet 对象被调用;销毁destroy方法,在服务器停止且卸装 Servlet 时,仅执行一次)和两个普通方法

想要具体实现效果可移步

https://mp.csdn.net/mp_blog/creation/editor/146452115

10.Javaweb作用域对象 

对象的生命周期,在WEB服务器启动时创建,服务器关闭时销毁

四大作用域对象(用于存取数据):PageContext(页面)->ServletRequest(请求)->HttpSession(会话)->ServletContext(应用,即webapps下的目录,代表了servlet环境上下文的全局存储空间);

11.JSP

Java Server Pages,是一种动态网页开发技术,可用JSP标签在HTML网页中插入Java相关代码。其本身就是一种Servlet,是HttpServlet的子类。

区别:jsp就是在html里面写java代码,servlet就是在java里面写html代码

JSP

<%--Created by IntelliJ IDEA.User: xdclassDate: 2020/5/27Time: 下午10:04To change this template use File | Settings | File Templates.
--%>
<%--JSP组成:在html中嵌套java代码--%>
<%--java代码--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%--html页面代码--%>
<html><head><title>$Title$</title></head><body>
小滴课堂</body>
</html>

Servlet

package net.xdclass.web;import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;public class UserServlet extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {//设置响应内容resp.setContentType("text/html;charset=utf-8");//设置响应内容类型PrintWriter printWriter = resp.getWriter();printWriter.write("<div> hello world! </div>");//输出响应内容:嵌套html代码}
}

简介:代表服务器的响应,封装了向客户端发送数据、发送响应头,发送响应状态码的方法

JSP表达式的语法格式:(不能用分号结束)<%= 表达式 或者java代码段%>

二、相关操作

1.RequestDispatcher

请求转发,

格式

request.getRequestDispatcher(URL地址).forward(request, response)

过程:客户端(浏览器)发送请求----->服务器(servlet作相应的业务处理------>调用forward将资源)------>返回客户端(浏览器)

servlet类中

//设置请求req的属性存储到request作用域
req.setAttribute("name","xdclass");
User user = new User();
user.setHost("https://xdclass.net");
user.setId(1);
user.setName("老王");//设置跳转至index.jsp页面,将数据内容传递过去
req.getRequestDispatcher("/index.jsp").forward(req,response);
response.sendRedirect("/index.jsp");

index.jsp中

<hr><%--换行--%>
<%--使用EL表达式对JSP页面进行简化 --%>name = ${user.name}<hr>id= ${user.id}<hr>host= ${user.host} 

实现效果的过程:直接访问端口号+forward 此时,网页显示页面index(浏览器客户端)的name=由forward转发过来的值,但如果直接访问端口号+index.jsp页面(浏览器客户端)的name是没有值的。

拓展-EL表达式

 Expression Language简化JSP,使JSP访问java对象(javaBean)更简单。

格式 ${ } 可通过属性范围来设置其作用范围

对比在JSP中嵌套java代码<%= (String)request.getAttribute("name")%> 等价于EL表达式 ${name}

2.sendRedirect

请求重定向

过程:客户端发送请求,Servlet做出业务逻辑处理------->response.sendRedirect("xxx.jsp")方法----->客户端浏览器重新访问服务器资源“xxx.jsp”------->服务器再次对客户端浏览器做出响应

特点:浏览器可以看到两个请求,取不到request中的存储的数据。

servlet类中

//设置请求req的属性存储到request作用域
req.setAttribute("name","xdclass");
User user = new User();
user.setHost("https://xdclass.net");
user.setId(1);
user.setName("老王");//重定向
response.sendRedirect("/index.jsp");

访问浏览器一次时,会同时有index.jsp与forward两个请求出现

3.cookie

由于HTTP协议的无状态性,通过cookie为同个浏览器的多次请求生成一个统一的标识

过程:浏览器发送request请求到服务器------>服务器给请求分配一个唯一标识ID(cookie)和response------>返回给浏览器

特点:由服务端生成,用于标记客户端(浏览器)的唯一标识,在每次网络请求中,都会被传送。通过document.cookie只能获得本网页的cookie,有大小限制。

操作

获取请求的cookie

package net.xdclass.web.controller;import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;@WebServlet(name ="cookieServlet",urlPatterns = {"/get_cookie_test"})
public class GetCookieServlet extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {//获取cookie,遍历并打印cookie的相关信息Cookie[] cookies = request.getCookies();for(Cookie cookie : cookies){System.out.println(cookie.getDomain());System.out.println(cookie.getName());System.out.println(cookie.getValue());}}
}

生成cookie请求

package net.xdclass.web.controller;import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;@WebServlet("/gene_cookie_test")
public class GeneCookieServlet extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {//生成cookie,并设置相关属性Cookie cookie = new Cookie("token","sfwerawefewadaewfafewafa")//20秒过期时间,过期后不会自动携带过去cookie.setMaxAge(20);response.addCookie(cookie);request.getRequestDispatcher("/index.jsp").forward(request,response);}
}

4.Session

由于HTTP协议的无状态性,通过cookie和session让服务端知道多次http请求是否来自同一用户。

过程:浏览器第一次发送request请求到服务器-------->服务器给请求分配一个唯一标识sessionId和response------>返回给浏览器------->服务器在本地创建一个map结构(Session),存储sessionId和浏览器的关系------->第二次访问时会自动带上这个标识sessionId(cookie)

session是服务端自己维护的一个map数据结构,用于记录key-Object上下文内容状态

区别:cookie是保存在客户端,session是存在服务器,session依赖于cookie

操作

获取session请求

package net.xdclass.web.controller;import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.IOException;@WebServlet("/session_servlet")
public class SessionServlet extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {//获取session并打印相关信息HttpSession session = request.getSession();//获取sessionid,java里面叫jsessionidSystem.out.println("sessionid="+session.getId());//创建时间戳,毫秒System.out.println("getCreationTime="+session.getCreationTime());//是否是初次创建,记得情况浏览器的cookie,验证sessionidSystem.out.println("isNew="+session.isNew());//往session存储东西session.setAttribute("name","xdclass.net");}
}

具体实例:

5.Filter过滤器

动态地拦截请求和响应,通过元注解@WebFilter来配置过滤规则(servletNames指定过滤的Servlet;urlPatterns指定 Filter拦截的 URL;filterName指定Filter的名称)

生命周期:

init(容器初始化,即应用启动的时候加载一次) doFilter(命中过滤规则就触发调用chain.doFilter(request, response)方法,执行对应的servlet或url下的资源)  destroy(容器销毁,即应用停止的时候调用一次)

相关参数

FilterConfig类(过滤器配置类),通过该类可获取过滤器基本信息;

dispatcherTypes 参数,指定过滤的dispatcher模式(转发模式),不符合不放行。

6.Listener监听器

是实现了特定接口的普通Java类,用于监听其他对象的创建和销毁及其方法执行和属性改变;

javaweb中监听器的作用:监听域对象的创建和销毁,主要包括ServletContextLitener、HttpSessionListener、ServletRequestListener。

实现步骤

创建一个Java类------->该类实现监听器的接口-------->实现监听器接口的所有方法------>用 @WebListener来配置监听器(或者在web.xml文件中配置信息)

具体实例移步

7.MVC模型

Model模型:承载数据用的Bean,即java对象,如实体类User、Dao层对象

View视图:页面比如JSP,为用户提供使用界面,与用户直接进行交互

Controller控制器:将用户请求转发给相应的 Model 进行处理,并根据 Model 的计算结果向用户提供相应响应,如Servlet、Controller

三层架构

视图层 View也叫web层:接收用户提交请求的代码

服务层 Service:系统的业务逻辑

持久层 Dao (Data Access Object):操作数据库的代码

常见的src目录结构

controller 存放控制器;service 存放业务接口;impl 存放业务接口或数据访问接口实现类;

dao 存放数据访问接口;domain 存放实体类;util 存放工具类;listener 存放监听器

filter 存放过滤器;config 存放配置

8.JDBC连接数据库的开发步骤

  • 加载数据库连接驱动    
  • 获取数据连接对象
  • 获取语句对象

会话对象有两种Statement和PreparedStatement     

  • 执行语句   
  • 处理结果集   
  • 关闭资源rs.close()、st.close()、conn.close() 注意关闭顺序以及处理异常

9.maven

一个基于项目对象模型(POM)的软件项目管理和综合工具,能够实现自动下载项目依赖库(直接在maven仓库添加配置,指定版本,自动下载),统一Java 项目结构。

仓库包括本地仓库( 用户目录下/.m2/repository/)和远程仓库。

添加依赖包后,Maven检查 pom.xml文件(确定下载的依赖),Maven 首先将从本地资源库获得依赖资源,如果没有找到,它才会从远程仓库去找。

生命周期

对所有的构建过程进行抽象和统一,主要有

clean 清理项目

build 构建处理项目

验证 validate->编译 compile->测试 Test->包装package->检查verify->安装 install->部署 deploy

site 项目文档创建处理

在pom.xml中导入依赖的参考配置网址:https://mvnrepository.com/

10.浏览器地址时页面处理过程

  • 解析url地址合法性
  • 浏览器检查是否有缓存, 如果有直接显示。

如果没有

  • 在发送http请求前,需要域名解析(DNS解析),解析获取对应过的ip地址。
  • 浏览器向服务器发起tcp链接,完成tcp三次握手
  • 握手成功后,浏览器向服务器发送http请求
  • 服务器收到处理的请求,将数据返回至浏览器
  • 浏览器收到http响应。
  • 浏览器解析响应。如果响应可以缓存,则存入缓存
  • 浏览器进行页面渲染

相关文章:

SpringMVC+Spring+MyBatis知识点

目录 一、相关概念 1.关系 2.网页 3.架构 4.URL 5.http 6.https 7.服务器 8.Tomcat 9.Servelet 10.Javaweb作用域对象 11.JSP 二、相关操作 1.RequestDispatcher 2.sendRedirect 3.cookie 4.Session 5.Filter过滤器 6.Listener监听器 7.MVC模型 8.JDBC连接…...

程序化广告行业(58/89):系统架构与广告反作弊深度剖析

程序化广告行业&#xff08;58/89&#xff09;&#xff1a;系统架构与广告反作弊深度剖析 大家好&#xff01;在程序化广告这个充满挑战与机遇的领域&#xff0c;不断学习和探索是保持竞争力的关键。今天&#xff0c;我希望和大家一起学习进步&#xff0c;深入了解程序化广告行…...

一周学会Pandas2 Python数据处理与分析-NumPy简介

锋哥原创的Pandas2 Python数据处理与分析 视频教程&#xff1a; 2025版 Pandas2 Python数据处理与分析 视频教程(无废话版) 玩命更新中~_哔哩哔哩_bilibili NumPy&#xff08;Numerical Python&#xff09;是Python的一种开源的数值计算扩展。这种工具可用来存储和处理大型矩…...

第二十七章:Python-Aquarel库与多种主题库结合实现Matplotlib美化

资源绑定附上完整资料供读者参考学习&#xff01; 一、库介绍与安装 1.1 Aquarel库 Aquarel是一个轻量级的Python库&#xff0c;用于简化Matplotlib的样式配置&#xff0c;使数据可视化更加美观和高效。 1.2 Catppuccin库 Catppuccin是一个社区驱动的粉彩主题库&#xff0…...

leetcode155.最小栈

思路源自 【力扣hot100】【LeetCode 155】最小栈 为了让检索时间达到o&#xff08;1&#xff09;&#xff0c;采用空间换时间&#xff0c;维护两个栈&#xff0c;第一个栈实现正常的push、pop、top&#xff0c;另一个栈的栈顶每次都只放以一个栈中最小的元素 class MinStack …...

Mysql 中的 MyISAM 引擎

&#x1f9f1; 什么是 MyISAM&#xff1f; MyISAM 是 MySQL 早期的默认存储引擎&#xff0c;特点是结构简单、读取速度快&#xff0c;但不支持事务和行级锁。 它适合那些 读多写少、对事务安全要求不高 的场景&#xff0c;比如旧版博客系统、数据仓库等。 &#x1f4e6; MyISA…...

操作系统、虚拟化技术与云原生及云原生AI简述

目录 操作系统基础 操作系统定义 操作系统的组成 操作系统的分类 Linux操作系统特性 虚拟化技术 概述 CPU虚拟化 内存虚拟化 I/O虚拟化 虚拟化技术 虚拟化平台管理工具 容器 容器与云原生&#xff1a;详细介绍 容器的特点 什么是云原生&#xff1f; 云原生的特点 容器与云原生的…...

Java EE期末总结(第二章)

目录 一、JSP页面里的page指令 二、JSP脚本元素 1、全局声明<%!……%> 2、表达式<%……%> 3、脚本程序段<%……%> 三、文件包含指令include 四、引入标签库指令taglib 五、JSP动作标签 1、包含文件动作标签 2、请求转发动作标签 3、JavaBean动作标签 …...

FreeRTOS任务查询和信息统计API

下面例举几个常见的任务查询API&#xff08;其余可参考FreeRTOS开发手册&#xff09;&#xff1a; UBaseType_t Priority; Priority uxTaskPriorityGet(QUERYTask_Handler); printf("Task Pri %d \r\n",Priority); TaskStatus_t * TaskStatusArray; UBaseType_t …...

SQLark(百灵连接):一款面向信创应用开发者的数据库开发和管理工具

SQLark&#xff08;百灵连接&#xff09;是一款面向信创应用开发者的数据库开发和管理工具&#xff0c;用于快速查询、创建和管理不同类型的数据库系统。 目前可以支持达梦数据库、Oracle 以及 MySQL。 SQL 智能编辑器 基于语法语义解析实现代码补全能力&#xff0c;为你提供…...

Linux | 安装超级终端串口软件连接i.MX6ULL开发板(8)

01 它的安装步骤也非常简单,安装语言选择中文简体,点击确定,如下图所示。 点击下一步,如下图所示。 02...

Qt 事件系统负载测试:深入理解 Qt 事件处理机制

Qt 事件系统负载测试&#xff1a;深入理解 Qt 事件处理机制 文章目录 Qt 事件系统负载测试&#xff1a;深入理解 Qt 事件处理机制摘要引言实现原理1. 自定义事件类型2. 事件队列管理3. 性能指标监控4. 事件发送机制 性能监控实现1. 负载计算2. 内存监控3. 延迟计算 使用效果优化…...

如何评价Manus?

Manus是由Monica公司发布的全球首款通用型AI Agent产品,定位于一个性能强大的通用型助手,能够独立思考、规划并执行复杂任务,直接交付完整的任务成果。‌‌ Manus 这个名字灵感来源于拉丁格言 “Mens et Manus”(意为“头脑与双手”),寓意它既能动脑也能动手。 Manus的核…...

AI浪潮下的IT职业转型:医药流通行业传统IT顾问的深度思考

AI浪潮下的IT职业转型&#xff1a;医药流通行业传统IT顾问的深度思考 一、AI重构IT行业的技术逻辑与实践路径 1.1 医药流通领域的智能办公革命 在医药批发企业的日常运营中&#xff0c;传统IT工具正经历颠覆性变革。以订单处理系统为例&#xff0c;某医药集团引入AI智能客服…...

2011-2019年各省地方财政国土资源气象等事务支出决策数数据

2011-2019年各省地方财政国土资源气象等事务支出决策数数据 1、时间&#xff1a;2007-2019年 2、来源&#xff1a;国家统计局、统计年鉴 3、指标&#xff1a;行政区划代码、地区、年份、地方财政国土资源气象等事务支出决策数 4、范围&#xff1a;31省 5、指标说明&#x…...

《微服务概念进阶》精简版

&#x1f91f;致敬读者 &#x1f7e9;感谢阅读&#x1f7e6;笑口常开&#x1f7ea;生日快乐⬛早点睡觉 &#x1f4d8;博主相关 &#x1f7e7;博主信息&#x1f7e8;博客首页&#x1f7eb;专栏推荐&#x1f7e5;活动信息 文章目录 什么是微服务&#xff08;进阶精简版&#x…...

免费送源码:Java+SSM+Android Studio 基于Android Studio游戏搜索app的设计与实现 计算机毕业设计原创定制

摘要 本文旨在探讨基于SSM框架和Android Studio的游戏搜索App的设计与实现。首先&#xff0c;我们详细介绍了SSM框架&#xff0c;这是一种经典的Java Web开发框架&#xff0c;由Spring、SpringMVC和MyBatis三个开源项目整合而成&#xff0c;为开发企业级应用提供了高效、灵活、…...

栈回溯和离线断点

栈回溯和离线断点 栈回溯&#xff08;Stack Backtrace&#xff09; 栈回溯是一种重建函数调用链的技术&#xff0c;对于分析栈溢出的根本原因非常有价值。 实现方式 // 简单的栈回溯实现示例&#xff08;ARM Cortex-M架构&#xff09; void stack_backtrace(void) {uint32_…...

探索轻量高性能的 Rust HTTP 服务器框架 —— Hyperlane

探索轻量高性能的 Rust HTTP 服务器框架 —— Hyperlane 随着互联网应用对性能和实时性要求的不断提升&#xff0c;选择一个高效且易于扩展的 HTTP 服务器框架变得尤为重要。今天&#xff0c;我们将介绍一个专为 Rust 开发者设计的框架 —— Hyperlane。该框架不仅支持 HTTP 请…...

第四章 表单(3)- 表单验证

在Blazor中&#xff0c;表单的验证可以通过两种方式实现&#xff0c;一种是使用Blazor所提供表单验证特性&#xff0c;另一种是使用ValidationMessageStore进行验证。 表单验证的基础使用(内置特性) 一、内置特性表单验证的开启 Blazor中&#xff0c;使用表单组件<EditFo…...

手撕AVL树

引入&#xff1a;为何要有AVL树&#xff0c;二次搜索树有什么不足&#xff1f; 二叉搜索树有其自身的缺陷&#xff0c;假如往树中插入的元素有序或者接近有序&#xff0c;二叉搜索树就会退化成单支树&#xff0c;时间复杂度会退化成O(N)&#xff0c;因此产生了AVL树&#xff0c…...

Linux驱动开发练习案例

1 开发目标 1.1 架构图 操作系统&#xff1a;基于Linux5.10.10源码和STM32MP157开发板&#xff0c;完成tf-a(FSBL)、u-boot(SSBL)、uImage、dtbs的裁剪&#xff1b; 驱动层&#xff1a;为每个外设配置DTS并且单独封装外设驱动模块。其中电压ADC测试&#xff0c;采用linux内核…...

Redis 下载 — Ubuntu22.04稳定版,配置

官方文档 &#xff1a; https://redis.io/docs/latest/operate/oss_and_stack/install/install-redis/ Nano学习 &#xff1a; 【Linux环境下最先应该掌握的文本编辑器nano】https://www.bilibili.com/video/BV1p8411z7dJ?vd_source5ce003da2a16f44ea73ec9bbc30389e4 Redis配置…...

有没有可以帮助理解高数的视频或者书籍资料?

高数的学习是一个入门很高&#xff0c;但是一旦入门之后&#xff0c;就会变得比较简单的科目。 可是&#xff0c;我们应该怎么入门高数呢&#xff1f;在当年刚开始学习高数的时候&#xff0c;我也有过这样的困惑。 但是&#xff0c;后来我发现&#xff0c;我总是可以在经历一…...

了解拦截器

目录 什么是拦截器 拦截器的基本使用 拦截器的使用步骤 拦截器路径设置 拦截器执行流程 一、什么是拦截器 拦截器是Spring框架提供的核心功能之一&#xff0c;主要用来拦截用户的请求&#xff0c;在指定方法前后&#xff0c;根据业务需要执行预先设定的代码。 开发人员可以…...

Linux / Windows 下 Mamba / Vim / Vmamba 安装教程及安装包索引

目录 背景0. 前期环境查询/需求分析1. Linux 平台1.1 Mamba1.2 Vim1.3 Vmamba 2. Windows 平台2.1 Mamba2.1.1 Mamba 12.1.2 Mamba 2- 治标不治本- 终极版- 高算力版 2.2 Vim- 治标不治本- 终极版- 高算力版 2.3 Vmamba- 治标不治本- 终极版- 高算力版 3. Linux / Windows 双平…...

prism WPF 对话框

项目结构 1.创建对话框 用户控件 Views \ DialogView.xaml <UserControl x:Class"PrismWpfApp.Views.DialogView"xmlns"http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x"http://schemas.microsoft.com/winfx/2006/xaml"…...

eventEmitter实现

没有做任何异常处理,简单模拟实现 事件对象的每一个事件都对应一个数组 /*__events {"事件1":[cb1,cb2],"事件2":[cb3,cb4],"事件3":[...],"事件4":[...],};*/class E{__events {};constructor(){}//注册监听回调on(type , callbac…...

Koordinator-NodeInfoCollector

Run 每秒执行一次 func (n *nodeInfoCollector) Run(stopCh <-chan struct{}) {go wait.Until(n.collectNodeInfo, n.collectInterval, stopCh) }collectNodeInfo() 采集node cpu信息采集node numa信息func (n *nodeInfoCollector) collectNodeInfo() {started := time.No…...

洛谷题单3-P5724 【深基4.习5】求极差 最大跨度值 最大值和最小值的差-python-流程图重构

题目描述 给出 n n n 和 n n n 个整数 a i a_i ai​&#xff0c;求这 n n n 个整数中的极差是什么。极差的意思是一组数中的最大值减去最小值的差。 输入格式 第一行输入一个正整数 n n n&#xff0c;表示整数个数。 第二行输入 n n n 个整数 a 1 , a 2 … a n a_1,…...

SignalR给特定User发送消息

1、背景 官网上SignalR的demo很详细&#xff0c;但是有个特别的问题&#xff0c;就是没有详细阐述如何给指定的用户发送消息。 2、解决思路 网上整体解决思路有三个&#xff1a; 1、最简单的方案&#xff0c;客户端连接SignalR的Hub时&#xff0c;只是简单的连接&#xff0c…...

新浪财经股票每天10点自动爬取

老规矩还是先分好三步&#xff0c;获取数据&#xff0c;解析数据&#xff0c;存储数据 因为股票是实时的&#xff0c;所以要加个cookie值&#xff0c;最好分线程或者爬取数据时等待爬取&#xff0c;不然会封ip 废话不多数&#xff0c;直接上代码 import matplotlib import r…...

【CSP】202403-1词频统计

文章目录 算法思路1. 数据结构选择2. 输入处理3. 统计出现的文章数4. 输出结果 代码示例代码优化 样例输入 4 3 5 1 2 3 2 1 1 1 3 2 2 2 2 3 2样例输出 2 3 3 6 2 2算法思路 1. 数据结构选择 vector<int>&#xff1a;用于存储每篇文章的单词列表&#xff08;可能包含…...

CentOs系统部署DNS服务

1. 安装 Bind 软件包 首先需要安装bind以及相关的工具包&#xff0c;在终端中执行以下命令&#xff1a; bash sudo yum install bind bind-utils -y2. 配置主配置文件 Bind 的主配置文件是/etc/named.conf&#xff0c;你可以使用文本编辑器&#xff08;如vim&#xff09;打开…...

LintCode第974题-求矩阵各节点的最短路径(以0为标准)

描述 给定一个由0和1组成的矩阵&#xff0c;求每个单元格最近的0的距离。 两个相邻细胞之间的距离是1。 给定矩阵的元素数不超过10,000。 在给定的矩阵中至少有一个0。 单元格在四个方向上相邻:上&#xff0c;下&#xff0c;左和右。 样例 例1: 输入: [[0,0,0],[0,0,0],[0…...

吴恩达深度学习复盘(6)神经网络的矢量化原理

矢量化基础是线性运算&#xff0c;这里先简单复习一下。线性基本运算基本没什么&#xff0c;大量使用的有点乘和叉乘。 基本例子 1. 矩阵的基本概念 - 矩阵可以看作是一个块或者二维数组&#xff0c;这是对矩阵的一个在计算机计算的直观描述。 2. 向量的点积&#xff08;内积…...

ISIS多区域配置

一、什么是ISIS多区域 ISIS&#xff08;Intermediate System to Intermediate System&#xff09;多区域是指网络被划分为多个逻辑区域&#xff08;Areas&#xff09;&#xff0c;不同区域之间通过特定的ISIS路由器&#xff08;Level-1-2&#xff09;进行路由交互。多区域设计提…...

The emulator process for AVD xxx has terminated

问题描述 离线环境下部署Android虚拟机&#xff0c;启动时报错The emulator process for AVD xxx has terminated&#xff0c;其中xxx为虚拟机名称。 解决过程 可先在C:\Users\admin\AppData\Local\Google\AndroidStudio2024.3\log目录下找到idea.log文件&#xff0c;其中记录…...

Haskell语言的区块链扩展性

Haskell语言的区块链扩展性研究 引言 区块链技术近年来在金融、供应链、物联网等多个领域取得了显著的进展。作为一种分布式账本技术&#xff0c;区块链的核心在于其去中心化、不可篡改和透明性。然而&#xff0c;随着应用的不断深入&#xff0c;区块链面临着可扩展性、性能、…...

第11/100节:三点估算

第11/100节&#xff1a;三点估算 三、完成某信息系统集成项目中的一个最基本的工作单元 A 所需的时间&#xff0c;乐观的估计需 8 天&#xff0c;悲观的估计需 38天&#xff0c;最可能的估计需 20 天&#xff0c;按照三点估算方法进行估算&#xff0c;项目的工期应该为&#xf…...

Tourists

一道圆方树恶心题&#xff0c;*3200&#xff0c;不知道为什么不评黑。 这道题很容易直接想到圆方树&#xff1a;因为两个操作如果在树上&#xff0c;都需要树链剖分 线段树维护。而将这么一个普通图转化为一棵树&#xff0c;也就只有圆方树这种形式了。 于是就可以综合使用圆…...

【动态规划】深入动态规划:连续子结构的算法剖析

文章目录 前言例题一、最大子数组和二、环形子数组的最大和三、 乘积最大子数组四、乘积为正数的最长子数组五、等差数列划分六、最长湍流子数组七、单词拆分八、环绕字符串中唯一的子字符串 结语 前言 什么是是动态规划连续子数组、子串系列算法问题? 连续子数组问题通常聚焦…...

结肠镜3D视频数据集-C3VD论文中文版

文章目录 标题作者摘要一、介绍1.1. 相关工作1.1.1. 内镜重建数据集1.1.2. 注册真实和虚拟内窥镜图像1.1.3. 2D-3D注册1.2. 贡献 二、方法2.1. 幻影模型生产2.2. 数据采集2.3. 注册流程概述2.3.1. 数据预处理2.3.2. 目标深度估计2.3.3. 渲染深度帧2.3.4. 边缘损失和优化 2.4. 模…...

封装自己的api签名sdk

api平台接口调用&#xff0c;需要通过签名去核对是不是有效的用户&#xff0c;&#xff0c;一般会给两个key&#xff0c;acceeKey 和 secretKey,第一个相当于用户名&#xff0c;第二个相当于密钥&#xff0c;&#xff0c;&#xff0c;前端通过一定的算法&#xff0c;&#xff0…...

ASP.NET Core Web API 中 HTTP状态码的分类及对应的返回方法

文章目录 前言一、HTTP状态码分类及常用方法二、具体返回方法示例1&#xff09; 2xx 成功类2&#xff09;4xx 客户端错误3&#xff09;5xx 服务器错误4&#xff09;其他特殊状态码 三、高级返回方式1&#xff09;使用 IActionResult 与 ActionResult<T>2&#xff09;统一…...

函数和模式化——python

一、模块和包 将一段代码保存为应该扩展名为.py 的文件&#xff0c;该文件就是模块。Python中的模块分为三种&#xff0c;分别为&#xff1a;内置模块、第三方模块和自定义模块。 内置模块和第三方模块又称为库内置模块&#xff0c;有 python 解释器自带&#xff0c;不用单独安…...

LeetCode 1817 查找用户活跃分钟数

深入剖析 LeetCode 用户活跃分钟数统计问题 一、题目详情 给定用户在 LeetCode 的操作日志&#xff0c;日志以二维整数数组logs表示&#xff0c;其中每个logs[i][IDi, timei]&#xff0c;意味着 ID 为IDi的用户在timei分钟时执行了某个操作。多个用户能够同时执行操作&#x…...

matlab从pytorch中导入LeNet-5网络框架

文章目录 一、Pytorch的LeNet-5网络准备二、保存用于导入matlab的model三、导入matlab四、用matlab训练这个导入的网络 这里演示从pytorch的LeNet-5网络导入到matlab中进行训练用。 一、Pytorch的LeNet-5网络准备 根据LeNet-5的结构图&#xff0c;我们可以写如下结构 import…...

网络:华为HCIA学习笔记:ICMP协议

ICMP&#xff08;Internet Control Message Protocol&#xff09;Internet控制消息协议 前言ICMPICMP重定向ICMP差错监测ICMP错误报告ICMP数据包格式ICMP消息类型和编码类型ICMP应用-PingICMP应用-Tracert 总结 前言 Internet控制消息协议ICMP (Internet Control Message Prot…...

Visio | 将(.vsdx)导出为更清楚/高质量的图片(.png) | 在Word里面的visio图

此时大家在用Visio画完图直接复制到word里面后&#xff0c;如果后期需要重新保存高清图片&#xff0c;但是此时图片在word&#xff0c;是不是很多人会选择直接crtlA截图复制&#xff0c;这样出来的图又不清晰又小&#xff0c;完全不符合你导的审美&#xff0c;接下来跟着我&…...