如何在每个请求之间共享servlet

时间:2011-12-16 06:18:17

标签: java servlets

如何在每个请求之间共享servlet?我知道每个httprequest都分配给不同的线程。并发请求怎么样?

3 个答案:

答案 0 :(得分:1)

创建servlet时,您可以决定是将其作为单线程还是多线程。您可以通过实现接口

将servlet标记为单线程
javax.servlet.SingleThreadModel

See this

单线程servlet一次只能提供一个请求,而这通常不是我们想要的。因此,通常我们允许我们的servlet是多线程的并相应地实现。代码假设许多线程(每个线程对应一个用户的请求)可能同时在我们的servlet中。这并不难 - 避免使用任何一个请求线程都可以更改的实例变量,并记住任何同步的代码都会成为争用点。

答案 1 :(得分:0)

首次请求Servlet或webapp启动时,servlet容器将创建一个实例并在webapp的生命周期内将其保存在内存中。对于其URL与servlet的URL模式匹配的每个传入请求,将重用相同的实例。

创建一个单独的线程来处理每个HttpServlet请求。

有关详细信息,请参阅Servlet Tag Info。该信息包含指向可让您更好地了解servlet的优秀资源的链接。

答案 2 :(得分:0)

  

据我所知,每个httprequest都被分配给不同的线程。

正确。

  

并发请求怎么样?

它们被分配给不同的线程。