关于servlet的实例化
Posted zkj1204
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于servlet的实例化相关的知识,希望对你有一定的参考价值。
看项目的源码,只能看到servlet有多少个方法,其实现类也没有进行实例化或者调用init的方法,感觉很奇怪。
后面看到一篇文章,介绍tomcat的源码才知道servlet的实例化是再tomcat中。
主要是这个类:org.apache.catalina.core.StandardWrapper
其中主要是判断servlet是否实例化过,这个方法加了锁,如果有,则返回当前实例,所以,servlet是是非线程安全的,如果有多个线程使用这个servlet,就需要小心了。
tomcat是servlet的容器,tomcat启动后,加载容器内的所有应用。当一个应用被加载时,servlet容器会创建一个ServletContext,然后将它放在内存中(即只有一个实例,不会过期),然后加载每个应用的web.xml文件,根据配置,实例化servlet。
将他们放在server的内存中。在创建的时候,init()方法会被调用,应用退出,则调用destory()方法。
以上是关于关于servlet的实例化的主要内容,如果未能解决你的问题,请参考以下文章
无法实例化 javax.servlet.ServletException
实例化 servlet 类 org.glassfish.jersey.servlet.ServletContainer 时出错