0

我正在使用 Eclipse Indigo 和 Tomcat 7.0。我有一个 Swing 应用程序,带有包“gui”的项目“Controller”。使用此应用程序,我正在创建一个用于“设置”机器信息的控制器工具。我有几个散列图,其中存储了 Swing 元素的信息(20 个类似的面板,但包含不同的信息,如名称、状态等)。

我想使用 servlet 创建一个 JSON 文件,其中包含这些信息(我必须以某种方式将数据获取到我的 android 应用程序,对我来说 JSON 似乎是一个不错的选择)。我的 servlet 可以通过 localhost:8080/CommunicationBase/JSONServlet 连接这就是我遇到的问题:我无法在我的 servlet 的 Dynamic-Web-Service 项目中使用我的 Swing 应用程序。

我的 servlet 的一个小例子:

public class JSONServlet extends HttpServlet {
    /*this is in my dynamic-web-service-project "CommunicationBase" */

    public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        JSONArray arrayObj = new JSONArray();
        arrayObj.add("Machine #1");
        arrayObj.add("Status: Down");

        PrintWriter out = response.getWriter();
        out.println(arrayObj);

        arrayObj = new JSONArray();
        arrayObj.add("Machine #2");
        arrayObj.add("Status: Running");        
    }
}

如何将我的 hashmap 信息从 Swing 应用程序放到 Servlet?我可以在我的“控制器”项目中只创建一个 Java 类,然后添加一个web.xml? 如果是,在哪里?或者我该怎么做?

我还能以某种方式轻松地从我的 Android 应用程序更改 servlet 的 JSON 信息吗?这样我的 Swing 应用程序中的信息就会改变(Android 和 Swing 应用程序将始终在同一个 LAN 中工作)。

4

2 回答 2

2

Web 应用程序(即 servlet)应该从某个数据库中获取它的信息。

Swing 应用程序应该直接从/存储到同一个数据库中的信息,而不是将其存储在 HashMaps 中,或者它应该与 Web 应用程序通信以获取/存储信息。

Android 应用程序还应该与 Web 应用程序通信以获取和修改信息。

最后,每个人都会因此获​​取信息并将其存储在同一个数据库中。

于 2012-12-07T17:12:30.423 回答
1

安卓客户端:

            Socket socket = new Socket(serverIPAddress, SERVER_PORT);
            BufferedReader reader = new BufferedReader(new InputStreamReader(socket.getInputStream(), "UTF-8"));
            String help = reader.readLine();
            JSONObject myJson = new JSONObject(help);

摇摆应用:

 Thread thread = new Thread() {
        @Override
        public void run() {
            try {
            //  while(socket.isConnected()){

                writer = new OutputStreamWriter(socket.getOutputStream(), "UTF-8");
                reader = new BufferedReader(new InputStreamReader(socket.getInputStream(), "UTF-8"));

                JSONObject myJson = new JSONObject();
                JSONArray list = new JSONArray();
                ... //do something useful for JsonTransformation

writer.write(myJson.toString());

 }
}catch (IOException e) {
                e.printStackTrace();
            } finally {
                closeSocket();
            }
 }

做了这项工作。谢谢你的帮助!

于 2012-12-10T18:50:17.243 回答