我正在编写一个基于 Tomcat 和 Java Servlet 的 Web 应用程序。 在我的例子中,有一些(不同的)Servlet 必须访问同一个文件,我需要一种机制来同步这些访问。
我尝试使用一个名为“Controller”的新 Servlet(具有空的 doGet()
和 doPost()
方法),以便将其用作“我需要的每个对象(锁,条件变量,......)的容器'。不幸的是,这种方法基于使用 ServletContext
中的方法 getServlet(name)
,该方法已被弃用,在我的情况下不起作用。
是否有解决此类问题的已知解决方案?
最佳答案
这类问题通常通过引入额外的抽象层来解决。
将对文件的访问封装在一个对象中,并使用这个新对象来协调对文件的访问。
servlet 将全部使用这个中间对象来访问文件,这个对象将处理任何并发/多线程问题。不需要你说的新 servlet。
您可以使用 Servlet Context存储对象
关于java - 从两个或多个 Servlet 同步访问一个文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12202510/