Tomcat 学习笔记二
学习一
java.bean.PropertyChangeListener用来监听bean类的属性值改变。当改变时同时执行对应事件。而且是线程安全的。tomcat用此reload的Boolean值改变是否要重新加载。
public class Demo2 implements PropertyChangeListener{
PropertyChangeSupport support = new PropertyChangeSupport(this);
private String name;
public String getName() {
return name;
}
public Demo2()
{
this.name = "apple";
addListenProperty(this);
}
public void setName(String name) {
String oldName = this.name;
this.name = name;
support.firePropertyChange("name", oldName, this.name);
}
public void addListenProperty(PropertyChangeListener li)
{
support.addPropertyChangeListener(li);
}
@Override
public void propertyChange(PropertyChangeEvent evt) {
System.out.println("--------------------------------");
System.out.println(evt.getOldValue());
System.out.println(evt.getNewValue());
System.out.println(evt.getPropertyName());
((Demo2)evt.getSource()).gotoSchool();
System.out.println("--------------------------------");
}
public void gotoSchool()
{
System.out.println("welcome to MIT !");
}
}
Test测试类
public class Demo {
public static void main(String[] args) {
Demo2 t = new Demo2();
t.setName("jobs");
System.out.println("~~~~~~~~~~~~~~~~");
t.setName("steven");
}
}
测试结果
--------------------------------
apple
jobs
name
welcome to MIT !
--------------------------------
~~~~~~~~~~~~~~~~
--------------------------------
jobs
steven
name
welcome to MIT !
--------------------------------
学习二
接口Pipeline 流水线功能学习有点类似于过滤器构造。它有一个Value数组。使用 System.arraycopy() 来扩展流水线阀门个数。
invoke方法传递到下一个。阀门全部通过之后有一个basic方法。就是warpper包装器了。
这时候开始加载Servlet.class。执行service方法。阀门可以用来HeaderLoggerValve,ClientIPLoggerValve记录日志。
public interface Pipeline {
public Valve getBasic();
public void setBasic(Valve valve);
public void addValve(Valve valve);
public Valve[] getValves();
public void removeValve(Valve valve);
public Valve getFirst();
}
接下来接口Lifecycle,用于控制类的生命周期了。几乎所有的容器都实现了这个类。
还有loader类。类的加载。动态加载webapp下的class文件。有点复杂有时间在看看。
附上tomcat各容器之间关系图,多看看,多想想。

流程图

Tomcat 学习笔记二的更多相关文章
- Tomcat学习笔记(二)
Servlet浅析 javax.servlet.Servlet是一个接口,所有的Servlet必须实现接口里面的方法. 该接口在tomcat/bin中的servlet-api.jar包中. Servl ...
- WPF的Binding学习笔记(二)
原文: http://www.cnblogs.com/pasoraku/archive/2012/10/25/2738428.htmlWPF的Binding学习笔记(二) 上次学了点点Binding的 ...
- AJax 学习笔记二(onreadystatechange的作用)
AJax 学习笔记二(onreadystatechange的作用) 当发送一个请求后,客户端无法确定什么时候会完成这个请求,所以需要用事件机制来捕获请求的状态XMLHttpRequest对象提供了on ...
- [Firefly引擎][学习笔记二][已完结]卡牌游戏开发模型的设计
源地址:http://bbs.9miao.com/thread-44603-1-1.html 在此补充一下Socket的验证机制:socket登陆验证.会采用session会话超时的机制做心跳接口验证 ...
- JMX学习笔记(二)-Notification
Notification通知,也可理解为消息,有通知,必然有发送通知的广播,JMX这里采用了一种订阅的方式,类似于观察者模式,注册一个观察者到广播里,当有通知时,广播通过调用观察者,逐一通知. 这里写 ...
- java之jvm学习笔记二(类装载器的体系结构)
java的class只在需要的时候才内转载入内存,并由java虚拟机的执行引擎来执行,而执行引擎从总的来说主要的执行方式分为四种, 第一种,一次性解释代码,也就是当字节码转载到内存后,每次需要都会重新 ...
- Java IO学习笔记二
Java IO学习笔记二 流的概念 在程序中所有的数据都是以流的方式进行传输或保存的,程序需要数据的时候要使用输入流读取数据,而当程序需要将一些数据保存起来的时候,就要使用输出流完成. 程序中的输入输 ...
- 《SQL必知必会》学习笔记二)
<SQL必知必会>学习笔记(二) 咱们接着上一篇的内容继续.这一篇主要回顾子查询,联合查询,复制表这三类内容. 上一部分基本上都是简单的Select查询,即从单个数据库表中检索数据的单条语 ...
- NumPy学习笔记 二
NumPy学习笔记 二 <NumPy学习笔记>系列将记录学习NumPy过程中的动手笔记,前期的参考书是<Python数据分析基础教程 NumPy学习指南>第二版.<数学分 ...
随机推荐
- 蜗牛—苍茫IT文章大学的路(十)
昨晚,有个叫***培训机构鼓吹我们学校.起初我还以为是介绍这个游戏吧.谁知道.它原来是一个培训结构.去年我买的表啊 我知道这会不会去,我也浪费了时间审查.因为今天下午和晚上来测试啊.我没有审查,. 当 ...
- don't touch your phone in any unfamiliar way(转)
直到这两天 Chainfire 说,他正尝试在不修改手机 /System 分区的情况下获取 Android 系统 Root 权限,我才想起他在今年 9 月轻描淡写地提到自己已经把 SuperSU 卖给 ...
- 看德日进,凯文·凯利与Kurzweil老师?
生命从哪里来.要到那里去.生命存在的意义是什么.这些差点儿是人类可以探究的最深层次问题.基督教给出的答案是毁灭和审判.佛学给出的答案是无常,科学的达尔文进化论给出了生命的起点和进化的过程,对于未来.达 ...
- Composer常见问题
Composer常见问题 原文链接:Composer常见问题 安装了Composer后,运行composer --version,查看Composer的版本号.如果出现下面的提示,那么软件安装成功. ...
- 大数据系列修炼-Scala课程04
Scala中继承实现:超类的构造.字段重写.方法重写 关于超类的构建:超类可以在子类没有位置的限制,可以在子类中调用父类的方法 类中字段重写:在重写字段前面加一个override就可以重新赋值 类中方 ...
- jdk1.7 变更
个人实遇: 1.6与1.7 :SimpleDateFormat,1.6要求yyyy必须小写,1.7兼容大小写: jdk 8 新特性: 官方pdf文档(英文版)私人下载地址:http://pan.bai ...
- 第19章 解释器模式(Interpreter Pattern)
原文 第19章 解释器模式(Interpreter Pattern) 解释器模式 导读:解释器模式,平常用的比较的少,所以在写这个模式之前在博客园搜索了一番,看完之后那叫一个头大.篇幅很长,我鼓足了劲 ...
- Codeforces 10C Digital Root 法冠军
主题链接:点击打开链接 #include<stdio.h> #include<iostream> #include<string.h> #include<se ...
- Python - 安全替换字符串模板(safe_substitute) 详细解释
安全替换字符串模板(safe_substitute) 详细解释 本文地址: http://blog.csdn.net/caroline_wendy/article/details/27057339 字 ...
- JAVA于Get和Post差异请求
1. get 离server在对数据的访问.post 它是对server数据的传输. get 请求返回 request - URI 随机信息指出,. Post 请求发送电子邮件.观看新闻或交互式用户发 ...