Servlet 容器的一般模式是使用一个Thread
来处理一个请求。
例如,我有 2 个 servlet servlet 1 和 servlet 2 都从同一个 html 表单中获取 rquest 一个是通过锚标记,另一个是通过表单
当您提交 时form
,浏览器会发送一个 HTTP 请求。您的服务器调度 aThread
来处理它。想想它做这样的事情(实际上要复杂得多)
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();
同样,如果您跟随锚链接,您的浏览器会发送一个新的 HTTP 请求,该请求将以相同的方式处理。
类Servlet
实例在线程之间共享。