自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(85)
  • 资源 (1)
  • 收藏
  • 关注

原创 Python学习笔记-python判断语句-if elif else语句-python循环语句-for while range

python判断语句-if elif else语句-python循环语句-for while range

2022-08-29 17:37:20 475 1

原创 Python学习笔记-python基础语法-字面量,注释,变量,数据类型,数据类型转换,标识符,运算符,字符串

python学习笔记,基础部分

2022-08-29 15:09:06 635

原创 Apache-Guacamole windows11 远程控制

docker安装Guacamole前面已经安装了docker了,因此,首先我们得把需要的镜像从仓库抓取下来。1.拉取Guacamole服务器、Guacamole客户端和MySQL的Docker镜像:docker pull guacamole/guacamoledocker pull guacamole/guacddocker pull mysql/mysql-server2.当把三个镜像都下载下来后,创建数据库初始化脚本以创建用于验证身份的数据表:docker run --rm guac

2022-03-01 21:13:02 3555 2

原创 JVM学习笔记之-JVM性能监控-JVM监控及诊断工具-GUI方式-Visual VM-JProfiler-Arthas

00-谈GUI工具前的补充补充1:内存泄漏内存泄漏的理解与分类何为内存泄漏( memory leak)可达性分析算法来判断对象是否是不再使用的对象,本质都是判断一个对象是否还被引用。那么对于这种情况下,由于代码的实现不同就会出现很多种内存泄漏问题(让JVM误以为此对象还在引用中,无法回收,造成内存泄漏)。内存泄漏( memory leak)的理解严格来说,只有对象不会再被程序用到了,但是GC又不能回收他们的情况,才叫内存泄漏。但实际情况很多时候一些不太好的实践(或疏忽)会导致对象的生命周期变

2021-12-21 11:15:14 1039

原创 JVM学习笔记之-JVM性能监控-JVM监控及诊断工具-命令行方式

性能优化的步骤第1步(发现问题):性能监控一种以非强行或者入侵方式收集或查看应用运营性能数据的活动。监控通常是指一种在生产、质量评估或者开发环境下实施的带有预防或主动性的活动。当应用相关干系人提出性能问题却没有提供足够多的线索时,首先我们需要进行性能监控,随后是性能分析。列如:GC频繁 cpu load过高 OOM 内存泄漏 死锁 程序响应时间较长第2步(排查问题)∶性能分析一种以侵入方式收集运行性能数据的活动,它会影响应用的香吐量或响应性。性能分析是针对性能问题的答复结果,关注

2021-12-20 10:23:42 469

原创 学习笔记之-Activiti7工作流引擎,概述,环境搭建,类关系图,使用Activiti BPMN visualizer,流程变量,组任务 网关,Activiti整合Spring SpringBoot

Activiti71.1工作流介绍工作流(Workflow),就是通过计算机对业务流程自动化执行管理。它主要解决的是“使在多个参与者之间按照某种预定义的规则自动进行传递文档、信息或任务的过程,从而实现某个预期的业务目标,或者促使此目标的实现。2.1Activiti 介绍 BPM 介绍Alfresco 软件在 2010 年 5 月 17 日宣布 Activiti 业务流程管理(BPM)开源项目的正式启动,其首席架构师由业务流程管理 BPM 的专家 Tom Baeyens 担任,Tom Baeye

2021-11-22 10:47:53 3545 8

原创 学习笔记之-Kubernetes(K8S)介绍,集群环境搭建,Pod详解,Pod控制器详解,Service详解,数据存储,安全认证,DashBoard

笔记来源于观看黑马程序员Kubernetes(K8S)教程第一章 kubernetes介绍应用部署方式演变在部署应用程序的方式上,主要经历了三个时代:传统部署:互联网早期,会直接将应用程序部署在物理机上优点:简单,不需要其它技术的参与缺点:不能为应用程序定义资源使用边界,很难合理地分配计算资源,而且程序之间容易产生影响虚拟化部署:可以在一台物理机上运行多个虚拟机,每个虚拟机都是独立的一个环境优点:程序环境不会相互产生影响,提供了一定程度的安全性缺点:增加了操作系统,浪费了部分

2021-11-18 09:28:23 605

