我有一个小程序,我必须向 Web 应用程序发送一个请求,以从数据库中的服务器获取数据。我正在处理对象,服务器用对象响应我非常有用!
小程序如何与服务器通信?
我认为 Web 服务方法、RMI 和...让我很开心,但哪个是最好和可靠的?
我有一个小程序,我必须向 Web 应用程序发送一个请求,以从数据库中的服务器获取数据。我正在处理对象,服务器用对象响应我非常有用!
小程序如何与服务器通信?
我认为 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");
获取输出流并写入您的对象
MyCustomObject myObject = new MyCustomObject()
ObjectOutputStream outputToServlet;
outputToServlet = new ObjectOutputStream(servletConnection.getOutputStream());
outputToServlet.writeObject(myObject);
outputToServlet.flush(); //Cleanup
outputToServlet.close();
现在阅读响应
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
{