展开全部
服务器只会创建每个Servlet的单一实例,每个用户请求都会引发新的线程,将用户请求交给相应的doGet或者doPost进行处理。
首次创建Servlet时,它的init方法会得到调用,因此init方法是放置一次性代码的地方,之后针对每个用户请求,都会创建一个线程,该线程调用前面创建的实例的Service方法。多个并发请求回导致多个线程同时调用Service(尽管可以实现特殊的接口(SingleThreadModel)——规定任何时间只允许单个线程运行)。之后Service方法依据接受到得HTTP请求类型调用doGet,doPost,或者其他的doXXX方法。最后如果服务器决定卸载某个Servlet,它首先会调用servlet的destroy方法。
首次创建Servlet时,它的init方法会得到调用,因此init方法是放置一次性代码的地方,之后针对每个用户请求,都会创建一个线程,该线程调用前面创建的实例的Service方法。多个并发请求回导致多个线程同时调用Service(尽管可以实现特殊的接口(SingleThreadModel)——规定任何时间只允许单个线程运行)。之后Service方法依据接受到得HTTP请求类型调用doGet,doPost,或者其他的doXXX方法。最后如果服务器决定卸载某个Servlet,它首先会调用servlet的destroy方法。
展开全部
susas说的是对的,Servlet的实例由应用服务器(比如tomcat)的Web容器管理,服务启动后,第一次调用某个Servlet的时候,Web容器会创建该Servlet的实例供客户端调用,然后保存该实例,在下次调用时直接使用这个实例,而不需要创建新的实例,所以叫只需要创建Servlet的实例一次
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
servlet是容器启动时他就启动了
他有个init方法
比如你的容器是tomcat
那么当tomcat运行时,你的servlet的init方法就会被执行了。
所以并不是一次请求他会执行一次,而是容器启动时他就执行了 ,并且只执行一次
他有个init方法
比如你的容器是tomcat
那么当tomcat运行时,你的servlet的init方法就会被执行了。
所以并不是一次请求他会执行一次,而是容器启动时他就执行了 ,并且只执行一次
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
单例模式 只存在一个实例 不管多少人使用 都是用的一个实例
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询