原创 学习笔记之-MongoDB简介,Docker安装MongoDB,MongoDB基本常用命令,MongoDB索引-Index,SpringDataMongoDB的基本使用

1.MongoDB相关概念1.1 业务应用场景传统的关系型数据库(如MySQL),在数据操作的“三高"需求以及应对Web2.0的网站需求面前,显得力不从心。解释:“三高"需求:·High performance -对数据库高并发读写的需求。·Huge Storage -对海量数据的高效率存储和访问的需求。·High Scalability && High Availability-对数据库的高可扩展性和高可用性的需求。而MongoDB可应对“三高”需求。具体的应用场景如

2021-11-15 11:44:52 523

原创 学习笔记之-分库分表概念,分库分表带来的事务,关联查询,分页,排序,主键避重等问题,Sharding-JDBC解决分库分表后所引发的部分问题

Sharding-JDBC分库分表1 概述1.1.分库分表是什么随着公司业务快速发展,数据库中的数据量猛增,访问性能也变慢了,优化迫在眉睫。分析一下问题出现在哪儿呢﹖关系型数据库本身比较容易成为系统瓶颈,单机存储容量、连接数、处理能力都有限。当单表的数据量达到1000W或100G以后,由于查询维度较多,即使添加从库、优化索引,做很多操作时性能仍下降严重。方案1 :通过提升服务器硬件能力来提高数据处理能力,比如增加存储容量、CPU等,这种方案成本很高,并且如果瓶颈在MySQL本身那么提高硬件也是有限

2021-11-09 16:35:54 3245 6

原创 Redis 学习笔记-NoSQL数据库 常用五大数据类型 Redis配置文件介绍 Redis的发布和订阅 Redis_事务_锁机制_秒杀 Redis应用问题解决 分布式锁

1.NoSQL数据库1.1 NoSQL数据库概述NoSQL(NosQL = Not Only sQL ),意即“不仅仅是sQL”,泛指非关系型的数据库。NoSQL不依赖业务逻辑方式存储,而以简单的 key-value模式存储。因此大大的增加了数据库的扩展能力不遵循SQL标准。不支持ACID。远超于SQL的性能。1.2NoSQL适用场景对数据高并发的读写海量数据的读写对数据高可扩展性的1.3.NoSQL不适用场景需要事务支持基于sql的结构化查询存储,处理复杂的关系,需

2021-10-20 15:41:18 625

原创 前端学习笔记之-VUE框架学习-Vue核心

第一章:Vue核心1.1.Vue简介官网介绍:https://cn.vuejs.org/v2/guide/1.2.初识Vue<!DOCTYPE html><html lang="en"><head> <meta charset="UTG-8" /> <title>初始vue</title> <!-- 引入VUE --> <script type="text/javascrip

2021-08-04 17:19:13 215

原创 学习笔记之-java8的新特性-函数式接口,lambda表达式,方法引用,Stream API,Optional类

1.Lambda表达式为什么使用Lambda表达式?Lambda是一个匿名函数,我们可以把Lambda表达式理解为是一段可以传递的代码(将代码像数据一样进行传递)。可以与出史间白、史灵活的代码。作为一种更紧凑的代码风格,使Java的语言表达能力得到了提升。一、Lambda表达式的基础语法:Java8中引入了一个新的操作符“->”该操作符称为箭头操作符或Lambda操作符箭头操作符将Lambda表达式拆分成两部分:左侧:Lambda表达式的参数列表右侧:Lambda表达式中所需执行的功能,

2021-07-22 22:00:22 560 8

原创 学习笔记之-MySql高级之sql优化

一 Mysql简介概述MySQL是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,目前属于Oracle公司。M/SQL是一种关联数据库管理系统,将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。Mysql是开源的,所以你不需要支付额外的费用。Mysql支持大型的数据库。可以处理拥有上千万条记录的大型数据库。MySQL使用标准的SQL数据语言形式。Mysql可以允许于多个系统上,并且支持多种语言。这些编程语詈包括C、C++、Python、Java、

2021-07-13 22:19:22 315 3

原创 JVM学习笔记之-垃圾回收相关概念 System.gc()的理解 内存溢出与内存泄漏 STW 垃圾回收的并行与并发 安全点与安全区域 再谈引用:强引用 软引用 弱引用 虚引用 终结器引用

