servlet 工作原理: tomcat首先会拦截到我的请求,并根据我的请求封装请求对象和响应对象,找到我的servlet,当servlet未被创建的时候,它会自动去调用无参的构造完成创建,创建完成后紧接着会调servlet中的init()方法完成这个对象的初始化,init()方法里封装了一个ServletConfig 对象,我们称之为初始化对象,通过初始化对象我们可以得到在web.xml中配置的初始化参数,然后对我的成员变量完成初始化,调用完init()方法之后,它会调用service()方法并将请求对象和响应对象转交给我的service,service会根据用户的请求去调用doget()、dopost()或其他do方法。当我第二次再访问servlet的时候,当我的servlet对象已经存在的时候,它会直接去调我的service()方法,并将请求对 象和相应对象转交给我的servlet,所以servlet在容器中是单例多线程的,当tomcat每次去调servlet的时候,它会给servlet对应启动一个线程来完成动作,当servlet的整个生命周期结束的时候,它会默认调用我的destory()方法完成servlet的销毁,所以在servlet中构造方法和init()方法都只能调用一次,它会通过service()方法不停的去调doget()或dopost()方法。