Tomcat源码解读系列(二)——Tomcat的核心组成和启动过程
?
????????? Tomcat在接收到用户请求时,将会通过以上组件的协作来给最终用户产生响应。首先是最外层的Server和Service来提供整个运行环境的基础设施,而Connector通过指定的协议和接口来监听用户的请求,在对请求进行必要的处理和解析后将请求的内容传递给对应的容器,经过容器一层层的处理后,生成最终的响应信息,返回给客户端。
?在介绍请求的处理过程时,将会详细介绍各个组件的作用和处理流程。本文将会主要分析Tomcat的启动流程,介绍涉及到什么组件以及初始化的过程,简单期间将会重点分析HTTP协议所对应Connector启动过程。
?
1 楼 coolhuali 2012-09-03 /* 联系人对象*/public class ContactPerson {
private String personName;
private String mobileNumber;
private String email;
public void setMobileNumber(String mobileNumber) {
this.mobileNumber = mobileNumber;
}
public String getMobileNumber() {
return mobileNumber;
}
public void setEmail(String email) {
this.email = email;
}
public String getEmail() {
return email;
}
}
/*联系人*/
public class Recipient {
private List<ContactPerson> contactPersonList=new ArrayList();
public void addContactPerson(ContactPerson contactPerson){
this.contactPersonList.add(contactPerson);
}
public Iterator<ContactPerson> iterator(){
return contactPersonList.iterator();
}
}
/*邮件发送接口*/
public interface SMTransport {
public abstract void sendMessage(ShortMessage shortmessage);
}
/*使用手机短信的方式发送消息*/
public class CellPhoneTransport implements SMTransport {
public void sendMessage(ShortMessage shortmessage)
{
Recipient recipient = shortmessage.getRecipient();
Iterator it = recipient.iterator();
while(it.hasNext())
{
ContactPerson cp = it.next();
System.out.println("向手机号为"+cp.getMobileNumber()+"的联系人发送信息,内容:"+shortmessage.getContent());
}
}
}
/*使用邮件的方式发送消息*/
public class MailTransport implements SMTransport {
public void sendEmail(ShortMessage shortmessage)
{
Recipient recipient = shortmessage.getRecipient ();
Iterator it = recipient.iterator();
while(it.next())
{
ContactPerson cp = (ContactPerson)it.next();
System.out.println("向邮件地址为"+cp.getEmail()+"的联系人发送信息,内容:"+shortmessage.getContent());
}
}
}
/* 短消息核心类*/
public class ShortMessage {
private String content;
private Recipient recipient;
private SMTransport smTransport;
public void setRecipient(Recipient recipient){
this.recipient = recipient;
}
public Recipient getRecipient(){
return this.recipient;
}
public void setContent(String content){
this.content = content;
}
public String getContent(){
return this.content;
}
public void addTransport(SMTransport smTransport){
this.smTransport = smTransport;
}
public void send(){
smTransport.sendMessage(this);
}
}