System.gc()的理解在默认情况下,通过System.gc()或者Runtime. getRuntime ( ).gc ()的调用,会显式触发Full GC,同时对老年代和新生代进行回收,尝试释放被丢弃对象占用的内存。然而system.gc()调用附带一个免责声明,无法保证对垃圾收集器的调用。JVM实现者可以通过System.gc ()调用来决定JVM的GC行为。而一般情况下,垃圾回收应该是自动进行的,无须手动触发,否则就太过于麻烦了。在一些特殊情况下,如我们正在编写一个性能基准,我们可以在运行

2021-07-08 21:48:31 366 1

原创 JVM学习笔记之-拉圾回收概述,垃圾回收相关算法

拉圾回收概述什么是垃圾垃圾收集,不是Java语言的伴生产物。早在1960年,第一门开始使用内存动态分配和垃圾收集技术的Lisp语言诞生。关于垃圾收集有三个经典问题:哪些内存需要回收?什么时候回收?如何回收?垃圾收集机制是Java的招牌能力,极大地提高了开发效率。如今,垃圾收集几乎成为现代语言的标配,即使经过如此长时间的发展,Java的垃圾收集机制仍然在不断的演进中,不同大小的设备、不同特征的应用场景,对垃圾收集提出了新的挑战,这当然也是面试的热点。什么是垃圾( Garbage)呢?

2021-07-01 21:44:31 215 1

原创 JVM学习笔记之-StringTable String的基本特性,内存分配,基本操作,拼接操作,intern()的使用,垃圾回收 ,G1中的String去重操作

String的基本特性string:字符串,使用一对""引起来表示。String s1 = “”; //字面量的定义方式String s2 = new String(“Hello”);·string声明为final的,不可被继承string实现了serializable接口:表示字符串是支持序列化的。实现了Comparable接口:表示string可以比较大小string在jdk8及以前内部定义了final char[ ] value用于存储字符串数据。jdk9时改为byte [ ]St

2021-06-28 21:59:07 257

原创 JVM学习笔记之-执行引擎(Execution Engine)

执行引擎概述执行引擎概述执行引擎是Java虚拟机核心的组成部分之一。“虚拟机”是一个相对于“物理机”的概念,这两种机器都有代码执行能力,其区别是物理机的执行引擎是直接建立在处理器、缓存、指令集和操作系统层面上的,而虚拟机的执行引擎则是由软件自行实现的,因此可以不受物理条件制约地定制指令集与执行引擎的结构体系,能够执行那些不被硬件直接支持的指令集格式。JVM的主要任务是负责装载字节码到其内部,但字节码并不能够直接运行在操作系统之上,因为字节码指令并非等价于本地机器指令,它内部包含的仅仅只是一些能够被

2021-06-25 21:59:10 178 1

原创 JVM学习笔记之-对象的实例化,内存布局与访问定位,直接内存(Direct Memory)

对象的实例化对象的内存布局图解对象的访问定位句柄访问好处reference中存储稳定句柄地址,对象被移动(垃圾收集时移动对象很普遍)时只会改变句柄中实例数据指针即可,reference本身不需要被修改。直接指针(hotspot采用)直接内存(Direct Memory)概述不是虚拟机运行时数据区的一部分,也不是《Java虚拟机规范》中定义的内存区域。直接内存是在Java堆外的、直接向系统申请的内存区间。来源于NIO,通过存在堆中的DirectByteBuffer操作Na

2021-06-25 21:27:39 190 3

原创 JVM学习笔记之-方法区,栈、堆、方法区的交互关系,方法区的理解,设置方法区大小与OOM,方法区的内部结构,方法区使用举例

栈、堆、方法区的交互关系运行时数据区结构图从线程共享与否的角度来看栈,堆,方法区的交互关系方法区的理解设置方法区大小与OOM方法区的内部结构方法区使用举例方法区的演进细节方法区的垃圾回收总结...

2021-06-10 20:25:41 1308 1

原创 JVM学习笔记之-堆,年轻代与老年代,对象分配过程,Minor GC、Major GC、Full GC,堆内存大小与OOM,堆空间分代,内存分配策略,对象分配内存,小结堆空间,逃逸分析,常用调优工具

