web
计网+操作系统
时间来不及了鸭
基础不牢地动山摇
展开
-
Javaweb---IDEA中使用TomCat插件问题
众所周知我们日常web开发的时候每次对内容进行修改就必须新打一次war包,这个过程太过繁琐,为了大大减少这些步骤,我们使用IDEA中的插件Smart TomCat(如下图所示)这个插件就是把tomcat搬到idea中了,大大减少我们的工作量。注意设置以下这几个画圈位置,Tomcat Server 中写的是tomcat的下载路径。下载好这个插件后我们每次更新代码只需要在这个位置点一下就行。在网上运行的时候需要注意,此时这几个位置的匹配性。以上步骤我们的代码就好啦。我们还需要对其进行配置。原创 2024-06-14 14:32:02 · 295 阅读 · 0 评论 -
Javaweb---servlet404问题
那么当我们遇到404错误的时候除了其他解决方式尝试无果之外一定要查看是不是8080端口号被占用了。今天我忍无可忍写一篇CSDN为了以后自己查找方便也看看能不能挽救万千网民于水火。由于端口号被占用这个问题可以引发一系列404错误!从我开始学web开发至今一直遇到的问题没有之一!我们正常的杀死这些占用8080端口号的进程。找到对应的杀不死的进程的pid强制关闭即可。win+r输入cmd打开命令行窗口。上述所列即为使用8080的一些进程。上述表示可以使用命令语句杀死的进程。从此我的界面迎来一片洁净。原创 2024-06-12 14:31:04 · 319 阅读 · 0 评论 -
Javaweb---HTTPS
如果是使用非对称加密进行单次的业务也其实还好,但是如果在业务量较大的时候就会降低运算速度更推荐使用对称加密,当然如果业务都使用非对称加密的时候效率就太差了!:有两个密钥(一对),分为公钥和私钥(公钥是公开的,私钥是要藏好的)a.使用非对称加密运算成本较高、计算速度较慢。b.使用对称加密运算成本较低、计算速度较快。为了保护数据的隐私性我们引入了HTTPS。: 加密和解密使用的密钥是同一个密钥。以此来保证https的安全性。我们引入了第二种方式。原创 2024-06-07 13:25:46 · 206 阅读 · 0 评论 -
javaee---IO代码练习
扫描指定目录,并找到名称中包含指定字符的所有普通文件(不包含目录),并且要求询问用户是否要删除这个文件。我们可以根据代码运行的结果查看到,递归查找代码的每一个文件。查找完111紧接着查找222和333。原创 2024-05-28 14:31:39 · 262 阅读 · 1 评论 -
JavaEE---synchronized原理
就是编译器的一种优化,编译器会对你现在的代码进行优化,当编译器觉得此时场景的锁加上没什么用的时候就会优化掉了.原创 2024-05-23 10:16:35 · 215 阅读 · 0 评论 -
JavaEE---多线程(之CAS)
(compare and swap)字面意思是**"比较并交换**"比较和交换的是内存和寄存器。原创 2024-05-22 15:15:29 · 228 阅读 · 0 评论 -
Javaweb---servlet(5)
Cookie:客户端储存数据的方式(键值对形式)Session:服务器储存数据的方式(键值对形式)1.服务器往浏览器中写入cookie2.通过读取请求获取浏览器发来的cookie内容3.写一个页面来计算当前用户访问了几次...原创 2020-08-14 08:37:11 · 69 阅读 · 0 评论 -
多线程(3)
线程安全的集合类HashMap的put执行方法过程HashMap ConcurrentHashMap HashTable之间的区别原创 2020-09-15 09:33:08 · 76 阅读 · 0 评论 -
Javaweb---servlet(3)
实现一个简单的加法运算:通过url来指定两个要相加的数字接下来就是打包 部署的工作所有任务完成之后 在浏览器中输入请求观察错误分析:tomcat的基本原理:HTTP服务器1.tomcat的启动 初始化a) 创建Socket绑定端口号b) 扫描webapps 加载到当前目录的webapp(把每个webapp都加载到内存中 主要是加载web.xml并进行解析)c) 创建一个单独的扫描的线程 监控webapps目录中webapp的变化情况如果有新增的webapp将会自动加载2.tom原创 2020-08-08 08:54:23 · 94 阅读 · 0 评论 -
数据链路层
1500(MTU)最大传输单元IP数据报分包主要是MTU的限制引起的[注意]:为啥已经有了IP地址还要mac地址?1.mac地址只是存储 两个相邻节点之间的路径ip地址存储的只是 起点和终点2.历史上 mac和ip地址是分开发明出来的MSS:TCP的单个数据报的最大消息长度 在不进行IP分包的情况下如果传输的TCP数据长度<=MSS 就不用进行网络层分包 效率会更高ARP协议: 为了建立局域网内 IP–>MAC的映射关系RARP协议:建立MAC–>IP的映射关系..原创 2020-08-10 08:15:47 · 68 阅读 · 0 评论 -
多线程进阶
CAS举个栗子:CAS的实现:原创 2020-09-11 08:42:54 · 84 阅读 · 0 评论 -
Javaweb---servlet(2)
使用tomcat部署动态页面:1.2.3.4.打包(maven运行package即可) 打成war5.部署 直接把war包拷贝到webapps的目录中即可 (一般不用重启tomcat)6.通过浏览器访问动态页面通过访问刚刚servlet的name来访问里面的内容具体实现的解析过程:...原创 2020-08-06 08:37:45 · 74 阅读 · 0 评论 -
Javaweb---servlet(4)
servle生命周期:1.init(): 初始化(只进行一次)2.service(): 处理客户端请求3.destroy(): 终止(只进行一次)servlet是jvm垃圾回收器进行回收的servlet的更多API:1.HttpServletRequest类的内容(内容和http协议密切相关)2.如何处理表单提交数据:3.遍历获取到header中的所有内容4.5.返回一个页面,每秒自动刷新一次6.写一个错误页面7.写一个重定向代码...原创 2020-08-12 18:19:52 · 67 阅读 · 0 评论 -
一些整理
深浅拷贝问题:**类加载问题**关于类加载的代码:假如Demo2不继承BB方法 那么从main函数开始执行 触发Demo2的加载不会先去加载BB AA结果是 开始->AA.static->BB.static->AA.{}->AA.构造->BB.{}->BB.构造 …new BB的时候才触发AA BB的加载类加载器有哪些双亲委派模型自己写一个类加载器可以违背双亲委派模型只是标准库的三个类加载器需要遵守 其他的类加载器不太需要遵守...原创 2020-09-08 15:31:12 · 63 阅读 · 0 评论 -
多线程进阶(2)
锁优化一些提高锁效率的策略[结合示例讲解]对应的示例讲解:原创 2020-09-13 08:59:19 · 75 阅读 · 0 评论 -
Javaweb---网络层
网络层:处理两个问题:1.地址管理:网络上的主机和节点需要一些规则来区分(身份标识)2.路由选择:数据从主机A到主机B会经过很多路径(过程),这些路径是怎么实现的.IP协议:(两种版本)IPV4IPV6报头结构:地址管理:给每个主机分配一个唯一的身份标识IP地址是32位整数(8个字节) => 42亿9千万但是现在世界连接网络的设备非常多早已经远远的超过了这个数字解决IP地址不够用的问题:NAT机制的例子:IPV6简要:IPV6从根本上解决了IP地址不够用的问题原创 2020-07-27 08:49:38 · 131 阅读 · 1 评论 -
Javaweb---网络编程(1)
引入:协议:就是双方达成的共识,我们都按照这一方式工作/生产.协议的进阶–>标准标准:大家共同达成的协议网络中的协议具体指那些:协议分层—分层的好处1.避免某个协议过于庞大复杂 因此进行拆分归类2.分层之后协议之间就解耦合了 上层协议不需要了解下层协议的细节实现 相当于封装举个栗子:给人打电话 电话没必要管我说的话对方是否听得懂他就干他的事–>把电话拨出去就好了 我也没必要知道电话是如何将号码播出的只需要知道对方能听懂我的话就可以了3.分层次之后,任意层次的协议可以灵活替原创 2020-06-22 10:50:45 · 138 阅读 · 0 评论 -
Javaweb---网络编程(4)
TcpEchoServer原创 2020-06-30 09:06:43 · 102 阅读 · 0 评论 -
TCP十大特性(下)
7.延时应答目的是为了提高效率 在流量控制的基础上尽量返回一个合理的并且比较大的窗口8.捎带应答在延时应答的基础上 进一步提高程序的运行效率9.粘包问题面向字节流传输所具备的共性问题粘包 粘的应用层数据报导致处理数据时容易读取半个应用层数据报10.保活机制Q:如何基于UDP实现可靠传输?(后面专门写博客补充完整版)UDP本身改变不了 要实现应用层可靠传输(即TCP十大特性串起来)主要亮点:确认应答 超时重传(序列号和确认序列号的设定 接受缓冲区和发送缓冲区) ->滑动窗口原创 2020-07-25 08:38:28 · 106 阅读 · 0 评论 -
HTML简介
1.一些标签2.页面的标题3.两个重要的标签4.F12查看浏览器的html5.标题(内容标题)越往下字体越细越小6.链接标签7.段落标签图片标签详细说说我艰辛的找logo的历程(仿佛是个瞎子) 以搜狗logo为例:image标签根据src属性来浏览图片地址 必须是url才行**如果一个页面中含有image标签浏览器会再次给服务器发送请求获取资源**![在这里插入图片描述](https://img-blog.csdnimg.cn/20200629093902202.png原创 2020-07-10 11:19:57 · 114 阅读 · 0 评论 -
Javaweb---网络(4)-http
HTTP协议的细节:URL:就是日常生活中我们常说的网址协议报文格式(重点)通过"抓包"工具分析HTTP具体的协议内容(此处使用fiddler)请求内容:这是一个方法为GET的请求(无body)这是一个方法为POST的请求 (含body)响应内容:HTTP的方法:GET和POST区别[重点]:HTTP的状态码:HTTP中的header:[重点]!...原创 2020-07-01 15:22:42 · 65 阅读 · 0 评论 -
Javaweb---网络编程(3)
套接字:socket是一组API实现网络编程服务器:客户端:原创 2020-06-28 07:55:00 · 121 阅读 · 0 评论 -
线程池(工厂模式)
原创 2020-07-03 06:31:55 · 925 阅读 · 0 评论 -
Javaweb---基础IO
路径:路径的两种表示:绝对路径: 形如C:/D:类型开头的路径D:\Tools相对路径: 先得指定一个参考目录然后以.或者…开头的路径表示具体的文件位置 相对文件的参照点就是当前的目录.\javaweb**关于基本文件的一些操作方法:**1.判断一个文件是否存在2.判断是一个普通文件还是目录3.删除文件 创建文件注意:当磁盘满了的时候createNewFile()就会出现异常.4.file.separator关于目录操作:1.创建一个空目录mkdirs:创建多个目原创 2020-06-19 08:31:17 · 103 阅读 · 0 评论 -
TCP十大特性(上)
1.确认应答(可靠传输最核心的机制)2.超时重传原创 2020-07-21 14:51:01 · 189 阅读 · 1 评论 -
Javaweb---网络(5)
Http改良版(3)1.支持返回静态html文件2.解析处理cookie把cookie解析成键值对形式3.解析处理body把body解析成键值对形式4.实现完整的登陆系统(session简单实现)原创 2020-07-12 08:38:58 · 105 阅读 · 0 评论 -
TCP十大特性(中)
4.滑动窗口在可靠性的前提下提高传输效率滑动窗口(流量控制+拥塞控制)是发送方的概念缓冲区(取决于内核配置)是接收方的概念滑动窗口图示:一些问题:1)2)5.流量控制窗口大小不能无限大 传输速率太快接收方可能处理不过来6.拥塞控制在滑动窗口的机制上限制传输效率(限制窗口大小) 根据当前网络的拥堵状况动态决定实际传输的窗口大小窗口大小的探测实际发送方的滑动窗口大小=min(流量控制窗口大小,拥塞窗口大小)...原创 2020-07-23 14:13:10 · 147 阅读 · 0 评论 -
Javaweb---IO(3)--序列化与反序列化
序列化:把一个结构化数据(对象) 变成一个二进制bit流 (可以把这个bit流保存到文件或通过网络传输)**反序列化:**将二进制bit流还原成原来的对象序列化和反序列化的目的 : 为了让对象可以在网络中传输/在文件中保存在序列化和反序列化中必须保证"数据不丢失" 否则凉凉实现序列化的方式:下面以上图第0个展开:ObjectInputStream: 反序列化ObjectOutputStream: 序列化序列化反序列化代码演示:使用java中内置的序列化反序列化操作...原创 2020-06-26 06:57:16 · 128 阅读 · 0 评论 -
Javaweb---IO流(2)
流:File中少了两个核心操作:读 & 写常见的IO操作(红色方框标记的):文本文件: 用记事本打开是文本类型二进制文件: 用记事本打开的类型看不懂文件描述符表是有上限的 也是可配置的原创 2020-06-23 06:48:18 · 189 阅读 · 0 评论 -
Javaweb---网络(5)
实现HTTP服务器:原创 2020-07-05 20:14:56 · 96 阅读 · 0 评论 -
Maven的安装及使用
maven的安装:maven的使用:看到build success即可证明jar包下载好了内部简介:**注意事项:**当我在下载的时候 下方这个版本号会标红 那么此时的方法有:1.耐心等待2.reimport 3.修改settings.xml成国内的中央仓库见到如下这个现象 说明jar包下载并导入成功这个因人而异 缺啥补啥三大配置:最终结果: 颜色对不上idea也无法识别此时maven项目已经全部就绪 可以开发了...原创 2020-07-31 11:09:39 · 79 阅读 · 0 评论 -
Javaweb---网络编程(2)
网络传输的基本流程:各个层次的协议之间是如何协同工作的核心操作:(画图解释)1.封装:相当于包裹快递2.分用:拆快递封装:分用:刚才没有考虑到网络传输的中间过程 只是考虑我发邮件 我老师收邮件的过程 实际过程其实更加复杂(如图)解析到应用层:可以监视许多非法分子 可以实现网路安全或者国家安全若是有人危害社会安全就会被网警发现 及时处理问题维持社会的稳定!...原创 2020-06-24 21:32:30 · 87 阅读 · 0 评论 -
Javaweb---线程(4)
volatile关键字:作用:保证内存可见性 禁止如下代码编译器进行优化举个栗子:(一个在读一个在写 修改对线程来说可能没改)本来应该是内存快速读取数据到CPU中 在CPU中对数字进行比较但是编译器感觉线程1这个循环没干啥事 于是就对编译器进行了优化.编译器第一次将数据从内存读取到CPU之后 后续直接在CPU寄存器中读取数据(访问的速度 CPU寄存器>内存>CPU 说白了就是学神 学霸 学渣之间的比较) 所以读取的数据一直是0 根本无法跳出循环 但是flag只是在线程1中没有修改 他在原创 2020-06-15 07:27:53 · 97 阅读 · 0 评论 -
Javaweb---线程(1)
开篇:关于进程线程的小理解:进程:就像是一个大车间 要完成的一项任务线程:就是车间的流水线,多个流水线去完成这一项任务.1.线程包含于进程内2.一个进程中可能有多个线程3.线程有自己的指令 线程与线程之间是独立的4.同一个进程中的许多线程的资源是共享的(内存资源 文件)不共享的资源 : 栈 上下文 状态 优先级 记账信息线程:操作系统进行调度和执行的最小单位操作系统管理进程的方式:先描述:用PCB描述 内核只认PCB 一个线程–>一个PCB一个进程–>多个PCB再组织:原创 2020-06-09 09:02:51 · 181 阅读 · 0 评论 -
Javaweb---操作系统初识
操作系统(内核):管理计算机的硬件设备和计算机的软件资源操作系统 = 内核+配套的应用程序进程(任务): 一个程序的执行"过程",可执行程序跑起来 系统就会创建一个对应的进程.进程是分配资源的最小单位程序 vs 进程程序:可执行文件 XXX.exe就是磁盘上的文件是静态的 不动就不变进程: 双击exe文件 操作系统就会加载这个可执行程序PCB中包含哪些信息1.pid 进程的身份标识2.一组内存指针 指向该进程持有的一些重要数据在内存中的位置3.状态 (正在执行or等待执行)就原创 2020-06-08 14:23:04 · 156 阅读 · 0 评论 -
Javaweb---线程(2)
currentThread:获取当前线程的实例 相当于this但是对于lambda runnable的方式不能用thislambda指向的是lambda表达式对应的接口的实例runnable指向的是runnable的实例Thread的几个常见属性:线程执行前:线程执行后:中断线程:让一个线程结束.情况一:任务执行完毕 结束(run执行完)情况二:任务执行一半 结束(调用interrupt)第一种:第二种:以下两个动作是同时执行的 至于哪个让线程停下来的我们就不得而知.原创 2020-06-11 10:05:21 · 104 阅读 · 0 评论 -
Javaweb---线程(3)
[重难点]线程安全问题:针对上面这个代码:按照正常情况下判断输出的count应该为10000 但是并不是这样多次运行可以发现这个count的值一直在变化.这就是线程不安全导致的因素!串行执行:(此时运行结果正确)并行执行:线程1进行++一半的时候 线程2也在++明明自增两次但是结果却还是1线程不安全的原因:1.线程之间是抢占式执行的(线程不安全的根源 并且无法人为改变)抢占式:线程之间的调度完全由内核决定 用户根本感知不道 也无法控制线程谁先执行谁后执行谁执行到哪里从CP原创 2020-06-12 08:32:51 · 106 阅读 · 0 评论 -
Javaweb---线程(5)
阻塞队列:入队列的时候如果队列满了就会产生阻塞 等待其他线程调用出队列操作 队列中有空位之后才会继续入队列出队列的时候如果队列空了就会产生阻塞 等待其他线程调用入队列操作 队列中有元素了之后才会出队列代码示例:结果演示:情况一:情况2生产者生产的差不多之后 生产者和消费者才会同步运行...原创 2020-06-17 08:18:07 · 97 阅读 · 0 评论