客户端我想用swing来写,服务器用servlet查询数据库并响应客户端的请求传递数据,这样的话,客户端因该用什么类来与服务器通信呢?郁闷中!!

解决方案 »

  1.   

    大哥,我想写的是基于http协议的,服务器端是servlet
      

  2.   

    import java.io.*;
    import java.net.*;public class PostExample {
        public static void main(String[] argv) throws Exception {
            URL url = new URL("http://localhost:8080/servlets/weatherservice");
            HttpURLConnection connection = (HttpURLConnection) url.openConnection();
            connection.setRequestMethod("POST");
            connection.setDoOutput(true);
            PrintWriter out = new PrintWriter(connection.getOutputStream());
            // encode the message
            String city = "city=" + URLEncoder.encode("BJ", "UTF-8");
            out.print(city);
            out.close();
            BufferedReader in
                    = new BufferedReader(new InputStreamReader(connection.
                    getInputStream()));
            String line;
            while ((line = in.readLine()) != null) {
                System.out.println(line);
            }
            in.close();
        }
    }
      

  3.   

    那么客户端用办法用request,session等对象么,呵呵,那位高手知道呀
      

  4.   

    这么说吧,我如果我想在客户端和服务器端之间传递对象的话,是不是只能用rmi,在http协议下是不是不能实现呢?
      

  5.   

    兄弟,request,session这些对象本来就在服务器端,不关客户端的事!
    如果你要传输对象,有2个办法:
    1 自定义传输格式
    2 让这个对象的类实现java.io.Serializable接口,再把这个对象串行化,也就是说变成字节流,然后把它传到客户端。客户端再恢复成对象。
      

  6.   

    不一定用RMI的,如果你是做企业应用,servlet还是通用些,很多企业的防火墙不让过非HTTP协议的包
      

  7.   

    c/s的大部分都用socket通信的...
      

  8.   

    那我如何才能保证客户端和服务器端的持续会话呢,如果是b/s的我可以用session来区分用户,保持持续会话,但如果是c/s的我如何才能做到这一点呢???
      

  9.   

    HTTP是无状态的连接,是短暂连接,才需要SESSION。
    而C/S模式下,连接是一直存在的,只要socket存在,就不会分不出用户