- 博客(12)
- 资源 (1)
- 收藏
- 关注
原创 Tomat源码阅读总结文档的说明
说明 目录下为阅读《深入剖析Tomcat》一书之后的总结,记录Tomcat启动的整体流程以及阅读中自己觉得重要的一些概念、类、思想等。 总结是在完整浏览完全书后进行的思路整理,从整理再到细节,和《深入剖析Tomcat》一书的顺序是相反的。 示例中仍是分析Tomcat4的源码,后续可以对比Tomcat更高的版本看看哪些地方做了改进书中源码源码地址备注: 源码只是学习java过...
2019-01-15 14:26:31
141
原创 (七)类加载器
为什么servlet需要实现一个自定义的载入器 因为servlet容器不应该完全信任它正在运行的servlet类。当使用系统载入器载入某个servlet类所使用的全部类,那么servlet就能够访问所有的类,包括当前运行的JVM中环境变量CLASSPATH指明的路径下的所有类和库, 这是非常危险的。servlet应该只允许载入WEB-INF/classes目录及其子目录下的类, 和从部署的库到...
2019-01-15 14:24:42
152
原创 (六)Servlet容器(Container)
Servlet容器是用来处理Servlet资源的。共有四种容器:Engine(表示整个Catalina servlet引擎);Host(表示包含一个或多个Context容器的虚拟主机);Context(表示一个web应用,可包含多个wrapper);Wrapper(表示一个独立的servlet)。 四种容器虽然是层层包含的关系,但他们的结构是及其类似的,都继承自Container...
2019-01-15 14:24:07
1429
原创 (五)连接器
&emps; 连接器最主要的作用就是等待HTTP请求,并依据请求创建Request和Response对象。所以连接器也包含两个部分:等待HTTP请求的Connector;依据请求创建Request和Response的Processororg.apache.catalina.connector.http.HttpConnector类 在Tomcat4中仍存在的一个类,后面已经舍...
2019-01-15 14:23:23
224
原创 (四)Digester通过server.xml文件构建server对象
真正的server.xml文件中包含很多内容,但只要连接其规则,就能从server.xml文件中解读出server对象的内容。 从使用示例中分析.代码 源码地址xml文件:<?xml version="1.0" encoding="ISO-8859-1"?><employee firstName="Freddie" lastName="Mercury">
2019-01-15 14:22:11
163
原创 (三)Server和Service
通过Server可以让我们以一种优雅的方式来启动/关闭整个系统。 从Catalina类看出,启动整个服务只需要通过server.start()就可以,它会带动其中所有组件的启动,然后无期限的等待关闭命令, 关闭系统,则是通过向指定端口发送一条命令, 调用server.stop()就可关闭所有的组件.StandardServer类 Tomcat使用的就是这个标准Server类,它实现了...
2019-01-15 14:20:47
5388
原创 (二) Catalina类
运行Bootstrap启动类后,会创建Catalina实例,并调用其process()方法。org.apache.catalina.startup.Catalina类 先看process方法做了那些事情public void process(String args[]) { setCatalinaHome(); //设置"catalina.home"路径 setCa...
2019-01-15 14:19:16
261
原创 (一)BootStrap启动类
Bootstrap是Tomcat的启动类。org.apache.catalina.startup.Bootstart类 Bootstrap类是Tomcat的启动类, 下面是其main方法:public static void main(String args[]) { // Set the debug flag appropriately for (int i = 0...
2019-01-15 14:18:22
1405
原创 字符编码方式(即转换为字节的方式)
Unicode符号集 它包含了世界上所有的符号,并且每一个符号都是独一无二的.Unicode只是一个符号集,它只规定了符号的二进制代码,却没有规定这个二进制代码应该如何存储. Java中字符是采用Unicode符号集。GB2312&GBK GB2312是国家制定的汉字编码标准,使用双子节进行编码,共收入6763个汉字和682个非汉字图形字符。GBK即对国标编码的扩展,在GB2...
2018-12-19 18:54:26
2890
原创 java IO流总结
IO相关类关系图输入字节流InputStreampackage java.io;public abstract class InputStream implements Closeable { private static final int MAX_SKIP_BUFFER_SIZE = 2048; public abstract int read() throws ...
2018-12-19 18:52:42
99
原创 mybatis中变量遇到的变量对应的坑
将Integer类型的变量存入mysql数据库中 例如mybatis中有如下的条件修改,number为Interger类型的变量<if test="number != null && number != ''"> number = #{number, jdbcType=BIGINT},</if> 你会发现,唯独number=0时,数据...
2018-11-06 11:39:16
2886
原创 Map<String, Object> map = new HashMap<String, Object>(existMap)解析
HashMap初始化使用Map<String, Object> map = new HashMap<String, Object>(existMap);map得到的新map与原existMap的联系。实验代码/** * HashMap使用new HashMap<>(map)复制另一个map时,为浅复制,生成了另一块空间, * 但新map中引用的对象仍与原map相同,修改引用对象中的值,两个ma
2017-04-01 15:12:28
3355
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人