关于一个Servlet一个对象的问题

关于一个Servlet一个对象的问题

我记得有一节老师说,一个Servlet只会有一个对象。

那么如果多个用户访问浏览器,也是由同一个对象来处理的吗?

如果是这样,那么如果用户要向服务器写一些数据时,是不是意味着要考虑同步异步的问题?

正在回答

登陆购买课程后可参与讨论,去登陆

2回答

同学你好,1. 是的,同学理解是正常的,两个用户同时发来注册请求时,Servlet会进排队,一个一个进行处理。

2. 如同学描述的情况,在数据量很大的情况下,可能出现后面的请求得不到响应,导致体验较差。则此时,同学可通过性能优化,如:负载均衡(服务器)、读写分离(数据库)、异步等操作,来解决此问题。

3. 现阶段同学具体实现代码功能即可,关于性能优化,同学可以在后期进行深入了解。

祝学习愉快!

好帮手慕小尤 2020-09-07 10:07:54

同学你好,1. Servlet是单例对象,在Servlet的声明周期的课程中,只是创建了一个Servlet类。所以这里在Tomcat全局中,只有一个servlet对象,所有请求都会被这一个Servlet进行处理。当多个用户访问时,也是由同一个servlet对象来处理的。

2. 同步异步发送请求,都需要通过Servlet对象进行处理,所以可以不进行同步异步。如果项目有需求可以进行同步异步发送请求。

祝学习愉快!

  • 提问者 易萧 #1
    其实好像和几个对象没有关系。 我的问题主要是,当两个用户同时发来注册请求时,Servlet是按请求到达顺序处理完了再处理另一个吗,还是说同时处理的?如果同时处理的话那不就需要对一些公有资源同步吗。比如说注册,要访问同一个用户池,并且根据当前的计数器自动为新用户赋值一个ID,然后计数器更新。这个计数器如果可以同时被访问,那就有可能两个用户出现同一ID。 但是如果不是同时处理的,那么请求较多的时候,排在后面的用户一直得不到响应岂不是体验很差?
    2020-09-07 12:04:24
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师