我是一个 tomcat/servlet 新手,在过去的 3/4 天里一直坚持这一点。任何帮助表示赞赏!我有一个 servlet 类,它有一个静态变量 name_print。静态函数 appInput 接受一个字符串并将 name_print 设置为该字符串。此类 appmonitor.java 的代码如下:
包 AppMonitor_pack;
导入语句...
private static String name_print;
public app_monitor() {
// TODO Auto-generated constructor stub
}
/**
* @param args
*/
public static void main(String[] args) {
// TOsDO Auto-generated method stub
}
public static void appInput (String name){
name_print = name;
System.out.println("From appInput " + name_print);
}
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
PrintWriter writer = resp.getWriter();
writer.println("<body> "+ name_print +" </body>");
}
}
我已经将这个简单的项目包含在另一个名为 Sockets 的项目中。在那里,我有一个监听套接字,它接收一个名为 name 的字符串。我调用第一个项目的静态函数 appInput 并将收到的字符串名称传递给它,以便它将 name_print 设置为这个新值。
Socket.java 中的相关行是:app_monitor.appInput(name);
当我编译并运行它时,我看到值名称设置为某个输入值“abc”。然后调试器进入另一个项目的 appInput 函数,并将 name_print 的值也设置为“abc”。
但是当我刷新运行tomcat服务器的网页时,它永远不会显示新设置的name_print值,而是继续显示appMonitor servlet类第一次加载时设置的旧值“null”。
我试图找出问题无济于事4天。有什么想法/帮助吗?谢谢!