unk*_*own 0 java multithreading servlets
在应用程序中,如果涉及多个servlet,则每次为不同的servlet创建新线程
对于ex我有2个servlet servlet 1和servlet 2都从相同的html表单获取rquest,一个通过锚标签,另一个通过表单
当链接被点击时,请求被发送到servlet,它再次向索引页面发送请求,并从那里提交表单,其中请求被发送到servlet 2
那么为servlet 1和servlet 2创建了两个线程,还是只创建了一个服务于两个servlet的线程?
Servlet容器的一般模式是使用一个Thread来处理一个请求.
对于ex我有2个servlet servlet 1和servlet 2都从相同的html表单获取rquest,一个通过锚标签,另一个通过表单
提交时form,浏览器会发送HTTP请求.您的服务器调度a Thread来处理它.想想它做这样的事情(实际上要复杂得多)
final Servlet servlet = ...// which servlet is url-mapped to the request
Runnable toRun = new Runnable(
public void run() {
servlet.service(request, response); // with exception handling of course
}
);
Thread toDispatch = new Thread(toRun); // actually get it from pool, but for simplicity
toDispatch.start();
Run Code Online (Sandbox Code Playgroud)
同样,如果您按照锚链接,您的浏览器会发送一个新的HTTP请求,该请求将以相同的方式处理.
的Servlet类实例线程之间共享.
| 归档时间: |
|
| 查看次数: |
5550 次 |
| 最近记录: |