如何在每个请求之间共享servlet?我知道每个httprequest都分配给不同的线程。并发请求怎么样?
答案 0 :(得分:1)
创建servlet时,您可以决定是将其作为单线程还是多线程。您可以通过实现接口
将servlet标记为单线程javax.servlet.SingleThreadModel
单线程servlet一次只能提供一个请求,而这通常不是我们想要的。因此,通常我们允许我们的servlet是多线程的并相应地实现。代码假设许多线程(每个线程对应一个用户的请求)可能同时在我们的servlet中。这并不难 - 避免使用任何一个请求线程都可以更改的实例变量,并记住任何同步的代码都会成为争用点。
答案 1 :(得分:0)
首次请求Servlet或webapp启动时,servlet容器将创建一个实例并在webapp的生命周期内将其保存在内存中。对于其URL与servlet的URL模式匹配的每个传入请求,将重用相同的实例。
创建一个单独的线程来处理每个HttpServlet请求。
有关详细信息,请参阅Servlet Tag Info。该信息包含指向可让您更好地了解servlet的优秀资源的链接。
答案 2 :(得分:0)
据我所知,每个httprequest都被分配给不同的线程。
正确。
并发请求怎么样?
它们被分配给不同的线程。