堆的核心概述设置堆内存大小与OOM年轻代与老年代对象分配过程Minor GC、Major GC、Full GC堆空间分代思想内存分配策略为对象分配内存:TLAB小结堆空间的参数设置堆是分配对象的唯一选择吗

2021-06-02 20:00:47 873 2

原创 JVM学习笔记之-运行时数据区概述及线程概述,程序计数器(PC寄存器),虚拟机栈(栈,局部变量表,操作数栈,动态连接,方法调用,方法返回地址等),本地方法接口,本地方法栈

运行时数据区概述及线程概述内存是非常重要的系统资源,是硬盘和CPU的中间仓库及桥梁,承载着操作系统和应用程序的实时运行。JVM内存布局规定了Java在运行过程中内存申请、分配、管理的策略,保证了JVM的高效稳定运行。不同的JVM对于内存的划分方式和管理机制存在着部分差异。结合JVM虚拟机规范,来探讨一下经典的JVM内存布局。Java虚拟机定义了若千种程序运行期间会使用到的运行时数据区,其中有一些会随着虚拟机启动而创建,随着虚拟机退出而销毁。另外一些则是与线程一一对应的,这些与线程对应的数据区域会随着

2021-05-11 15:50:46 331 3

原创 JVM学习笔记之-类加载子系统,类的加载与类的加载过程,双亲委派机制

类加载器与类加载过程

2021-05-04 09:01:09 205

原创 设计模式之java-学习笔记

设计模式简介本笔记是根据尚硅谷java设计模式视频学习得设计模式七大原则1设计模式的目的编写软件过程中,程序员面临着来自 耦合性,内聚性以及可维护性,可扩展性,重用性,灵活性 等多方面的挑战,设计模式是为了让程序(软件),具有更好1)代码重用性 (即:相同功能的代码,不用多次编写)2)可读性 (即:编程规范性, 便于其他程序员的阅读和理解)3)可扩展性 (即:当需要增加新的功能时,非常的方便,称为可维护)4)可靠性 (即:当我们增加新的功能后,对原来的功能没有影响)5)使程序呈现

2021-03-31 15:20:16 544 2

原创 Jenkins-自动化构建、测试和部署-学习笔记

来源于黑马程序员jenkins文档笔记1、Jenkins介绍Jenkins 是一款流行的开源持续集成(Continuous Integration)工具,广泛用于项目开发,具有自动化构建、测试和部署等功能。官网: http://jenkins-ci.org/。Jenkins的特征:开源的Java语言开发持续集成工具,支持持续集成,持续部署。易于安装部署配置:可通过yum安装,或下载war包以及通过docker容器等快速实现安装部署,可方便web界面配置管理。消息通知及测试报告:集成RSS/E

2021-02-28 11:31:24 2638

原创 Netty-案例 WebSocket与netty实现长连接案例(代码注释详解)

NettyNettyServerpackage com.fs.netty.simple;import io.netty.bootstrap.ServerBootstrap;import io.netty.channel.*;import io.netty.channel.nio.NioEventLoopGroup;import io.netty.channel.socket.SocketChannel;import io.netty.channel.socket.nio.NioServerS

2021-01-07 21:45:24 559 2

原创 Nginx的动态代理,负载均衡,动静分离的简单使用

nginx一 Nginx介绍1.1 为什么要学习Nginx问题1: 客户端到底要将请求发送那台服务器问题2:所有客户端的请求都发送给了服务器1问题3:客户端发送的请求可能是申请静态资源的,也有可能是访问动态资源的1.2 Nginx介绍特点:1.稳定性极强,7*24小时不间断运行2.Nginx提供了非常的配置实例3.占用内存小,并发能力强二 Nginx安装2.1 安装version: '3.1'services: nginx: restart: always

2020-09-23 13:17:48 818 5

原创 分布式事务解决方案之 Alibaba Seata1.3.0 seata-server 1.3.0

分布式事务解决方案之 Alibaba Seata1.3.0一 Seata 是什么?Seata 是一款开源的分布式事务解决方案,致力于提供高性能和简单易用的分布式事务服务。Seata 将为用户提供了 AT、TCC、SAGA 和 XA 事务模式,为用户打造一站式的分布式解决方案。详情查看官方文档https://seata.io/zh-cn/docs/overview/what-is-seata.html术语TC (Transaction Coordinator) - 事务协调者维护全局和分支事务的状

