servlet怎么处理同时到达的多个请求?

用户68736146


Servlet是Java Web开发技术体系中非常重要的组件,从MVC的体系结构来说,Servlet的作用主要是完成C(控制)端的功能,所以Servlet的作用还是非常重要的,可以说是整个Java Web应用的控制中枢。

对于Java Web程序设计来说,控制中枢通常只能有一个,也就是说只能有一个Servlet来接受所有的请求,此时Servlet自身多线程的优势就能够得到较为充分的体现,与传统的CGI方式来处理用户的请求过程相比较,多线程的处理方式是一个比较明显的优势,不仅会占有更少的内存,在逻辑实现上也更合理。

Java Web程序在设计时一定要充分考虑Web Container的作用,实际上对于开发人员来说,掌握Web Container的机制对于编写高效率的Java Web程序是非常重要的,比如Servlet对象的创建本身并不是用户来决定的,Servlet的生命周期管理完全是由容器来决定的,这不仅能够把开发人员从复杂的对象管理任务中解放出来,同时也能够保障Java Web应用程序在运行时的稳定性,这也是为什么不少大型互联网平台更愿意采用Java编写的原因。

Servlet在定义完成之后,通过部署描述文件(可以省略)来完成部署的相关细节定义,此时Servlet的生命周期就交由Web Container来管理,包括对象的创建,以及存活的时间等等。对于开发人员来说,更重要的任务是如何编写Servlet内部的逻辑代码。

最后,Servlet来处理用户请求虽然是比较高效率的方式,但是在当前Web应用程序多版本并发执行的情况下,采用“微接口”的编程方式也正在成为一种发展趋势,此时Servlet需要根据大数据平台的要求来服务于特定的用户群体,从这个角度来看,Servlet在Web程序中的整体位置也发生了“转移”。

我从事互联网行业多年,目前也在带计算机专业的研究生,主要的研究方向集中在大数据和人工智能领域,我会陆续写一些关于互联网技术方面的文章,感兴趣的朋友可以关注我,相信一定会有所收获。

如果有互联网、大数据、人工智能等方面的问题,或者是考研方面的问题,都可以在评论区留言,或者私信我!


IT人刘俊明


简单来说就一句话,多线程技术。

在 JEE 协议中 Servlet 是个单例对象,容器内只存在一个。但,单例对象的方法可以被多个线程调用,当存在多个请求同时到达时,容器会为每个请求分配一个线程,然后由分配的线程并行为用户提供服务


分享到:


相關文章: