服务热线:13616026886

技术文档 欢迎使用技术文档,我们为你提供从新手到专业开发者的所有资源,你也可以通过它日益精进

位置:首页 > 技术文档 > JAVA > J2EE > Servlet/Jsp > 查看文档

servlet与applet的交互

  applet与java servlet可以通过http协议的get和post进行交互,applet必须打开一个到指定的servlet url的连接。一旦建立了此连接,applet就可以从servlet得到一个output stream或者一个input stream。
applet可以通过发送一个get或者一个post方法将数据发送到servlet。
一 get方法
  使用get方法发送数据到servlet,applet必须将name/value 配对参数翻译成为实际的url字符串。例如要发送name/value配对信息"lastname=jones",servlet url如下:
http://www.foo.com/servlet/testservlet?lastname=jones
如果还有另外的配对信息,则用一个’&’符号将它们连接。方法如下:
http://www.foo.com/servlet/testservlet?lastname=jones&firstname=joe
  在应用中,必须翻译每一个按name/value配对的信息。为发送一个方法get方法到servlet,applet用类java.net.urlconnection来实现。下面的代码片段将实现:

string location = "http://www.foo.com/servlet/testservlet?lastname=jones";
url testservlet = new url(location);
urlconnection servletconnection = testservlet.openconnection();
inputstreamfromservlet = servletconnection.getinputstream();
// 从servlet读input。
  一旦applet建立了一个到url的连接,这时访问了来自servlet 的input stream。applet可以读这个input stream从而处理此数据。依赖servlet返回此数据的类型和格式。如果servlet 正返回定制的信息,需要创建一个定制的消息传输协议来实现applet 和 servlet通信(交互)。
二、post方法
  使用post方法发送数据到servlet,必须通知url连接output stream发送数据。方法post是很强大的,因为它可以发送任何形式的数据(诸如纯文本,二进制码之类)。您需要做的只是在http 请求header中设置满意的类型。但是,此servlet必须可以处理由applet发送的此类型的数据。
下面的代码片段显示了如何发送方法post到一个servlet url。
// 连接servlet
string location = "http://www.foo.com/servlet/testservlet";
url testservlet = new url( servletlocation );
urlconnection servletconnection = testservlet.openconnection();

// 通知此连接我们将要发送output并且要接收input
servletconnection.setdoinput(true);
servletconnection.setdooutput(true);

< /不能使用url connection的缓存。
servletconnection.setusecaches (false);
servletconnection.setdefaultusecaches (false);

// 指定我们将要发送的数据内容的类型为binary数据
servletconnection.setrequestproperty
("content-type", "$#@60;insert favorite mime type$#@62;");

// 从servlet上取得input和output streams
. . .

// 将您的数据发送到servlet
. . .

扫描关注微信公众号