2012-01-25 193 views
1

事实:servlet容器为每个servlet创建一个实例(希望我对这个事实是正确的)
任务:如果假设2个请求发送到同一个servlet来更新表Y中的x列, 一个请求发送的值是否会被其他请求覆盖? 这是如何处理的,容器是要单独处理还是? 请回复多个请求处理servlet

回答

1

事实:servlet容器创建每个servlet的一个实例(希望我对这个事实是正确的)

无法保证,但通常为true 。所以更多的是假设而不是事实。

如果假设2个请求被发送到同一个servlet来更新表Y中的x列为相同的记录一个请求发送的值是否会被其他请求覆盖?这是如何处理的,容器是否会自行处理它?

这取决于数据库,而不是servlet容器。将有两个线程使用相同的servlet实例,每个实例都有自己的数据库连接。

但是,当然,第二个请求会覆盖第一个请求放在那里的数据库值。不知道你有什么期望这个工作。

0

有1个servlet实例。正确。

但是请求将由容器创建的不同线程处理。
所以servlet代码将被2个不同的线程调用。

所以一定要确保你的代码是线程安全