2020-09-22 11:45:07 540 2

原创 ElasticSearch,docker 安装ElasticSearch,Springboot 使用 ElasticSearch JavaAPI

什么是 ElasticSearch ?数据库查询存在的问题:性能低:使用模糊查询,左边有通配符,不会走索引,会全表扫描,性能低关键字模糊查询比较麻烦ElasticSearch概念• ElasticSearch是一个基于Lucene的搜索服务器• 是一个分布式、高扩展、高实时的搜索与数据分析引擎• 基于RESTful web接口• Elasticsearch是用Java语言开发的,并作为Apache许可条款下的开放源码发布,是一种流行的企业级搜索引擎• 官网:https://www.elas

2020-09-06 09:43:43 962 2

原创 RabbitMQ,Springboot整合RabbitMQ实现 消息可靠性投递,Consumer ACK,TTL,死信队列,使用TTL+死信队列=延迟队列

搭建SpringBoot项目,用于演示springboot版本 <!-- spring boot --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-dependencies</artifactId&gt

2020-09-04 20:03:39 1191

原创 RabbitMQ,RabbitMQ 的工作模式,Spring 整合 RabbitMQ,Springboot 整合RabbitMQ

什么是RabbitMQ1.1 MQ概述MQ全称 Message Queue(消息队列),是在消息的传输过程中保存消息的容器。多用于分布式系统之间进行通信。⚫ MQ,消息队列,存储消息的中间件⚫ 分布式系统通信两种方式:直接远程调用 和 借助第三方 完成间接通信⚫ 发送方称为生产者,接收方称为消费者1.2 MQ 的优势和劣势优势应用解耦:提供了程序的可扩展性 系统的耦合性越高,容错性就越低,可维护性就越低。异步提速:提高了系统的性能 提升用户体验和系统吞吐量(单位时间内处理请求的数

2020-09-01 23:35:08 336

原创 SpringCloud微服务架构,Config 分布式配置中心,Bus 消息总线, Stream 消息驱动,Sleuth+Zipkin 链路追踪

Config分布式配置中心Config 概述概述• Spring Cloud Config 解决了在分布式场景下多环境配置文件的管理和维护。• 好处:• 集中管理配置文件• 不同环境不同配置,动态化的配置更新• 配置信息改变时,不需要重启即可更新配置信息到服务Bus 消息总线Bus 概述• Spring Cloud Bus 是用轻量的消息中间件将分布式的节点连接起来,可以用于广播配置文件的更改或者服务的监控管理。关键的思想就是,消息总线可以为微服务做监控,也可以实现应用程序之间相通信。

2020-08-31 22:31:14 561

原创 SpringCloud微服务架构之,Hystrix 熔断器,Gateway 网关

Hystrix 概述Hystix 是 Netflix 开源的一个延迟和容错库,用于隔离访问远程服务、第三方库,防止出现级联失败(雪崩)。pom依耐 <!-- hystrix --> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-star

2020-08-29 22:52:41 1252 1

原创 SpringCloud微服务架构,Spring Cloud 服务治理(Eureka,Consul,Nacos),Ribbon 客户端负载均衡,RestTemplate与OpenFeign实现远程调用

什么是SpringCloud微服务架构• "微服务”一词源于 Martin Fowler的名为 Microservices的博文,可以在他的官方博客上找到http://martinfowler.com/articles/microservices.html• 微服务是系统架构上的一种设计风格,它的主旨是将一个原本独立的系统拆分成多个小型服务,这些小型服务都在各自独立的进程中运行,服务之间一般通过 HTTP 的 RESTfuLAPI 进行通信协作。• 被拆分成的每一个小型服务都围绕着系统中的某一项或

2020-08-28 23:16:02 421

原创 浅谈:Spring Boot原理分析,切换内置web服务器,SpringBoot监听项目(使用springboot-admin),将springboot的项目打成war包

浅谈:Spring Boot原理分析Condition⚫ 自定义条件:① 定义条件类:自定义类实现Condition接口,重写 matches 方法,在 matches 方法中进行逻辑判断,返回boolean值 。 matches 方法两个参数:• context:上下文对象,可以获取属性值,获取类加载器,获取BeanFactory等。• metadata:元数据对象,用于获取注解属性。② 判断条件: 在初始化Bean时,使用 @Conditional(条件类.class)注解⚫ Sprin

2020-08-25 20:20:09 359

原创 浅谈SpringBoot的基本概念与简单的使用与yml文件的基本使用, 整合Redis,整合MyBatis

SpringBoot什么是SpringBootSpringBoot提供了一种快速使用Spring的方式,基于约定优于配置的思想,可以让开发人员不必在配置与逻辑业务之间进行思维的切换,全身心的投入到逻辑业务的代码编写中,从而大大提高了开发的效率,一定程度上缩短了项目周期。2014 年 4 月,Spring Boot 1.0.0 发布。Spring的顶级项目之一(https://spring.io)。SpringBoot 功能1) 自动配置Spring Boot的自动配置是一个运行时(更准确地说,是应

2020-08-25 08:29:09 350

原创 Dockerfile文件创建centos:7,配置JDK8的环境变量,与运行springboot的jar包,的镜像

DockerFile文件创建centos:7 配置JDK8的环境变量 与运行springboot的jar包准备文件一:官网下载Linux的JDK包https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html二:准备springboot的jar包springboot项目使用maven的package命令打开Linux1.创建一个目录来存放我们的jdk与我们的jar包我这里在根目录下创建/docker/s

2020-08-24 22:47:06 1058

原创 浅谈Docker:DockerLinux安装,镜像管理命令,镜像制作命令,容器管理命令,数据卷,DockerFile,Docker-compose

什么是Docker?Docker 概念• Docker 是一个开源的应用容器引擎• 诞生于 2013 年初,基于 Go 语言实现, dotCloud 公司出品(后改名为Docker Inc)• Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的Linux 机器上。• 容器是完全使用沙箱机制,相互隔离• 容器性能开销极低。• Docker 从 17.03 版本之后分为 CE(Community Edition: 社区版) 和 EE(Enterpr

2020-08-24 13:22:13 300

原创 浅谈Java锁,与JUC的常用类,集合安全类,常用辅助类,读写锁,阻塞队列,线程池,ForkJoin,volatile,单例模式不安全,CAS,各种锁

浅谈JUC的常用类JUC就是java.util.concurrent…包下的类回顾多线程Java默认有几个线程? 2 个 mian、GCJava 真的可以开启线程吗? 开不了,点击源码得知:本地方法,底层的C++ ,Java 无法直接操作硬件线程有几个状态public enum State { NEW,//新生 RUNNABLE,//运行 BLOCKED,//阻塞 WAITING,//等待,死等

2020-08-15 12:41:22 345

原创 浅谈:MyBatis-Plus的CRUD与乐观锁,分页插件,逻辑删除

浅谈:MyBatis-Plus的CRUD与乐观锁,分页插件,逻辑删除MyBatis-Plus官方文档连接什么是MyBatis-Plus请点击上面官方文档查看代码演示:代码注释为功能详细解释数据库创建maven项目,基于springboot,mvc请参考官网pom.xml<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xml

2020-08-11 22:15:51 332

原创 使用Freemarker来页面静态化,与Spring整合使用

页面静态化介绍页面静态化其实就是将原来的动态网页(例如通过ajax请求动态获取数据库中的数据并展示的网页)改为通过静态化技术生成的静态网页,这样用户在访问网页时,服务器直接给用户响应静态html页面,没有了动态查询数据库的过程。那么这些静态HTML页面还需要我们自己去编写吗?其实并不需要,我们可以通过专门的页面静态化技术帮我们生成所需的静态HTML页面,例如:Freemarker、thymeleaf等。FreeMarker什么是FreeMarker?实际上用程序语言编写的程序就是模板。 F

2020-08-10 17:12:38 260

纯javascript制作一个简单的点名器.rar

纯javascript制作的简单的班级点名器,用一些简单的样式,一些简单的DOM 和BOM实现,数据使用字符串,然后,号分割,然后遍历添加到标签中

2020-06-24

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除