Discuss / Java / 廖老师,每个http请求进来时,难道不是先实例化HelloServlet类,再处理吗?如果是这样,map变量就只能用于处理一个http请求,为何有多线程的问题呢?

廖老师,每个http请求进来时,难道不是先实例化HelloServlet类,再处理吗?如果是这样,map变量就只能用于处理一个http请求,为何有多线程的问题呢?

Topic source

每个http请求进来时,难道不是先实例化HelloServlet类,再处理吗?如果是这样,map变量就只能用于处理一个http请求,为何有多线程的问题呢?

廖雪峰

#2 Created at ... [Delete] [Delete and Lock User]

一个Servlet类在服务器中只有一个实例,不接受反驳。

不接受反驳,哈哈哈。我也看了您后面的文章,如果使用Spring MVC的话,其实就不用关心servlet类是不是单例了,因为我们写的类是controller。

dispatchservlet根据路由实例化controller,controller是dispatchservlet的局部变量,所以不存在多线程的问题

廖雪峰

#4 Created at ... [Delete] [Delete and Lock User]

那你理解还是不到位,controller是dispatcher-servlet的成员变量

额,的确是这样,多谢老师纠正。dispatcher_servlet有getMappings参数,会持有所有get对应的controller的实例


  • 1

Reply