Java 小程序-服务器通信,我怎么能做到呢?
我有一个小程序,我必须向web应用程序发送请求,以从数据库中的服务器获取数据。我正在处理对象,服务器用对象响应我是非常有用的 小程序如何与服务器通信Java 小程序-服务器通信,我怎么能做到呢?,java,web-services,applet,client-server,rmi,Java,Web Services,Applet,Client Server,Rmi,我有一个小程序,我必须向web应用程序发送请求,以从数据库中的服务器获取数据。我正在处理对象,服务器用对象响应我是非常有用的 小程序如何与服务器通信 我认为web服务方法、RMI和。。。让我高兴,但哪一个是最好和可靠的?只要您的小程序与服务器通信,您就可以使用序列化对象。您只需要在applet jar和服务器上维护相同版本的对象类。这并不是最开放或可扩展的方式,但就开发时间而言,它很快,而且非常可靠 这里有一个例子 实例化与servlet的连接 URL servletURL = new URL(
我认为web服务方法、RMI和。。。让我高兴,但哪一个是最好和可靠的?只要您的小程序与服务器通信,您就可以使用序列化对象。您只需要在applet jar和服务器上维护相同版本的对象类。这并不是最开放或可扩展的方式,但就开发时间而言,它很快,而且非常可靠 这里有一个例子 实例化与servlet的连接
URL servletURL = new URL("<URL To your Servlet>");
URLConnection servletConnect = servletURL.openConnection();
servletConnect.setDoOutput(true); // to allow us to write to the URL
servletConnect.setUseCaches(false); // Write the message to the servlet and not from the browser's cache
servletConnect.setRequestProperty("Content-Type","application/x-java-serialized-object");
现在读读回复
ObjectInputStream in = new ObjectInputStream(servletConnection.getInputStream());
MyRespObject myrespObj;
try
{
myrespObj= (MyRespObject) in.readObject();
} catch (ClassNotFoundException e1)
{
e1.printStackTrace();
}
in.close();
在servlet中
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
{
MyRespObject myrespObj= processSomething(request);
response.reset();
response.setHeader("Content-Type", "application/x-java-serialized-object");
ObjectOutputStream outputToApplet;
outputToApplet = new ObjectOutputStream(response.getOutputStream());
outputToApplet.writeObject(myrespObj);
outputToApplet.flush();
outputToApplet.close();
}
private MyRespObject processSomething(HttpServletRequest request)
{
ObjectInputStream inputFromApplet = new ObjectInputStream(request.getInputStream());
MyCustomObject myObject = (MyCustomObject) inputFromApplet.readObject();
//Do Something with the object you just passed
MyRespObject myrespObj= new MyRespObject();
return myrespObj;
}
请记住,您传递的两个对象都需要实现可序列化
public Class MyCustomObject implements java.io.Serializable
{
非常感谢,但是我能问一下,哪一个更好?要与服务器或序列化对象连接的web服务?我正在尝试使用web服务,但ws客户端在连接到服务器(web服务)时出现问题!!!理想情况下,我认为您需要一个Web服务,因此任何应用程序都可以访问它,而无需担心维护序列化对象的当前副本。如果它只供您的组使用,我不明白为什么您不能只使用序列化对象。序列化对象-更易于实现,无需xml解析,无需Web服务托管。Webservice—更灵活,可能需要更多的开发时间。这真的是一个你需要什么的问题,简单还是灵活。嗨,真的谢谢…,我纠正了连接到web服务的问题,但我有一个让我沮丧的问题,我如何从web服务方法返回自定义对象--车辆--的数组列表!!!??我做到了,但问题是,在客户端我收到了对象的arraylist!!!如果你知道如何解决它,请帮助我…我不知道你到底在问什么,你是在问如何将arraylist转换为vehicle类型的对象?您有两个选项,即仅使用泛型(Vehicle)强制转换或使用泛型功能。要使用泛型,您可以在这里查看1.5教程。如果您使用的是旧版JRE 1.5之前的版本,那么您将无法使用泛型,并且必须执行显式强制转换。如果您可以发布任何代码来帮助理解您的问题,请执行。嗨,不,问题不是这样的,问题不是铸造,我有一个web服务,必须运行查询数据库以获取车辆位置信息并创建车辆对象,并将它们(车辆对象)放入ArrayList@WebMethod public ArrayList getVehicles(){//sample VehileReport v=new VehileReport(“123”,“20km”);ArrayList list=new…list.add(v);return list;}在客户端我运行此。。。
public Class MyCustomObject implements java.io.Serializable
{