当前位置: 首页 > 面试题库 >

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

詹弘毅
2023-03-14
问题内容

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

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

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


问题答案:

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));


 类似资料:
  • 最大消息长度为64K字节(尽管我可以将其减少到256字节)。 注意:这将运行在一个微小的嵌入式设备上,所以使用像ZMQ这样的消息传递层不是一个选项(没有足够的内存)。 我可以:

  • 我对Angular很陌生,很难掌握如何处理异步请求。 我有3个组件:父组件-AppComponent子组件-LoginComponent、NavbarComponent、仪表板组件、MainComponent、SidebarComponent 和一个AuthService 在日志组件上按“Login”按钮时,我需要将布尔值“true”传递给所有组件。在按下导航栏组件上的“注销”按钮时,我需要将布尔

  • 我觉得这些可能是基本的话题,但我在其他地方找不到简洁的答案。 在构建TCP服务器时,我的理解是,每个连接的客户端都必须转移到自己的端口,以保持合理的连接(例如,知道此消息来自此客户端)。 如何设置这一点?我假设你有一个列表和一个人们连接的专用“入口点”套接字。连接套接字会找到一个空闲端口,用端口号进行回复,并在该端口上设置一个新的套接字进行侦听。这听起来对吗? 如果是这种情况,在我看来,在侦听传入

  • 我想让一个Servlet首先处理对JSP页面的所有请求。Servlet将用于根据所请求的JSP设置服务器端变量。 例如,我想要实现的是给出URL:example.com/index.JSP,Servlet首先通过解析出请求的JSP(index.JSP)来处理请求,设置特定于请求的index.JSP的变量(使用),然后分派到实际的index.JSP(例如/web-inf/index.JSP)。然后,

  • 我有两个项目,一个是由reactjs开发的,另一个是由laravel开发的。我想从laravel项目中获取一些数据,因此,我通过api调用访问laravel项目控制器文件夹中的一个方法。如果我使用reactjs项目中的方法,如何调试laravel项目?

  • 请给我一些关于任务解决方案的最佳模式的建议。我的任务是: 用户通过自己的rest控制器向Camunda处理器发出请求 后端端的BPMN架构由多个异步服务链组成 只有当BPMN上的一个最终服务做出响应时,数据才准备好响应给用户。 每条链条的工作时间不超过10-15秒。并且用户的会话计数每小时少于500个。 rest管制员的工作如何组织?在同一调用中强制控制器等待结果是否可以接受?瓶颈在哪?