当前位置:首页>正文

servlet单实例多线程例子 java servlet 实例

2024-01-08 16:14:35 互联网 未知

servlet单实例多线程例子

在单机上,任意一个servlet都是单实例(只初始化一次),并且被多线程访问(多个客户端请求),那么它的实现原理是servlet作为工具类(或者说叫无状态类),所以核心在于无状态
package org.ggff.test

public class Servlet {
private static Servlet instance=new Servlet()
private Servlet(){

}
public static Servlet getInstance(){
return instance
}
public void services(){
System.out.println("do something")
}

static class Client extends Thread{
private Servlet servlet
public Client(Servlet servlet){
this.servlet=servlet
}
public void run(){
servlet.services()
//System.out.println("do something")
}
}

public static void main(){
Servlet servlet=Servlet.getInstance()
for(int i=0i<10i ){
Client client=new Client(servlet)
client.start()
}
}
}

java servlet 实例

不同的业务请求一般对应不同的servlet,只会有一个servlet实例被容器产生,但是由不同的servlet类实例化的,对提交到同一个servlet类的多个业务请求,因此一个请求是可以产生多个servlet的:容器里有2个servlet(当然,如果你要把两个业务逻辑写在同一个servlet内另当别论了) 问题2?”。一个servlet是在第一次被访问时加载到内存并实例化的:只有一个servlet实例,共享一个servlet对象(即这个servlet类只被实例化一次) 别忘了,这是在“一个servlet对应一种业务请求”的前提下,但说法不严谨。你的这个理解按说是正确的。同样的业务请求共享一个servlet实例,可以有多个servlet,请求还可以从一个servlet forward到另一个servlet,每个servlet类都只被实例化一次! 应该说. 想也知道拉。 “对于同一个业务请求,如果创建几千万个实例的话服务器还怎么跑得动一个web容器,直到应用程序终止或服务器shutdown 问题1,如果一个网站要被几千万人同时登录

随便看看