当前位置: 首页 > 面试题库 >

Applet-服务器通信,我该怎么办?

商勇
2023-03-14
问题内容

我有一个applet,我必须向Web应用程序发送一个请求,以从数据库中的服务器获取数据。我正在处理对象,服务器用对象响应我非常有用!

小程序如何与服务器通信?

我认为Web服务方法,RMI和…让我感到高兴,但是哪种方法最可靠?


问题答案:

只要只有您的applet与服务器通信,就可以使用序列化对象。您只需要在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
 {


 类似资料:
  • 问题内容: 大师,我对这个话题迷迷糊糊。这是我要做的事的分解。 [用户/ Android设备]将位置信息发送到服务器-> [服务器] [服务器]从-> [db]返回使用sql排序的项目列表 [服务器]获取表信息并返回到用户-> [用户/ Android设备] 因此,从上述情况来看,我不知道如何使用Eclipse与服务器通信?我是否在Java中使用php或asp(如果可能的话:S)还是可以指向某个链

  • Web主要围绕HTTP的请求/响应范例构建。客户端加载网页,然后在用户点击下一页之前没有任何操作。大约在2005年,AJAX开始让网络感觉更有活力。仍然,所有HTTP通信都由客户端引导,这需要用户交互或定期轮询以从服务器加载新数据。 使服务器能够在知道新数据可用的瞬间将数据发送到客户端的技术已存在很长时间了。它们的名称如“Push”或“Comet”。 将套接字引入Web Websocket规范定义

  • 我想写一个非常简单的API。当我使用邮差API时。我想创建android应用程序,但我的应用程序崩溃了。为什么?哪里是错误

  • Tomcat身份验证筛选器错误。 standardcontext.filterstart(standardcontext.java:4700)在org.apache.catalina.core.standardcontext.startinternal(standardcontext.java:5340)在org.apache.catalina.util.lifecyclebase.start(l

  • 问题内容: 我的网站几乎完成了,除了最后一部分,我需要使图库页面支持ajax才能使用Ajax更改页码。 图库页面视图: Dajax / Dajaxice的记录不是很好…我只需要显示一些图像即可。 问题答案: 这是使用Dajax / Dajaxice的方法,这是为了在Django中简化AJAX: 根据文档安装Dajaxice和Dajax。文档似乎没有提及它,但是您也可以使用,即 pip instal

  • Linux服务器/etc/ssh/sshd_config已开启密码验证, 但是ssh连接Linux服务器,为何直接报错?根本没出现用户名及密码输出提示符?