java - 使用线程处理请求

标签 java jsp

我正在使用 JSP 和 Jdbc 编写一个应用程序,其中我有一个表名称“COMMENT_DATA”,用户可以在其中发表评论。因此,现在如果有多个用户同时撰写评论并发布,我就会使用线程。所以我将同步将数据插入数据库的方法。那么如何处理其他请求,即如何将其他请求排队以及如何收回并写入数据库

最佳答案

正是如此。每个 HTTP 请求本身就是一个线程。请记住,Web 容器在应用程序的生命周期内仅创建一个 servlet 实例,并且 servlet 代码在所有请求之间共享。这意味着任何类级变量或静态变量都将在所有请求之间共享。如果您有这样一个变量,那么它就不是线程安全的。您需要在方法级别声明请求特定的变量 threadlocal。

至于 JDBC:只要编写可靠的代码,一切都会顺利进行。使用连接池仅对提高连接性能有用(这确实值得付出努力,相信我,连接数据库是一项相当昂贵的任务,可能至少需要 200 毫秒甚至更多,同时重用池中的连接成本几乎没有)。它只是不会改变您编写的代码的线程安全性,它仍然在您的控制/手中。要清楚了解如何以正确的方式进行基本 JDBC 编码,您可能会找到 this article有用。

关于java - 使用线程处理请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1666315/

相关文章:

java - JTextField setDocument 覆盖文本

java - servlets:显示项目目录外的图像

java - 如何设计一个简单的 JSP 来管理 ManyToOne Hibernate 关联

java - 如何通过ajax调用servlet加载一个值,servlet返回什么到html tabel rowcell

java - SpringFramework jsp设置限制JAVA url

java - 是否可以在 Windows 中实现/运行 Java 实时程序?

jsp - EL有什么函数可以得到一个数的绝对值吗?

html - 根据jsp中的状态更改标题的背景颜色

java - 哪一种更适合游戏开发? Jpanel还是jframe?

java - 如何使 CircleImageView 在 NavigationView 抽屉中可点击