一尘不染

单个Servlet如何处理来自客户端的多个请求

java

单个Servlet如何处理以用户请求形式出现的多个客户端请求?基于单例设计模式,我知道我们创建了一个servlet实例,但是单个servlet如何处理数百万个请求。对其所涉及的线程也感到困惑。

同样,这里提供了任何浏览器规范或设置,可用于跨请求发送请求或生成针对请求发送的线程。

所有框架都相同还是不同(例如,struts v / s springs)?


阅读 252

收藏
2020-12-03

共1个答案

一尘不染

Struts / Spring框架实际上是在Servlet规范之上编写的,因此无论您在其下使用Servlet是什么都无所谓。

没错,仅创建了Servlet的单个实例,但是该实例在多个线程之间共享。因此,您不应该在Servlet中共享共享的可变状态。

例如,您已将以下servlet映射到 http://localhost/myservlet

class MySerlvet extends HttpServlet {

     public void doGet(HttpServletRequest req, HttpServletResponse res) {
          // Get Logic
     }    
}

Web服务器的代码中将具有相似的内容(不一定相同)。

MyServlet m = new MyServlet(); // This will be created once

// for each request for http://localhost/myservlet
executorService.submit(new RequestProcessingThread(m));
2020-12-03