私は tomcat/サーブレットの初心者で、ここ 3/4 日間これに固執しています。どんな助けでも大歓迎です!静的変数 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 という文字列を受け取る Listening ソケットがあります。最初のプロジェクトの静的関数 appInput を呼び出し、受け取った文字列名をそれに渡し、name_print をこの新しい値に設定します。
これに関連する Socket.java の行は次のとおりです。 app_monitor.appInput(name);
これをコンパイルして実行すると、値の名前が入力値「abc」に設定されていることがわかります。次に、デバッガーは別のプロジェクトの appInput 関数に入り、name_print の値も "abc" に設定します。
しかし、Tomcat サーバーが実行されている Web ページを更新すると、新しく設定された name_print の値は表示されず、appMonitor サーブレット クラスが初めて読み込まれたときに設定された古い値「null」が引き続き表示されます。
私は問題を解決しようとしましたが、4日間役に立ちませんでした。アイデア/ヘルプはありますか?ありがとう!