Servlet与Applet通讯方法

开发 后端
本文介绍Servlet与Applet通讯方法,包括通过HTML页面传递Applet参数和用java.net包建立双向通讯。

Servlet与Applet之间的联系一般是间接的,即页面请求由浏览器发送给Servlet,作为回答,Servlet将结果生成HTML文档发送给浏览器。很多时候在Servlet与Applet之间建立直接的联系是没有必要的,但如果要显示一些实时的动态数据,如聊天室窗口、新闻显示、股市行情等,建立两者之间的直接联系就很有用了。特别地,在较为复杂的分布式Java应用中,这种通讯更是必不可少。在客户端Java程序与服务器端Java程序之间建立这种复杂的交互方式仅仅使用Servlet与Applet API是不够的,本文为你介绍和比较四种通讯方式:通过HTML页面传递参数,用java.net包的网络功能建立直接网络连接,远程方法调用(RMI)与CORBA。
 
一、通过HTML页面传递Applet参数

通过HTML页面传递参数是在Servlet与Applet之间建立联系最为常用的方法。Servlet只要把传递给Applet的参数写入HTML页面就可以了。这种通讯是单向的,用于实现Servlet对Applet的控制。

二、用java.net包建立双向通讯

第二种方法是利用java.net包提供的网络能力。以有连接流通讯方式为例,在服务器端的操作为一般为:

创建一个ServerSocket对象,在指定端口监听客户端发来的请求。在接收到请求时accept()方法将返回一个Socket对象。

用上述Socket对象创建输入、输出流对象。通过输入、输出流与客户交互。交互完毕,关闭输入、输出流与Socket。服务程序运行结束,关闭ServerSocket。实现代码代码类如:

  1. try{  
  2. boolean flag=true;  
  3. Socket clientSocket=null;  
  4. ServerSocket serverSocket = new ServerSocket(0);  
  5. System.out.println("Server listen on: " +serverSocket.getLocalPort());  
  6. while(flag){  
  7. clientSocket=serverSocket.accept();  
  8. DataInputStream is=new DataInputStream( new bufferedInputStream(clientSocket  
  9. .getInputStream()));  
  10. PrintStream os=new PrintStream( new bufferedOutputStream(clientSocket.getOut  
  11. putStream()));  
  12. // 处理Applet请求  
  13. os.close();  
  14. is.close();  
  15. clientSocket.close();  
  16. }  
  17. serverSocket.close();  
  18. }catch( IOException e){  
  19. System.err.println(" Exception: "+e);  

【编辑推荐】

  1. 浅析Servlet的Web应用程序
  2. 安装Servlets和JSP
  3. Servlets和JSP的运行环境-JRun
  4. 入门学习Servlets引擎
  5. 浅谈Java Servlets与CGI程序
责任编辑:佚名 来源: 中国IT实验室
相关推荐

2009-07-07 17:23:08

Java Servle

2009-07-03 12:48:24

Java Servle

2009-07-08 18:21:27

2009-07-08 18:16:02

Applet和Serv

2009-07-09 09:54:07

Servlet和CGI

2011-02-25 17:22:55

Servlet模块方法模式

2009-07-09 11:21:40

Servlet注册

2009-07-07 16:23:05

Servlet容器

2009-07-08 15:59:55

doFilter方法

2009-07-10 11:07:00

WebWork注入Servlet方法

2009-07-08 11:17:10

Servlet容器Servlet Con

2009-07-08 15:01:00

Servlet的作用

2009-07-08 16:19:41

Servlet ConServlet Con

2009-07-09 14:32:39

2022-03-31 15:17:04

JavaSocketServlet容器

2010-09-17 10:16:26

Java Applet

2009-06-11 08:59:35

2011-07-04 16:04:20

Applet

2009-07-03 13:22:37

调用Servlet

2009-07-06 16:59:16

Servlet方法
点赞
收藏

51CTO技术栈公众号