当前位置:  技术问答>java相关

关于Applet和Servlet之间通信的小问题!!谢谢指点!!!!!

    来源: 互联网  发布时间:2015-03-22

    本文导语:  Applet和Servlet怎么通过Socket通信?请指点,最好有源程序。谢谢 | Talk to a CGI/Servlet From the client point of view, there is no difference talking to CGI or Servlet. There is two ways to send a request to...

Applet和Servlet怎么通过Socket通信?请指点,最好有源程序。谢谢

|
Talk to a CGI/Servlet
From the client point of view, there is no difference talking to CGI or Servlet. There is two ways to send a request to a CGI. The GET method contains encoded parameters in the URL. A typical URL talking to CGI using the GET method would be: new URL("http://www.server.com/cgi-bin/aCGI.pl?name=Real&site=JAVA+HowTo");
 


Here we calling a script called aCGI.pl (a PERL script) passing the parameters name and site. Parameters are encoded, spaces are changed to "+" and special character to hexadecimal using a 3-letter escape sequence. Each parameter is delimited by the character "&". Habitually the encoding is done through the static method encode of the java.net.URLencoder class. String theCGI = "http://www.server.com/cgi-bin/aCGI.pl?";
String encoded = "name=" + URLencoder.encode("Real Gagnon");
URL CGIurl = new URL(/tech-qa-java/theCGI   encoded/index.html);
 


Once the URL is constructed, you call the CGI using the showDocument method. getAppletContext().showDocument(CGIurl);
 


The CGI will process the result and produce a page to be displayed. 
The POST method allows the programmer to manipulate the data received from the CGI. First a connection is made to the CGI, an OutputStream is open to send the parameters (if any). Then InputStream is created to receive the result. String theCGI = "http://www.server.com/cgi-bin/aCGI.pl";
String encoded = "name=" + URLencoder.encode("Real Gagnon");
URL CGIurl = new URL(/tech-qa-java/theCGI/index.html);

URLConnection c = CGIurl.openConnection();
c.setDoOutput(true);
c.setUseCaches(false);
c.setRequestProperty("content-type","application/x-www-form-urlencoded");
DataOutputStream out = new DataOutputStream(c.getOutputStream());
out.writeBytes(encoded);
out.flush(); out.close();

BufferedReader in =
   new BufferedReader(new InputStreamReader(c.getInputStream());

String aLine;
while ((aLine = in.readLine()) != null) {
   // data from the CGI
   System.out.println(aLine);
   }
 



You can't do some output then some input and do again some output. You must do all the output and then the input. There is no "dialog" between the client and the server. The client make a request and the server send back the result and close the connection. 

|
  String username = getParameter("username");
  String clientip = getParameter("clientip");
  //System.out.println(username+": "+clientip);
  java.net.URL url=
new java.net.URL(getDocumentBase(),"/servlet/PigServlet");
  System.out.println("getDocumentBase(): "+getDocumentBase());
  java.net.URLConnection con = url.openConnection();
  con.setUseCaches(false);
  con.setDoOutput(true);
  con.setDoInput(true);
  
  ByteArrayOutputStream byteout=new ByteArrayOutputStream();
  DataOutputStream out=new DataOutputStream(byteout);
  out.writeUTF(" "+username+"["+clientip+"]");
  out.flush();
  
  byte buf[]=byteout.toByteArray();
  con.setRequestProperty("Content-type","application/octet-stream");
  con.setRequestProperty("Content-length",""+buf.length);
  
  DataOutputStream dataout=new DataOutputStream(con.getOutputStream());
  dataout.write(buf);
  dataout.flush();
  dataout.close();

  DataInputStream in=new DataInputStream(con.getInputStream());
  this.response=in.readUTF();
  //repaint();
  //System.out.println("read from server:"+response);

  in.close();

    
 
 

您可能感兴趣的文章:

  • 有Applet经验的朋友请指点!
  • 那位做过Applet与Jsp通信得大哥指点一下----在线等-------
  • 有关java applet的绘图问题,请高手指点!!!!
  • 很菜的问题,我的浏览器怎么不能显示applet?清高手指点!
  • APPLET连接数据库的问题,请高手指点
  • 有关Applet的概念问题,请指点一下吧,我就这么多的分了,在线等待结帐
  • applet和javabean之间可以通信吗?
  • java applet和servlet之间是否可以传递对象?
  • Javascript和Applet之间能进行交互吗?
  • Applet之间如何进行类似窗体的切换?
  • applet程序不能实现与application程序之间的通信,怎么办呢?
  • 求解!Java如何能在多个applet之间实现类似asp的session类!
  • applet和servlet之间可不可以传送对象?
  • 高分请教,applet和javabean之间如何通信?
  • 如何完成Applet与Jsp之间的通信???急!!!!一定给分
  • 两个applet 之间如何通信???
  • applet 与 javascript之间如何通信
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 如何从SERVLET中调用APPLET?
  • JAVA SERVLET 和 Applet 的 难题!高分相送!!!!!(急!)!
  • applet调用Servlet一个问题探讨。
  • 关于applet与servlet交互访问数据库的问题?
  • applet中怎样带参数访问servlet?
  • php iis7站长之家
  • Applet与Servlet的通信问题
  • 为什么applet&servlet不能都放在classes目录中
  • java遐想:能不能把applet与servlet结合起来?
  • 一个关于servlet和applet的简单问题
  • 求助Applet Servlet
  • applet如何向servlet提出POST或GET等请求。最好是举例说明。谢谢。
  • 还是关于applet和servlet通信的问题!高手看过来!
  • Tomcat下在Applet里调用Servlet怎么写URL?在线给分,急!
  • 如何在SERVLET里调用APPLET??
  • applet和servlet的通信如何实现?
  • 怪!怪!servletapplet通讯后***
  • 关于Applet和Servlet的通讯问题,紧急请教各位大侠。
  • 求Servlet与applet通过socket通讯,相关资料或源码,网址都行!谢谢啦。
  • 关于applet和servlet的问题,大家快帮我!!!
  • java命名空间java.applet类applet的类成员方法: applet定义及介绍
  • 如何让Applet里的控件随着Applet大小改变而一直占满整个Applet呢?
  • java命名空间java.applet类applet.accessibleapplet的类成员方法: applet.accessibleapplet定义及介绍
  • 对applet坐数字签名后,如果重新用jar对applet打包,需要重新做applet数字签名吗?
  • java命名空间java.applet类applet的类成员方法: getappletcontext定义及介绍
  • 为什么我的applet编译完,之后除了applet1.class之外,还有一个applet$1.class?
  • java命名空间java.applet类applet的类成员方法: getappletinfo定义及介绍
  • 急,我想问一下调用一个对话框的命令语句,比方说我已建立了一个Applet2,接下来该如何在Applet1中点击一个按钮来打开这个Applet2.谢谢
  • java命名空间java.applet类applet的类成员方法: isactive定义及介绍
  • 如何让IE认识applet所带的数字签名,而不是让证书仓库认识这个带数字签名的applet,就是说不装jdk也可以在IE里面使用带有签名的applet,详情请进
  • java命名空间java.applet类applet的类成员方法: stop定义及介绍


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3