在servlet中的init()方法之外声明的变量

sur*_*raj 4 java servlets

我知道对于servlet的每个请求都会执行doPost()或doGet()方法,而init()方法中的代码只会被初始化一次.但是在所有这些方法之外编写的代码呢?
那个代码还有线程吗?我的意思是在该部分中声明的变量,如果它们被修改,那么doPost()这些变化是否会反映给servlet的其他请求?

Ste*_*ote 5

在普通的servlet容器中,只有一个servlet对象的实例.任何数量的线程都可以使用此对象 - 每个请求一个线程.管理servlet实例的生命周期取决于servlet容器.

因此,在任何方法(包括init())中更改类变量的值时,它将影响所有后续请求.在您的方法中更改或声明局部变量当然不会影响任何内容,因为下次调用该方法时,会再次创建局部变量(并在方法完成时被垃圾收集器销毁).