我们首先了解下standardHost的继承关系:
然后查看start代码如下:
public synchronized void start() throwsLifecycleException {
// Set error report valve
if ((errorReportValveClass != null)
&& (!errorReportValveClass.equals(""))) {
try {
Valve valve = (Valve)Class.forName(errorReportValveClass)
.newInstance();
addValve(valve);
} catch (Throwable t) {
log(sm.getString
("standardHost.invalidErrorReportValveClass",
errorReportValveClass));
}
}
// Set dispatcher valve
addValve(new ErrorDispatcherValve());
super.start();
}
从源码可以知道,只是将addvalve方法为pipeline增加了阀门valve,其实就是增加了
ErrorReportValve和ErrorDispatcherValve对象而已(我们这里只需知道增加了这些东西,其他细节待之后再了解),然后调用了父类的start方法
有了standardEgnine的分析经过,我们知道,其实standardHost也是一样的&