1
我有很多来自客户端和一个POST请求的异步GET调用。 我的servlet获得POST请求后,我想以其他方式处理即将发生的GET调用。这里是我的尝试,但未能:Java同步来自JavaScript的异步调用
public class MyServlet {
private static volatile proceed = true;
public void doGet(req, resp) {
...
doGetAnswer(req, resp);
...
}
public void doPost(req, resp) {
...
doPostAnswer(req, resp);
...
}
public String doGetAnswer(req, resp) {
if (proceed)
return "Answer GET request";
else
return "Do NOT answer GET request";
}
public String doPostAnswer(req, resp) {
proceed = false;
return "POST called, stopping GET requests";
}
}
我的问题是由一个GET调用运行线程不承认volatile变量的变化。
更换
proceed = false;
谢谢你,它的工作原理,通过你的回答我刚才的时间在某处阅读解决方案。 “非常不寻常的设计”是什么意思? –