想写一个基于http协议的c/s程序,请问如何实现??? 客户端我想用swing来写,服务器用servlet查询数据库并响应客户端的请求传递数据,这样的话,客户端因该用什么类来与服务器通信呢?郁闷中!! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 大哥,我想写的是基于http协议的,服务器端是servlet 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(); }} 那么客户端用办法用request,session等对象么,呵呵,那位高手知道呀 这么说吧,我如果我想在客户端和服务器端之间传递对象的话,是不是只能用rmi,在http协议下是不是不能实现呢? 兄弟,request,session这些对象本来就在服务器端,不关客户端的事!如果你要传输对象,有2个办法:1 自定义传输格式2 让这个对象的类实现java.io.Serializable接口,再把这个对象串行化,也就是说变成字节流,然后把它传到客户端。客户端再恢复成对象。 不一定用RMI的,如果你是做企业应用,servlet还是通用些,很多企业的防火墙不让过非HTTP协议的包 c/s的大部分都用socket通信的... 那我如何才能保证客户端和服务器端的持续会话呢,如果是b/s的我可以用session来区分用户,保持持续会话,但如果是c/s的我如何才能做到这一点呢??? HTTP是无状态的连接,是短暂连接,才需要SESSION。而C/S模式下,连接是一直存在的,只要socket存在,就不会分不出用户 如何读取远程主机上的文件 请问:什么叫例外???? 在使用jdbc就行sql数据库编程的时候的问题 郁闷,这段代码哪里有错?不能通过编译。 如何实现4位数组合的算法(要求不重复) 急,jcreator安装小问题,在线等 如何在菜单项中再添加下一级菜单项啊 ? 谁能帮忙在LINUX下抓一个图?万分着急~~帮忙啊~~ 在JBuilder里面为什么用控件数组总是不成功? stream.toArray(String[]::new)怎么理解合法性 关于float类型数据的问题,简单,但是我不会 》》》》》》》》》》文件读取时碰到的“?”乱码《《《《《《《《《《《《
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();
}
}
如果你要传输对象,有2个办法:
1 自定义传输格式
2 让这个对象的类实现java.io.Serializable接口,再把这个对象串行化,也就是说变成字节流,然后把它传到客户端。客户端再恢复成对象。
而C/S模式下,连接是一直存在的,只要socket存在,就不会分不出用户