好的,我们先看看这个WebappLoader到底在开始的时候做了什么,先看看他的start()方法. public void start() throws LifecycleException { // 校验 和 更新 当前的组件状态. if (started) throw new LifecycleException (sm.getString("webappLoader.alreadyStarted")); if (debug >= 1) log(sm.getString(&…
第十课: 不知不觉就10篇blog了,说实话,我是第一次更这么长时间的Blog. 嗯,今天说说Loader,在以前的课程中,也就是内个能使用最初级的servlet的那一节,我们使用了URLClassLoader加载Servlet,但是这是不科学的,因为如果用系统自带的Loader加载,servlet能访问类库太多就太不安全了.所以我们需要实现自己的一个加载器,那我们首先看看Java的Loader. JVM在运行的时候,会产生3个classLoader,分别是Boostrap,ClassLoade…
第十七课:StandardWrapper 课前复习: 不知道大家是否还有印象,就是在6.7节课说的4种container,粗略的从大到小来说就是engine,host,context,和wrapper.当时写的时候很纠结,因为后面有详细介绍这4个的计划,所以前面写的可能不是很详尽. 让我们回忆一下,当一个请求到来的时候,发生了什么.比如什么创建Request这里就不说了,之后connector会调用与之关联的容器的invoke方法,之后那就肯定会调用pipeline的invoke,之后一顿inv…
tomcat架构及常用的组件如下: Server Server代表了tomcat服务器,Tomcat启动时即会启动一个server实例,它监听在8005端口以接收shutdown命令,使用 telnet 连接8005 端口可以直接执行 SHUTDOWN 命令来关闭 Tomcat.这个端口的定义用于为管理员提供一个关闭此实例的便捷途径,因此,管理员可以直接telnet至此端口使用SHUTDOWN命令关闭此实例.不过,基于安全角度的考虑,这通常不允许远程进行.tomcat源码之服务器 Service…
虚拟化技术的底层构成: 内核的虚拟化模块(KVM):从内核集去提供虚拟化及CPU指令集的支持,要求CPU支持,(CPU有VMX指令集)   硬件仿真层(QEMU):虚拟一些周边设备,鼠标.键盘.网卡.声卡.显卡   libvirt:负责管理虚拟机,与虚拟机进行交互   用户接口:virt-manager(图形界面).virsh(命令行)   虚拟机:配置文件.硬盘(镜像文件) qcow2 写拷贝技术 前端盘(img) 后端盘(qcow2) xml文件一般不会更改   1.配置yum仓库   Ce…
这不是一篇引起战争的文章 毫无疑问,我之前是一名在微软温暖怀抱下干了近三年的 .NET 开发者,为什么要牛(sha)X一样去搞 Java 呢?因为我喜欢 iOS 阿!哈哈,开个玩笑.其实,开始学 Java 也正好是一个无意之间产生的必然的结果. 很荣幸,当时我差一点没考上大学,还好只有一个叫「软件技术(.NET 方向)」的专业收了我,其实,一直到报道进了学校,我当时并不知道这个专业是干嘛的,听他们说,我们要学一种语言,我想:完蛋了.因为我长这么大只学会了汉语,英语我从没考过及格,又要学语言!不是…
CVE-2019-0199:Apache Tomcat DDOS 0X00漏洞概述 Apache Tomcat HTTP/2拒绝服务漏洞,该漏洞是由于应用服务允许接收大量的配置流量,并且客户端在没有读写请求的情况下可以长时间保持连接而导致.如果来自客户端的连接请求过多,最终可导致服务端线程耗尽,攻击者成功利用此漏洞可实现对目标的拒绝服务攻击. 受影响版本: 9.0.0.M1 < Apache Tomcat < 9.0.14 8.5.0 < Apache Tomcat < 8.5.3…
基于Docker构建企业Jenkins CI平台 一.什么是CI 持续集成(Continuous integration)是一种软件开发实践,每次集成都通过自动化的构建(包括编译,发布,自动化测试)来验证,从而尽早地发现集成错误. 二.CI工具 持续集成工具:jenkins 构建工具:maven 版本控制库:git 镜像仓库:harbor 三.CI流程 工作流程: 1. 开发人员提交代码到Git版本仓库; 2. Jenkins人工/定时触发项目构建; 3. Jenkins拉取代码.代码编码.打包…
一.什么是渲染管道?是指在显示器上为了显示出图像而经过的一系列必要操作.渲染管道中的很多步骤,都要将几何物体从一个坐标系中变换到另一个坐标系中去.主要步骤有:本地坐标->视图坐标->背面裁剪->光照->裁剪->投影->视图变换->光栅化. 二.如何优化内存?有很多种方式,例如1.压缩自带类库:2.将暂时不用的以后还需要使用的物体隐藏起来而不是直接Destroy掉:3.释放AssetBundle占用的资源:4.降低模型的片面数,降低模型的骨骼数量,降低贴图的大小:…
定位 工具位于jdk\bin目录下(双击运行): 可以本地或者远程调试,本地调试会自动加载,远程调试需要配置.下面以Tomcat为例. 概述 监视 线程 抽样器 Java 堆 百度经验参考:https://jingyan.baidu.com/article/e9fb46e172e3747521f76611.html…