03 2021 档案
摘要:centos7版本对防火墙进行加强,不再使用原来的iptables,启用firewalld 简单上手(以配置8080端口为例) 输入命令查看防火墙的状态 firewall-cmd --state; 如果没有开启,输入命令 systemctl start firewalld.service; 开启80
阅读全文
摘要:简介 maveb生命周期这个概念听起来很晦涩难懂,简单来讲可以理解为项目在创建阶段的编译测试打包这一系列过程 在idea中,maven的这些生命周期变成了一个个功能的按钮 下面这个图介绍了idea maven管理界面的各种功能 1 clean命令 清除编译产生的target文件夹内容,可以配合相应命
阅读全文
摘要:注意看plugins标签所在的位置 plugin的父标签plugins 可以直接放在build标签下 也可以放在pluginManagement标签下 而我们在创建maven项目的时候 默认存在的那个plugins标签是在pluginManagement标签下的 而pluginManagement标
阅读全文
摘要:为什么要去使用beanFactory? 主要是为了解耦合 我们可以去看一个很简单的案例 一个web项目可以分为 控制层 业务层 dao层 如果说根据分层来分模块开发,那么控制层就会依赖业务层,业务层又会依赖dao层 那么一旦dao层的代码发生变化,比如以前的类设计有问题,重新换个类,那么业务层就会发
阅读全文
摘要:前言 上一篇博客servlet抽取二:基于注解的方式实现的程序还有许多的优化空间,需要改进,首先每次调用都需要扫描类和方法,需要新建了一个对象,而这些过程是重复的,所以这篇博客是基于上次的程序进行改进,在Tomcat启动的时候,就进行控制器的扫描,并存储,然后提高效率 当Tomcat启动或终止时,S
阅读全文
摘要:回顾 之前写过一篇博客是servlet的抽取 但是在使用的时候,每次都要加上method=xxx 现在就想基于之前的方法进行改进,实现类似于springmvc那样的效果 直接根据请求,找到对应的方法,来执行, 所以现在就是用注解的方式对之前的serlvet抽取进行改进 思想 创建一个servlet,
阅读全文
摘要:maven官方的插件都发布在这个网站 https://maven.apache.org/plugins/ tomcat maven插件官网在这 https://tomcat.apache.org/maven-plugin.html tomcat maven插件 官方文档https://tomcat.
阅读全文
摘要:创建无骨架的java工程 修改打包方式 标准web项目的目录结构 问题1: 缺少webapp 目录 问题2: 缺少 web.xml
阅读全文
摘要:一个例子 以servlet的maven依赖为例 <dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <version>4.0.1</version> <scope>provi
阅读全文
摘要:https://www.jianshu.com/p/276d59cbc529 Mysql数据库的安装对于开发者来说,是我们必然会面对的问题,它的安装过程其实并不复杂,并且网络上的安装教程也非常多,但是对于新手来说,各种不同形式的安装教程,又给新手们带来了要选择哪种方式进行安装的难题,而且很多时候按照
阅读全文
摘要:wait、notify、notifyAll 三个方法均必须在synchronized 下才是使用,而且调用方必须是synchronized 的锁对象,如果是其他对象调用,则会报错 且notify和notifyAll所唤醒的线程是同一个锁对象的等待状态的线程 一个例子 class Patient im
阅读全文
摘要:导入jar包 下载jedis的jar包,或者使用Maven,gradle等导入 基本使用 set 字符串 //set 字符串 @Test public void myTest01(){ Jedis jedis = new Jedis("localhost"); jedis.set("jedis_ke
阅读全文
摘要:在JDK1.5之后,如果我们定义一个方法需要接受多个参数,并且多个参数类型一致,我们可以对其简化. 格式: 修饰符 返回值类型 方法名(参数类型... 形参名){ } 代码演示: public static void main(String[] args) { int sum = getSum(6,
阅读全文
摘要:1. js的BOM概述 BOM(Browser Object Model)浏览器对象模型,是将我们使用的浏览器抽象成对象模型,例如我们打开一个浏览器,会呈现出页面,通过js提供BOM对象我们可以模拟浏览器功能。 例如,在浏览器地址栏输入地址,敲击回车这个过程,我们可以使用location对象进行模拟
阅读全文
摘要:编写标准的数据源(规范) Java为数据库连接池提供了公共的接口:javax.sql.DataSource,各个厂商需要让自己的连接池实现这个接口。这样应用程序可以方便的切换不同厂商的连接池! 常见的第三方连接池如下: C3P0是一个开源的JDBC连接池,它实现了数据源和JNDI绑定,支持JDBC3
阅读全文
摘要:场景: 在利用 JAVA 的 Swing 开发 C/S 架构 的前端界面 目的: 想让 JFrame 居中显示在整个 屏幕的正中位置 方法一: JFrame frame = new JFrame("TEST"); frame.setSize(200,100) Toolkit toolkit = To
阅读全文
摘要:1. jQuery对DOM树中的文本和值进行操作 语法 API方法 解释 val([value]) 获得/设置 元素value属性相应的值 text([value]) 获得/设置 元素的文本内容 html([value]) 获得/设置 元素的标签体内容 代码演示 <script type="text
阅读全文
摘要:jQuery对象本身就是数组对象,通过jQuery选择器获得的都是满足该选择器条件的元素对象的集合体。因此常常需要对jQuery对象进行遍历。 1. 原始方式遍历 语法 for(var i=0;i<元素数组.length;i++){ 元素数组[i]; } 代码 <!DOCTYPE html> <ht
阅读全文
摘要:JSP的概念 JSP全名是Java Server Pages,称为Java的动态服务器端网页技术。 Java程序直接嵌入到了HTML中, 页面称为jsp页面, JSP文件的扩展名为.jsp。 JSP中编写java代码 jsp页面中的注释格式: <!-- HTML中的注释 --> JSP中存在,翻译后
阅读全文
摘要:介绍 Yum(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及CentOS中的软件包管理器。基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。 yum
阅读全文
摘要:进入conda标签的时候报错 "EnvironmentLocationNotFound: Not a conda environment: /home/xxx/.conda/envs/anaconda3 " conda 版本4.4以后会出现 原因是conda info--json输出的更改。 版本4
阅读全文
摘要:Linux操作系统部署JDK linux版本JDK上传到linux系统中的 /usr/local下 tar -xvf 解开压缩包 tar -xvf jdk-8u191-linux-i586.tar.gz 配置环境变量 进入 /etc目录中,编辑文件profile 以下代码复制到profile文件中
阅读全文
摘要:网上看到很多的教程所谓的ssh远程连接都是去连接本地的虚拟机,而不是跨电脑访问 假设有电脑A、B,电脑B上安装了虚拟机C 希望从A,直接ssh访问C 方法如下: 主机A,则使用主机B的ip加上之前映射的主机端口来访问 然后映射出来的端口可能被宿主机防火墙屏蔽,所以需要查看防火墙是否关闭了这个端口,如
阅读全文
摘要:什么是动态SQL,为什么要使用动态SQL 举一个简单的例子 需求:根据用户的性别和用户名多条件查询用户信息。 对于这个需求可以写出这样一个mapper的配置 <select id="queryUserBySexAndUsername" resultType="user" parameterType=
阅读全文
摘要:绘制折线图 直接绘制 from matplotlib import pyplot as plt x = range(2,26,2) y = [15,13,14,17,20,25,26,26,27,22,18,15] plt.plot(x,y)#绘图 plt.show() 修改下大小 在显示之前修改窗
阅读全文
摘要:1 #是将传入的值当做字符串的形式,eg:select id,name,age from student where id =#{id},当前端把id值1,传入到后台的时候,就相当于 select id,name,age from student where id ='1'. 2 $是将传入的数据直
阅读全文
摘要:我的相关博文: mybatis动态代理 Mybatis 中$与#的区别 mybatis 全局typeAliases配置(配置别名) mybatis手动映射 mybatis 动态SQL mybatis延迟加载 Mybatis传递多个参数的4种方式 1. 快速上手 1.1. 程序代码 创建这几个文件 U
阅读全文
摘要:参考:你真的懂了mybatis延迟加载吗? 什么是mybatis延迟加载 这玩意就是为了替代多表联合查询的,将一次多表查询换成多次查询,这样再暂时不需要一些数据的时候就可以节省资源 举个例子: 有两张表: 图书表(book): 图书类型表(category): 我们可以这样做在类型实体类里面添加一个
阅读全文
摘要:@Insert注解 注解属性value:写入SQL语句 @Options注解 实现添加新数据的主键封装 注解属性 useGeneratedKeys:使用生成的主键,配置为true keyProperty:主键封装的pojo对象属性 @SelectKey注解 实现添加新数据的主键封装 注解属性 sta
阅读全文
摘要:外键 表与表之间存在“一对多”,“多对一”和“一对一”的关系 多个表之间的关系是通过主键和外键来维护的 外键既可以通过数据库来约束,也可以不设置约束,仅依靠应用程序的逻辑来保证。 # 类别表 create table category( cid int primary key auto_increm
阅读全文
摘要:mysql-8.0.19有两种安装方式 方式1:不配置my.ini就可安装 方式2:配置my.ini进行安装 (这种方式可以自定义设置数据库参数,推荐) 方式一: 1、运行命令窗口(以管理员方式打开) 2、输入:mysqld --initialize --console,成功的话会生成随机密码,注意
阅读全文
摘要:numpy中不同维度的数组进行相加的时候,只要其中一个数组的维度是另一个数组的子维度,那么他们就可以进行运算,相当于把低维数组通过复制,升级到高维,然后再进行运算 比如: a = np.arange(24).reshape(4,6) a array([[ 0, 1, 2, 3, 4, 5], [ 6
阅读全文
摘要:b=a b和a是对同一个对象的引用,互相影响 b = a[:] b和a不是同一对象,b是a的切片,但是b和a的数据会相互影响 b = a.copy() b是a拷贝,a和b互不影响 In [1]: import numpy as np In [2]: a = np.arange(12).reshape
阅读全文
摘要:配置同步文件夹 在启动虚拟机的时候,我们可以看到这样的提示: ==> default: Machine booted and ready! ==> default: Checking for guest additions in VM... default: No guest additions w
阅读全文
摘要:1、初始化虚拟机配置 目录下出现Vagrantfile文件 vagrant init cent 2、新增box并查看是否添加成功 vagrant box add cent cent.box vagrant box list 3、修改Vagrantfile配置文件 (第一个路径:物理机目录,可以是绝对
阅读全文
摘要:vagrant ssh 命令虽然很方便,但是在 Windows 环境下,因为默认的命令行终端不太好用,所以往往还需要使用更专业的 SSH 客户端例如 XShell 或 SecureCRT。 默认的镜像只支持 private_key 的方式登录,vagrant/vagrant 可以在 VirtualB
阅读全文
摘要:私有网络和公有网络的区别 私有网络相当于宿主机作为一层路由器,与宿主机同一网段的电脑不能直接访问到虚拟机,虚拟机和宿主机相当于在另外一个网络中 公有网络相当于让虚拟机直接在宿主机的同一个网段下 私有网络 打开创建虚拟机的文件夹 修改Vagrantfile文件 找到 去掉config.vm.netwo
阅读全文
摘要:vagrant就是一个创建虚拟机的工具 他可以类似于Docker的方式、以及云服务器快速安装系统的方式来快速的安装本地的虚拟机 而不是直接在VirtualBox中添加镜像文件,然后一步步的去安装系统 安装软件 vagrant的使用除了vagrant本身,还需要安装VirtualBox(也可以使用其他
阅读全文
摘要:之前由于某些原因安装了linux现在不需要了,所有在linux下的操作 我都可以虚拟机解决了,而且固态硬盘空间也严重不足,所以想着删除掉,如果直接删除,由于linux的grub引导还在 容易出现各种问题 我的电脑系统引导是uefi的 于是下载了一个easyuefi 然后删除了Ubuntu的引导项 然
阅读全文
摘要:1.Vue简介 1.1. Vue是什么 Vue.JS是优秀的前端 JavaScript 框架 库和框架的区别: 库(如jQuery) 库是工具. 提供大量API,体现了封装的思想、需要自己调用这些API 框架 框架提供了一套完整解决方案, 使用者要按照框架所规定的某种规范进行开发 1.2. 为什么要
阅读全文
摘要:升级win10之后如果出现chrome内核的浏览器网页总是打不开 打开很慢 而ie和edge是可以正常访问的 用这个方法可以 我弄了几天终于 搞好了 我直接转载过来了 近期,工程师收到大量反馈360浏览器,极速模式无法打开网页,兼容模式无此问题。 IE浏览器和Edge都正常。用断网急救箱、重置DNS
阅读全文
摘要:iwn10非服务器版本在多用户登陆的时候,即使不是同一个用户也会让当前用户下线 网上很多方法都是先要修改组策略,而我的win10版本内没有那些教程中相关的项可以设置 后来发现了这篇博文,可以用来参考 解决方法参考这篇博文,链接在这里https://blog.csdn.net/u010804317/a
阅读全文
摘要:开放端口的方法 先从控制面板,进入到Windows Defender防火墙 点击高级设置,点击入站规则 点击右边的新建规则,点击端口,点击下一步 选择协议类型和端口号点击下一步即可 查看是否开放端口成功的方法: 进入任务管理器点击性能,再点击右下方的打开资源监视器 选择网络,点击侦听端口,再防火墙状
阅读全文
摘要:这里依据的是微软自己的教程 https://docs.microsoft.com/en-us/windows/wsl/install-win10#manual-installation-steps 以WSL2为例 他有简单安装和手动安装两个方式 这里选择手动安装 第一步 启动Linux子系统 用管理
阅读全文
摘要:打开windows terminal 点击设置 修改文件 找到profiles-->list 添加一个节点 { "commandline" : "C:\\Program Files\\Git\\bin\\bash.exe" , "guid" : "{f263b0f3-4e4d-d630-298c-6
阅读全文
摘要:常用函数式接口 JDK提供了大量常用的函数式接口以丰富Lambda的典型使用场景,它们主要在java.util.function包中被提供。,下面是最简单的几个接口及使用示例。 Supplier接口 java.util.function.Supplier<T>接口,它意味着"供给" , 对应的Lam
阅读全文
摘要:有的时候写python的代码不能指明类型,作为用java语言习惯的人来说,特别难受,所以再写代码的时候希望也能顺便指明一下类型 def fn(a:int,b:bool,c:str='hello') -> int: ''' 这是一个文档字符串的示例 函数的作用:。。。。。 函数的参数: a,作用,类型
阅读全文
摘要:需求:根据配置文件中的内容创建相应的类的对象,并执行相应的方法 实现: 配置文件 反射 步骤: 将需要创建的对象的全类名和需要执行的方法定义在配置文件中 在程序中加载读取配置文件 使用反射技术来加载类文件进内存 创建对象 执行方法 注意:需要将配置文件放在src目录下,放在src目录下的任何文件,都
阅读全文
摘要:计算机网络 @(目录) 概述 基本概念 带宽 有两种含义 第一种含义: “带宽” 指信号具有的频带宽度。基本单位是赫。 比如wifi频率有2.4G和5G 第二种含义: “带宽”是数字信道所能传送的最高数据率的同义语,单位是比特/秒(bit/s)。 比如上行带宽100M,下行带宽1M 吞吐量 表示在单
阅读全文
摘要:读取本地数据 import numpy as np file_name = r'E:\workspace\Python\data_analyze\numpy\csv_data.csv' t1 = np.loadtxt(file_name,"int",delimiter=",") print(t1)
阅读全文
摘要:@(目录) import numpy as np numpy的属性 array = np.array([ [1,2,3], [2,3,4] ]) print(array) [[1 2 3] [2 3 4]] print('number of dim:',array.ndim) # 维度 # numb
阅读全文
摘要:numpy.random 函数 功能描述 返回值 np.random.rand(d0,d1,…,dn) 元素在[0,1)区间均匀分布的数组 浮点数 np.random.uniform(low,hige, size) 元素在[low,hige)区间均匀分布的数组 浮点数 numpy.random.ra
阅读全文
摘要:numpy中矩阵和数组的对比 数组可以实现矩阵的所有功能,但是矩阵在实现一些功能的时候操作更加简便,比如矩阵的乘法直接使用A*B而不是使用函数,但是数组可以更加灵活的处理各种数据,而且可以表示高维数组,速度更快 numpy.matrix 创建矩阵 matrix ( 字符串/列表/元组/数组 ) ma
阅读全文
摘要:numpy中轴的概念是可以认为是数组的维度的概念 a = np.arange(24).reshape(2,3,4) a array([[[ 0, 1, 2, 3], [ 4, 5, 6, 7], [ 8, 9, 10, 11]], [[12, 13, 14, 15], [16, 17, 18, 19
阅读全文
摘要:1、numpy.where的返回结果 numpy.where调用方式为numpy.where(condition,1,2) 满足条件的位置上返回结果1,不满足的位置上返回结果2 例如通过where()函数将a数组中负值设为0,正值不变 如果没有指定返回结果,只有查找条件则返回满足条件的位置。返回的结
阅读全文
摘要:参考 学习网址:https://blog.csdn.net/column/details/opencv-tutorial.html 1.cv::Mat类是用于保存图像以及其他矩阵数据的数据结构 2.imread函数 加载图像 用imread打开图片给Mat类对象 eg: Mat myMat= imr
阅读全文
摘要:转载自:https://www.jianshu.com/p/b69950a49ae2 最终决定使用PicGo + 国内的github - 码云来实现markdown图床 废话说到这里,开始进入正题 1. 安装 PicGo picgo-plugin-gitee-uploader插件 首先打开picgo
阅读全文
摘要:import pandas as pd import numpy as np Series 创建Series 使用数组创建 可以使用Py原生的list类型,np的数组类型 a = pd.Series(np.arange(2,10,2)) print(a) 0 2 1 4 2 6 3 8 dtype:
阅读全文
摘要:首先在当前用户目录下建立文件夹.pip,然后在文件夹中创建pip.conf文件,再将源地址加进去即可。 mkdir ~/.pip vim ~/.pip/pip.conf # 然后将下面这两行复制进去就好了 [global] index-url = https://mirrors.aliyun.com
阅读全文
摘要:导入 from PIL import Image 加载图片和保存图片 在保存图片的时候会根据输入文件名的后缀名自动转换文件格式 image = Image.open(r'./lena.tiff') image.save(r'./lena.jpg') image.save(r'./lena.bmp')
阅读全文
摘要:错误处理 try、except、finally 先执行try中的语句,如果发生了错误则被except捕获,否则无错误则执行else语句,最终执行finally语句 try: print('try...') r = 10 / int('2') print('result:', r) except Va
阅读全文
摘要:概述 java.util.Properties 继承于 Hashtable ,来表示一个持久的属性集。它使用键值结构存储数据,每个键及其对应值都是一个字符串。该类也被许多Java类使用,比如获取系统属性时,System.getProperties 方法就是返回一个Properties对象。 Prop
阅读全文
摘要:类的定义 class Student: #定义类属性(类似于java的静态成员变量) country = "China" #构造函数 def __init__(self,name,score):#self代表对象本身,类似于java中的this #声明成员变量 self._name = name#如
阅读全文
摘要:切片 参考了廖雪峰老师的教程,做的笔记 L = ['Michael', 'Sarah', 'Tracy', 'Bob', 'Jack'] print(L[0:3]) print(L[:3]) print(L[-2:])#依然是从左到右 ['Michael', 'Sarah', 'Tracy'] ['
阅读全文
摘要:之前在运行Python程序读写文件的时候有时候相对路径可以访问到,有时候相对路径又不能访问 根据不断的尝试,发现Python程序中的相对路径不是相对于py文件而言的,而是相对于运行py文件的路径而言的,特别是如果是使用vscode来运行程序的时候,vscode是默认从打开vscode的那个文件夹取运
阅读全文
摘要:参考资料:luyuze95|python多线程详解 python多线程详解 一、线程介绍 什么是线程 线程(Thread)也叫轻量级进程,是操作系统能够进行运算调度的最小单位,它被包涵在进程之中,是进程中的实际运作单位。线程自己不拥有系统资源,只拥有一点儿在运行中必不可少的资源,但它可与同属一个进程
阅读全文
摘要:1. 下载 下载地址:https://github.com/tporadowski/redis/releases。 下载下来之后是一个压缩包,解压之后就可以直接使用了 运行服务端,然后再运行客户端就可以使用了 2. 配置windows服务 如果只是这样去使用会非常的不方便 我们就可以像安装MySQL
阅读全文
摘要:原先写爬虫都是采用的urllib+Re(正则表达式)来实现的 今天又了解到Requests库,它用来发起请求比urllib要方便许多,现在就来学习一下 我是根据中国大学mooc上北京理工大学嵩天老师的《Python网络爬虫与信息提取》课程进行入门学习的 requests库的官网地址 Requests
阅读全文
摘要:根据廖雪峰老师的python教程进行了学习 @(目录) 高阶函数 map 输入一个iterable(list,tuple等)和一个函数 对这个iterable的每一个元素都执行相应的函数 返回结果放置到新的iterator def f(x): return x * x r = map(f, [1,
阅读全文
摘要:在调用接口的时候传递参数,然后接收这个参数 将这个参数作为方法名 利用反射技术调用该方法 public class BaseServlet extends HttpServlet { @Override protected void service(HttpServletRequest req, H
阅读全文
摘要:1. key (键) Redis有五大数据类型:String、List、Set、Zset、Hash 注意:Redis采用键值对存储数据,key永远是String类型,五大数据类型指的是value部分 2. String (字符串) 一个key对应一个value;String可以包含任何数据,比如jp
阅读全文
摘要:@WebServlet(urlPatterns = "/download") public class DownloadFileServlet extends HttpServlet { @Override protected void doGet(HttpServletRequest req, H
阅读全文
摘要:什么是Servlet启动时加载 Servlet默认是在第一次访问的时候创建的对象。 Servlet启动时加载, 就是让(Tomcat)服务器启动的时候创建Servlet的对象 为什么需要启动时加载 Servlet对象是第一次被访问的时候会被创建的,init方法就会执行。 假设在init方法中做了一些
阅读全文
摘要:读取properties资源文件 分别读取这三个资源文件 resource1.properties 这个文件在resources目录下 它在程序编译完成之后所在的位置是 getResourceAsStream方法的相对的目录是在servlet01这个目录下 所以我们要访问的是/WEB-INF/cla
阅读全文
摘要:Servlet中有两种方式获得转发对象(RequestDispatcher):一种是通过HttpServletRequest的getRequestDispatcher()方法获得,一种是通过ServletContext的getRequestDispatcher()方法获得; 重定向的方法只有一种:H
阅读全文
摘要:1. @Value赋值和@PropertySource加载配置文件 SpEl介绍:https://www.jianshu.com/p/e0b50053b5d3 @Value赋值 public class Person { //使用@Value赋值; //1、基本数值 //2、可以写SpEL; #{}
阅读全文
摘要:指定初始化和销毁函数的方法有 @Bean注解指定初始化和销毁方法 组件实现InitializingBean,DisposableBean接口 在方法上添加@PostConstruct和@PreDestroy注解 1. @Bean注解指定初始化和销毁方法 bean的生命周期: bean创建(构造函数)
阅读全文
摘要:在关系数据库中,如果有上万甚至上亿条记录,在查找记录的时候,想要获得非常快的速度,就需要使用索引。 索引是关系数据库中对某一列或多个列的值进行预排序的数据结构。通过使用索引,可以让数据库系统不必扫描整个表,而是直接定位到符合条件的记录,这样就大大加快了查询速度。 索引的效率取决于索引列的值是否散列,
阅读全文
摘要:张量的轴的概念 如果从后向前访问轴就是使用复数,如上图所示 使用reshape函数改变张量的形状 将形状参数设置为-1,代表自动判断长度 增加和删除维度 增加维度 tf.expand_dims(input,axis) input:输入的张量 axis:操作的轴 效果就是在选定的轴上添加维度(相当于在
阅读全文
摘要:预备工作 在使用tensorflow之前需要先安装tensorflow,然后检查是否安装成功 运行下面的代码 import tensorflow as tf print("tensorflow-version",tf.__version__) 显示tensorflow的版本 tensorflow-v
阅读全文
摘要:@(SQL约束) 什么是约束 约束, 其实就是一种限制条件, 让你不能超出这个控制范围. 而在数据库中的约束, 就是指 表中的数据内容 不能胡乱填写, 必须按照要求填写. 好保证数据的完整性与安全性. 1 主键约束 PRIMARY KEY 约束: 主键必须包含唯一的值, 不能重复。 主键列不能包含
阅读全文
摘要:信息来源于tomcat的官网:http://tomcat.apache.org/whichversion.html Servlet Spec JSP Spec EL Spec WebSocket Spec 7. WebSocket 规范 Authentication (JASIC) Spec 认证(
阅读全文
摘要:bin:脚本目录 启动脚本:startup.bat 停止脚本:shutdown.bat conf:配置文件目录 (config /configuration) 核心配置文件:server.xml 用户权限配置文件:tomcat-users.xml 所有web项目默认配置文件:web.xml lib:
阅读全文
摘要:failed to import package width error: couldn't decompress package 可能是由于目录出现中文或者文件的名字包含空格等原因
阅读全文
摘要:错误一:Failed to fetch 这个错误一般是由端口设置错误造成的,至于我为什么知道,你看看log文件就懂了。打开picgo的log文件。错误提示是端口繁忙。 解决方法:打开picgo设置,点击设置Server选项,将端口改为36677端口,这是picgo推荐的默认端口号,然后保存,成功。
阅读全文
摘要:给容器中注册组件有以下方法 包扫描+组件标注注解(@Controller/@Service/@Repository/@Component)[自己写的类] @Bean[导入的第三方包里面的组件] @Import[快速给容器中导入一个组件] @Import(要导入到容器中的组件);容器中就会自动注册这个
阅读全文
摘要:分页查找的作用 使用SELECT查询时,如果结果集数据量很大,比如几万行数据,放在一个页面显示的话数据量太大,不如分页显示,每次显示100条。 要实现分页功能,实际上就是从结果集中显示第1~100条记录作为第1页,显示第101~200条记录作为第2页,以此类推。 因此,分页实际上就是从结果集中“截取
阅读全文
摘要:多表关联关系分析 多表关联:至少两个表关联。分析多表关系的经验技巧:从一条记录出发,不要从表整体去分析,比如分析A表和B表关系,A表中的一条记录对应B表中的几条记录,如果是一条,那么A到B就是一对一;如果多条,那么A到B就是一对多 一对一,从订单表出发,到用户表,是一对一的关系 一对多,从用户表出发
阅读全文
摘要:为什么需要手动映射 当数据表中的列名和pojo中类的属性名不同时,将会出现封装数据失败的现象,MyBatis无法将数据表中的数据准确的封装到pojo对象中,因此必须使用手动映射的方式来实现。 比如 ,java类User 有一项数据为userId ,而在数据库中user表的对应列为user_id,那么
阅读全文
摘要:简单使用 Mapper动态代理开发遵从的规范 sql映射文件的namespace必须和mapper接口的全限定类名保持一致 mapper接口的接口方法名必须和xml中的sql语句id保持一致 mapper接口的接口方法形参类型必须和sql语句的输入参数类型保持一致 mapper接口的接口方法返回类型
阅读全文
摘要:1. 函数接口中直接是传入多个参数的 1.1. 顺序传入参数 public User selectUser(String name, int deptId); <select id="selectUser" resultMap="UserResultMap"> select * from user
阅读全文
摘要:什么是typeAliases配置,有什么用 一个简单的例子 <mapper namespace="com.kehao.mapper.UserMapper"> <select id="queryUserById" parameterType="Integer" resultType="com.keha
阅读全文
摘要:MyBatis一级缓存 一级缓存:是SqlSession级别的,也就是同一个SqlSession内执行相同select语句的时候,不再去查询数据库,而是从Mybatis内部的缓存内存结构去直接拿到数据。 缓存失效时机: sqlSession关闭 sqlSession提交事务(意味着可能是一个增删改的
阅读全文
摘要:matplotlib绘图可以参考:matplotlib的基本使用 Figure 对象:创建画布 figure( num,figsize,dpi,facecolor,edgecolor,frameon ) num:图形编号或名称,取值为数字/字符串。 figsize:绘图对象的宽和高,单位为英寸。 d
阅读全文
摘要:解决思路: 确定是否是没有安装ifconfig,如果没有,添加上去 首先判断一下是不是缺少了ifconfig,它是在/sbin目录下的 [root@localhost ~]# cd /sbin [root@localhost sbin]# ls 查看一下是否有 ifconfig 没有 ifconfi
阅读全文
摘要:今天在学习shell的时候看到一行代码是这样的 echo "hello" > test.txt 这行代码的意思是将"hello"这个字符串输入到test.txt文件中,但是我对>的作用好奇了起来 经过查阅,记录一下 linux中经常会用到将内容输出到某文件当中,只需要在执行命令后面加上>或者>>号即
阅读全文
摘要:介绍、安装及使用教程 Jupyter Notebook 远程访问配置
阅读全文
摘要:1. jstl标签的基本概述 JSTL(JSP Standard Tag Library),JSP标准标签库,可以嵌入在jsp页面中使用标签的形式完成业务逻辑等功能。jstl出现的目的同el一样, 也是要放到jsp页面中的脚本代码。JSTL标准标准标签库有5个子库,但随着发展,目前常使用的是它的核心
阅读全文
摘要:JSESSIONID什么时候生成并传递到前端的? 如果客户端请求的cookie中不包含JSESSIONID,服务端调用request.getSession()时就会生成并传递给客户端,此次响应头会包含设置cookie的信息 如果客户端请求的cookie中包含JSESSIONID,服务端调用reque
阅读全文
摘要:概述 通过 HTTP 请求加载远程数据。jQuery 底层 AJAX 实现。简单易用的高层实现见get和post方法。$.ajax()方法可以更加详细的设置底层的参数。 语法 jQuery.ajax([settings]) 其中,settings是一个js字面量形式的对象,格式是{name:valu
阅读全文
摘要:1. DriverManager (1) 注册驱动 Class.forName("com.mysql.cj.jdbc.Driver"); 真正注册驱动的是驱动包下 jdbc 文件夹中 Driver 类的 "DriverManager.registerDriver(Driver driver)"方法。
阅读全文
摘要:事务的特性 ACID 事务是并发控制的基本单元。所谓事务一个sql语句操作序列,这些操作要么都执行,要么都不执行,他是一个不可分割的工作单元。 例如:银行转账工作,从一个帐号扣款并使另一个帐号增款,这个两个操作,要么都执行,要么都不执行。 数据库的事务必须具备ACID特性,ACID是指 Atomic
阅读全文
摘要:Java集合体系 Collection 接口:该接口是最基本的集合接口 List 接口:列表 Set 接口:数学概念的集合 Map 接口:包含键值对,Map 不能包含重复的键。SortedMap 是一个按升序排列的 Map 集合。 简化图: 说明:对于以上的框架图有如下几点说明 所有集合类都位于 j
阅读全文
摘要:什么是反射 简单的来说,一般情况下,都是知道一个类,然后由类去创建对象 而反射就算反过来,有一个对象去获得类,去获取类的这个过程就叫做反射 然后获取了类之后,在用这个类对象去获取属性方法,并使用 值得注意的是采用了反射的情况代码运行速度比未使用反射的代码运行速度慢很多 获取Class类对象的方式 先
阅读全文
摘要:java多线程进阶JUC JUC指的就是java.util.concurrent这个包,用于多线程开发 ReentrantLock:用来替代Synchronized 同一个时间只能有一个线程访问临界区,无论读写 用来替代synchroized关键字,使用方法 创建一个ReentrantLock变量r
阅读全文
摘要:多线程的基本使用 创建线程的两种方式 继承Thread类 public class MyThread extends Thread{ @Override public void run() { System.out.println(getName()+" >run"); } public stati
阅读全文
摘要:原文:https://blog.csdn.net/haoyifen/article/details/52733371 让人迷惑的相对路径 Java 中有一个很容易让人误解的问题, 就是路径问题. 我们来看一段代码. 项目路径为 /home/pathExample, 类的全限定名是 org.haoyi
阅读全文
摘要:什么是ServletContext 在Tomcat服务器中的web的项目 也叫做WEB应用程序。在java中 万物皆对象,那么,应用程序也是对象。 在Java Web开发中,使用ServletContext对象表示WEB应用程序。 说明: 在一个WEB应用程序中,只能存在一个ServletConte
阅读全文
摘要:今天在500px看到了一张还不错的图片 准备拿来当壁纸 可是不能下载 所以在网上找到了方法 需要webkit内核的浏览器 比如谷歌浏览器 如下 1.在主页中点击某一张图片进入大图预览页面,将鼠标移动到右侧区域。 2.鼠标右键点击检查 3.点击Sourses 在左边文件目录里找到 drscdn.600
阅读全文
摘要:1 Response对象概述 方向: 服务器 → 浏览器 负责对浏览器进行响应的对象 什么是响应: 服务器接收到请求需要进行处理,将处理以后的结果显示回浏览器端(将这个过程称为是响应Response)。 查看Servlet中的service方法得知, Servlet中使用的ServletRespon
阅读全文
摘要:包管理 安装包 conda install <包名称列表> 指定安装的包:conda install numpy 同时安装多个包:conda install numpy scipy 指定安装的版本:conda install numpy=1.10 、conda install numpy==1.10
阅读全文
摘要:我在使用bash来运行jupyter notebook命令的时候 所有的中文文字都变成了方块 而我使用ls命令的时候,却显示是正常 如图所示: 解决办法,将字符集改成GBK 然后重启bash,否则此时的是内容是乱码,但是重启之后正常
阅读全文
摘要:Request对象概述 方向: 浏览器 → 服务器 负责获取客户端的请求数据 request对象是从客户端向服务器发出请求,包括用户提交的信息以及客户端的一些信息。客户端可通过HTML表单或在网页地址后面提供参数的方法提交数据,然后服务器通过request对象的相关方法来获取这些数据。 查看Serv
阅读全文
摘要:在Web应用系统开发中,文件上传和下载功能是非常常用的功能,今天来讲一下JavaWeb中的文件上传和下载功能的实现。 对于文件上传,浏览器在上传的过程中是将文件以流的形式提交到服务器端的,如果直接使用Servlet获取上传文件的输入流然后再解析里面的请求参数是比较麻烦,所以一般选择采用apache的
阅读全文
摘要:这个是flash的广告 如果直接删除Adobe Flash Helper会导致flash的不正常使用 建议是win+R在输入框中输入service,在service里找到 然后停用再禁用掉就可以了
阅读全文
摘要:新版本创建项目跟原来的版本有很大不一样的,缺少了Spring,以及web创建等。。 创建Web项目: 第一步:创建一个普通的Java项目 跟普通Java项目创建一样,最后点Finish。 第二步:开始创建web项目 右键项目名 创建Spring、SpringMVC等 前面的步骤跟上面的一样,点击fi
阅读全文
摘要:下面说一下手动分区 选择手动分区 然后单击左上角”完成”就会弹出手动分区的配置界面 必须的分区 boot分区: 作用:引导分区,包含了系统启动的必要内核文件,即使根分区顺坏也能正常引导启动 一般这些文件所占空间在200M以下 分区建议:分区的时候可选100M-500M之间,如果空间足够用,建议分30
阅读全文
摘要:通过过滤器实现解决中文乱码问题 编写一个过滤器 @WebFilter(urlPatterns = "/filter/*") public class HelloFilter implements Filter { @Override public void init(FilterConfig fil
阅读全文
摘要:一、行内元素和块级元素 1.1、块级元素(block): 它独占一行; 它的宽高可以设置; 默认时,宽度是100%; 例如:<div>、<h1-h6>、<ul>、<ol> 、<li>等。 1.2、行内元素(inline): 它的宽度由内容决定,高度有内容字体大小决定; 它不可以设置宽高; 它可以和其
阅读全文
摘要:参考:https://www.cnblogs.com/ysocean/p/6889906.html
阅读全文
摘要:关键的两个类 Socket类 该类实现客户端套接字,套接字指的是两台设备之间通讯的端点。 构造方法 public Socket(String host, int port) :创建套接字对象并将其连接到指定主机上的指定端口号。如果指定的host是null ,则相当于指定地址为回送地址。 Socket
阅读全文
摘要:Linux系统部署Tomcat linux版本tomcat上传到linux系统中的/usr/local下 tar -xvf解开压缩包 tar -xvf apache-tomcat-8.5.37.tar.gz 开放Linux8080端口对外访问 /sbin/iptables -I INPUT -p t
阅读全文
摘要:一些基础概念 python的字符串可以使用三种方式来表示 分别是'' "" 和 '''(或者""") 前两者是单行字符串 单引号不转义, 双引号转义, 后者是多行字符串 不过在使用的时候 用双引号框起来的的字符串里面可以直接使用单引号,除此之外还可以使用\来实现转义字符(如\n等) 三引号是多行字符
阅读全文
摘要:一、Docker简介 1.1 虚拟化技术 虚拟化技术是一种资源管理技术,是将计算机的各种实体资源,如服务器、网络、内存及存储等,予以抽象、转换后呈现出来,打破实体结构间的不可切割的障碍,使用户可以比原本的组态更好的方式来应用这些资源。 虚拟化技术主要作用:高性能的物理硬件产能过剩 、 软件跨环境迁移
阅读全文
摘要:DBUtils 如果只使用JDBC进行开发,我们会发现冗余代码过多,为了简化JDBC开发,也可以采用apache commons组件一个成员:DBUtils。 DBUtils就是JDBC的简化开发工具包。需要项目导入commons-dbutils-1.6.jar才能够正常使用DBUtils工具。 概
阅读全文
摘要:翻译自:http://commons.apache.org/proper/commons-io/description.html#Utility_classes User guide 使用指南 Commons-IO contains utility classes, endian classes,
阅读全文
摘要:在JavaEE规范中,WEB项目存在一定的目录结构,具体结构如下: 项目名称(存放于:Tomcat软件安装目录中,webapps目录下的子文件夹) | 静态资源 HTML,CSS,JS | WEB-INF (客户不能直接通过浏览器进行访问) | web.xml 当前WEB项目的核心配置,Servle
阅读全文
摘要:https://blog.csdn.net/guothree2003/article/details/109076273 作为一个新手,今天看到一段奇怪的代码,定义变量时用大括号把变量名括起来了,还有import时也使用了大括号 import { getToken } from '@/utils/a
阅读全文
摘要:Http协议的特点 HTTP协议的特点 基于请求/响应模型的协议。 请求和响应必须成对; 先有请求后有响应。 简单快捷 因为发送请求的时候只需要发送请求方式和请求路径即可 HTTP协议默认的端口:80 例如:http://www.baidu.com:80 Http协议的版本 HTTP/1.0,发送请
阅读全文
摘要:点击Code——》Reformat Code 或者直接输入快捷键 Ctrl+Alt+L
阅读全文
摘要:新建一个idea的java工程 编写一个类,里面有一个add方法 在类名上点右键,选择Generate,可以生成测试类 选择Test测试类 提示创建测试类的根 提示未找到junit5的jar包,点击Fix修复此问题 提示在仓库下载 下载完成,不再提示此包有问题。可以选择一个方法add,也可以选择se
阅读全文
摘要:1 顶层函数(全局函数) parseFloat() 方法 parseFloat() 函数可解析一个字符串,并返回一个浮点数。 语法 var value = parseFloat(string) 提示:该函数指定字符串中的首个字符是否是数字。如果是,则对字符串进行解析,直到到达数字的末端为止. 提示:
阅读全文
摘要:枚举是JDK1.5新增的引用数据类型,和类,接口是一个级别的,定义枚举的关键字为enum。 java.lang.Enum类,是所有枚举的父类。 枚举的本质就是一个类的多个对象。 每一个枚举的成员都是这个类的一个对象 public enum Color { BLUE,GREEN,RED } publi
阅读全文
摘要:注解的定义 一个简单的例子 public @interface Ano01 { String name() default "xiaoming"; int age()default 18; String[] schools() default {"primary school","high scho
阅读全文
摘要:原来的try catch finally处理方法 public class test1 { public static void main(String[] args) { FileInputStream file = null; try { file = new FileInputStream(n
阅读全文
摘要:上下文管理器是Python中的一种协议,它保证了每次代码执行的一致性 一旦进入上下文管理器,就一定会按照规定的步骤退出 如果合理的设计了退出上下文管理器的步骤,就能够很好的处理异常。 上下文管理器被最多用到的场景是资源清理操作。 实现上下文管理器,只要在类定义时,实现__enter__()方法和__
阅读全文
摘要:idea新建文件的时候会给一些默认的模板,但是每次总需要在它的基础上进行修改,就很麻烦 比如一般Servlet中 doPost函数和doGet函数调用的代码都是一样的 那么可以直接修改模板 下次在编写代码的时候就可以少改动一些 默认的servlet模板创建的文件是这样的 修改模板的方法,如下: Fi
阅读全文
摘要:来自github https://github.com/ame-yu/CSDN-export-script CSDN-move CSDN的文章转为MD并全打包一键下载❗❓ 兼容性:现代浏览器应该都行 QuickStart 登陆CSDN 前往https://blog-console-api.csdn.
阅读全文
摘要:一个简单的案例 public class Demo12StreamFilter { public static void main(String[] args) { List<String> list = new ArrayList<>(); list.add("张无忌"); list.add("周
阅读全文
摘要:IntelliJ系中的 Project 相当于Eclipse系中的 Workspace ; IntelliJ系中的 Module 相当于Eclipse系中的 Project ; IntelliJ中一个 Project 可以包括多个 Module ; Eclipse中一个 Workspace 可以包括
阅读全文
摘要:一、war和exploed区别 On Upate Action 与 On Frame Deactivation 这两个选项的设置,依赖于 项目的部署方式 是war包 还是 exploded ,看下面的gif: 这里实在是太灵活了,如果要讲 太费时间了,我们只讲exploded模式下的设置,因为这个我
阅读全文
摘要:默认idea在代码提示的时候,是要求首字母的大小写匹配的 但是我们在编写代码的时候不希望匹配大小写 而是全部提示 设置方法如下: File >Settring >Editor >General >Code Completion 把右边的Match case的√去掉 OK
阅读全文
摘要:https://blog.csdn.net/qq754772661/article/details/111503820 之前这篇文章讲了idea2020.2之后如何新建一个web项目 但是在实际使用的时候就会发现缺少很多web开发所需要的包,一种方法是直接使用maven等工具进行导包 这篇博文主要讲
阅读全文
摘要:引起这个的根本原因是因为你破解了idea,在本地hosts配置了映射,然后idea检测出来弹出警告 服务器证书不可用,不让他弹出的方法。打开idea >file-->Settings然后搜索Server Certificates把下图中的选项勾上就ok
阅读全文
摘要:转载自https://www.cnblogs.com/niuyourou/p/12588407.html 作为个人学习使用,如果侵权请联系我删除 I/O 设备是计算机的重要组成部分,介于处理器与 I/O 设备交互的复杂性,I/O 操作一直是高级语言开发者比较难掌握的一个技术点。 因为高级语言对 I/
阅读全文
摘要:有的时候下载一些软件,这些软件是放在github上的,而由于国内的github网速非常慢,所以可以采用代理的方式 github下载release文件:https://d.serctl.com 可以使用这个网站
阅读全文
摘要:1 表单标签form <form> 表单标签,表单标签在浏览器上没有任何显示。 作用: 收集浏览器用户进行输入的数据, 并把数据发送到服务器端 属性 action:表示用户输入的内容, 被发送到服务器端的路径 method:表单数据发送方式。常用的取值:GET、POST <body> <!--表单-
阅读全文
摘要:gitee项目https://gitee.com/kehaoo/mytest 目录结构如下 其中part1.txt和part2.txt都是内容都是空的 在另一个文件夹 将项目part1文件夹拉取到本地 简单的介绍下操作过程 创建空仓库git init 添加远程仓库地址git remote add o
阅读全文
摘要:1. 什么是EL表达式 EL(Express Lanuage)表达式可以嵌入在jsp页面内部,减少jsp脚本的编写,EL 出现的目的是要替代jsp页面中输出脚本<%= 数据 %>的编写。 2. EL表达式的格式和作用 EL表达式的格式: ${EL表达式内容} EL表达式的作用: 从域对象中查找指定的
阅读全文
摘要:原文地址:https://www.cnblogs.com/huangjinwen/p/6885783.html Eclipse 通过 Maven 建立 SSM 框架项目(web项目)时,默认的web.xml文件版本为 2.3,jre版本为 1.5;在修改其版本遇到了各种问题 例如: web.xml
阅读全文
摘要:原因在于docker没有加入用户组 sudo groupadd docker #添加docker用户组 sudo gpasswd -a kehao docker #检测当前用户是否已经在docker用户组中,其中kehao为用户名,应该修改成自己的 newgrp docker #更新docker用户
阅读全文
摘要:css引入方式 1 css引入方式一_行内 行内样式: 在HTML标签中添加属性 style="属性:属性值" 作用域最小,作用当前标签; 行内样式的优先级最高 <body> <h3 style="color: red;">h3标签</h3> <h3>哈哈</h3> </body> 2 css引入方
阅读全文
摘要:伪类选择器,和一般的DOM中的元素样式不一样,它并不改变任何DOM内容。只是插入了一些修饰类的元素,这些元素对于用户来说是可见的,但是对于DOM来说不可见。伪类的效果可以通过添加一个实际的类来达到。 a:link|a:visited|a:hover|a:active 在 CSS 定义中,a:hove
阅读全文
摘要:【声明,转载自:https://www.jianshu.com/p/7d168078e1f3】 嗯,之前的游戏是基于cocos2d-x引擎的C++环境下开发的,一直被产品吐槽着不能热更新☹️。没办法终于在半年之后决定改用CocosCreator的JavaScript环境来开发,你爱啥时候更新就啥时候
阅读全文
摘要:详见 : https://wiki.centos.org/Download 存档版本 CentOS Linux 7 发布 基于RHEL Source(版本) 7(1804) 7.5 7(1708) 7.4 7(1611) 7.3 7(1511) 7.2 7(1503) 7.1 7(1406) 7 C
阅读全文
摘要:以前在学c的时候对于函数指针的概念没有怎么仔细看,现在回来温习一下,做个记录以后方便回看 因为太简单了,直接把代码pull在这 int main(){ int choose; printf("1.传统调用函数\n"); printf("2.利用函数指针调用\n"); printf("3.函数指针作为
阅读全文
摘要:共用体 共用体就是多个不同类型的数据共用一个内存空间 定义 union MyUnion{ int i; char c; float f; }; 初始化 union MyUnion myUnion; //不能对多个成员同时初始化 union MyUnion myUnion1 = {16};//对第一个
阅读全文
摘要:代码 最终运行的时候会发现命令名也是一个参数,也就是argv[0] int main(int argc, char* argv[]){ /** *这两个参数的形式是固定的 *第一个参数代表传入参数的个数 argument count的缩写 *第二个参数是表示参数向量 argument vector
阅读全文
摘要:由于的java是草草的的过了一遍那样学的 所以对很多概念已经是不太清楚了,这两天开始看android 然后就发现很多东西有点看着懵逼 ,我是打算通过安卓去巩固的java的 然后我看到了在活动中使用toast这里 首先在此之前我的已经手动的写了一个button的,那么我希望说单击button控件就能够
阅读全文
摘要:首先找到安装路径 然后找到一个scripts文件,点击后将路径复制 把这两个配置到环境变量 能够重装还是直接重装软件吧 之后可能会遇到许多小问题的
阅读全文
摘要:windows用户直接执行 conda config --set show_channel_urls yes命令生成.condarc文件 这个文件在用户目录下,然后用文本编辑器打开,用下面的内容替换之 channels: - defaults show_channel_urls: true chan
阅读全文
摘要:前言 从刚接触前端开发起,跨域这个词就一直以很高的频率在身边重复出现,一直到现在,已经调试过N个跨域相关的问题了,16年时也整理过一篇相关文章,但是感觉还是差了点什么,于是现在重新梳理了一下。 个人见识有限,如有差错,请多多见谅,欢迎提出issue,另外看到这个标题,请勿喷~ 题纲 关于跨域,有N种
阅读全文
摘要:一个记录 https://www.cnblogs.com/gansaishi2008/articles/1254603.html https://blog.csdn.net/zhulichen/article/details/78786493
阅读全文
摘要:一般出现这个问题是因为在插入等操作的时候未提交 然后导致数据库加锁产生死锁 可以参考【Mysql】mysql 事务未提交导致死锁 Lock wait timeout exceeded; try restarting transaction 解决办法 先运行SELECT * FROM informat
阅读全文
摘要:刚创建的github版本库,在push代码时遇到错误: 原因是因为刚刚创建的代码库中包含readme文件,导致远程库和本地库不匹配的问题 有如下几种解决方法: 1. push前先将远程repository修改pull下来 ``` $ git pull origin master $ git push
阅读全文
摘要:下面是WebServlet的代码 @Target({ElementType.TYPE}) @Retention(RetentionPolicy.RUNTIME) @Documented public @interface WebServlet { String name() default "";
阅读全文
摘要:转载自:https://www.jianshu.com/p/b9b3d66aa0be 初识 Python中已经有了threading模块,为什么还需要线程池呢,线程池又是什么东西呢?在介绍线程同步的信号量机制的时候,举得例子是爬虫的例子,需要控制同时爬取的线程数,例子中创建了20个线程,而同时只允许
阅读全文

浙公网安备 33010602011771号