我正在使用url http:\ [ip of server]:[port]启动的客户端 - 服务器应用程序(Web启动)。它在浏览器中加载index.html,主应用程序在另一个窗口中弹出,这里我们有几个选项来查看/执行状态/操作。
最近我遇到了一个服务器状态显示为未知的问题,这是默认的,但在加载应用程序后应该加载它。我找到了它的原因,显示服务器状态的方法是在启动时执行的,所以我使用while循环来检查应用程序是否加载,然后我执行了该方法。它奏效了。
但是如果我退出弹出窗口(主应用程序)并刷新主浏览器窗口中的URL,应用程序会成功弹出但没有服务器状态,服务器状态没有任何内容。这让我觉得在切换弹出窗口时,serverStatus类没有卸载。
我试图了解类加载器,但没有得到任何东西,也无法在应用程序源代码中找到有关加载/卸载类的任何内容。
有人可以指导或参考可以解决我问题的学习资料。
请原谅我,如果我不清楚询问确切的问题,请询问是否需要更多信息。在此先感谢
更改的代码在这里:
@Override
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws IOException, ServletException
{
PrintWriter out = new PrintWriter(
new OutputStreamWriter(response.getOutputStream(), "UTF-8"));
synchronized(this){
while(!notCompleted){
Thraed.sleep(100)}
out.println("<LABEL><B>" + discoveryStatusLabel_ +
" :</B></LABEL> <SPAN ID='DiscoveryStatus'>" +
discoveryStatus_ + "</SPAN>");}
}
我添加了while循环,而notCompleted是变量来检查应用程序是否完全加载。
注意:doGet()
和synchronized block
除此之外还有更多代码。