1

我正在编写一个基于 Tomcat 和 Java Servlet 的 Web 应用程序。就我而言,有一些(不同的)Servlet 必须访问同一个文件,我需要一种机制来同步这些访问。

我尝试使用我称为“控制器”的新 Servlet(带有空doGet()doPost()方法),以便将它用作我需要的每个对象(锁、条件变量等)的“容器”。不幸的是,这种方法基于使用方法getServlet(name), from ServletContext,该方法已被弃用,并且在我的情况下不起作用。

这类问题有什么已知的解决方案吗?

4

2 回答 2

3

这类问题通常通过引入额外的抽象层来解决。
将对文件的访问封装在一个对象中,并使用这个新对象来协调对文件的访问。
servlet 都将使用此中间对象来访问文件,并且此对象将处理任何并发/多线程问题。不需要你说的新的servlet。
您可以使用Servlet 上下文来存储对象

于 2012-08-30T17:43:32.877 回答
0

您可以使用文件锁定FileChannel.lock

如何使用 java 锁定文件(如果可能)

于 2012-08-30T17:46:45.410 回答