如何让Java Swing Desktop应用程序与服务器通信?

时间:2010-06-16 23:37:32

标签: java

ex)从服务器对桌面应用程序上的用户进行身份验证。

关于服务器的问题:我是否必须使用Tomcat?还有其他解决方案吗?我甚至可以使用Apache吗?

2 个答案:

答案 0 :(得分:1)

您需要在Java应用程序中使用某种方式下载特定给定URL的页面。

URL url;
InputStream is = null;
DataInputStream dis;
String line;

try {
    url = new URL("https://stackoverflow.com/");
    is = url.openStream();  // throws an IOException
    dis = new DataInputStream(new BufferedInputStream(is));

    while ((line = dis.readLine()) != null) {
        System.out.println(line);
    }
} catch (MalformedURLException mue) {
     mue.printStackTrace();
} catch (IOException ioe) {
     ioe.printStackTrace();
} finally {
    try {
        is.close();
    } catch (IOException ioe) {
        // nothing to see here
    }
}

(摘自How do you Programmatically Download a Webpage in Java

之后,在我看来,任何接受带参数的URL的Web服务器都可以使用服务器上的脚本(任何语言)来接受请求。您只需要一个响应,并在服务器上维护会话。

示例:http://myserver.com/myscript.php?action=login&username=blah&password=blah将返回一个页面,说明操作是否成功,并且您将解析它。

答案 1 :(得分:1)

您可以通过多种方式处理它:

  1. 使用普通套接字连接进行通信。看看java.net包。 http://java.sun.com/docs/books/tutorial/networking/sockets/

  2. 使用Web服务并提交数据,例如REST服务 http://java.sun.com/developer/technicalArticles/WebServices/restful/

  3. 这些可以用你自己的服务器,tomcat,apache,glassfish,jboss等来实现....命名的选项太多了。

    基本上,您需要在服务器上的预定义端口上侦听某些内容,这可能是上述任何一种。您的swing应用程序也可以使用上述API与服务器来回通信。如果你发布一些关于你想要做什么的更多细节,你也可能会得到一些更具体的建议。