J2EE企业应用之Applet和Servlet的通信

在今天的多层结构的web应用程序的设计中,我们可以同时使用Java applet和Servlet。Applet为建立功能强大的动态界面提供了便利的机制,Servlet为web服务器或者其他应用服务器处理请求提供了高效率的手段。

Sun公司的应用程序模型描述了在Java2平台下开发企业级的Java应用的最好的规范。一种被推荐的规范是:在前端使用Applet、HTML和JSP,在后端使用Enterprise JavaBeans支持的Servlet及其他成分。

这种体系结构的关键是在客户端的Applet和在服务器说?ervlet之间的通信。但是由于Applet受浏览器安全模式的限制,在一个Applet中存取数据和信息并不想看上去的那么简单。在这篇文章中,我们将解释在Applet-Servlet结构中开发者所面对的限制,并探讨几个不同的可以在Applet和Servlet之间转输数据的通信策略。

如果你已经熟悉Applet和Servlet,这肯定会对你阅读本文有帮助,如果你还不是那么熟悉,那也没关系,我们会简要地介绍它们。

APPLET和SERVLET的简介

Applet Java applets实际上是运行在web页面上的Java程序。它是一个继承于java.applet.applet的Java类,它通过引用被嵌入到HTML页面中去,就象一个图像一样。Applet和HTML的组合,可以建立功能更为强大的动态界面。

对于一些只用来滚动正文和播放动画的Applet,我们可以在一个企业级的应用程序中利用它来显示和处理来自服务器上的资源的数据。例如,一个Applet可以用来浏览和修改数据库中的记录或者控制运行在服务器上的其他应用程序。

Java applet除了可以使用它自己定义的类文件外,还可以使用其他的类,不管这些类是独立存在的还是被打包成了一个JAR文件。Applet和它的类文件通过标准的HTTP请求进行分布,所以Applet可以越过web页面数据所在的平台的防火墙进行发送。

除非是涉及到保持应用程序完整性的问题,Applet总会在每次用户重新访问web主机时自动刷新并会在客户端保留一段时间。

我们得感谢Java操作系统的平台无关性,这才使得Applet可以运行在任何拥有Java虚拟机(JVM)的浏览器上。Sun公司的Java插件甚至可以使用可以利用最新版本的JVM编制页面,而不用担心受你的用户的浏览器上的JVM的版本的限制。

因为Applet是Java平台的扩展,所以在你建立用Applet建立你的web应用程序的界面时,你可以重用已存在的Java组件。

正如我们在下面的例子中可以看到的那样,你可以在你的Applet的组件中使用复杂的Java对象来开发本来由服务器端应用程序完成的工作。事实上,你可以编写这样的Java代码,它既可以在Applet上执行,也可以在应用程序内执行。

Applet具有所有传统的Java应用程序的功能,包括使用Sun公司的JFC/Swing组件。Applets也可以用来制作图形以及应用程序中的用户界面(尽管有些辅助的窗口会被标志为“Warning, Java Applet Window”)。

但是不管他们有多么相似,在应用程序和Applet之间还是一些关键性的差别的。例如,我们不得不考虑到我们的Applet是受到安全模式的限制的。

Applet的安全约束

Applet代码来自于web主机并在最终用户的机器的浏览器中运行。有害的含有病毒的Applet可能会造成破坏性的效果,为了防止这样的Applet,Applet受到安全方面的约束,那就是Applet只可以与提供这个Applet的主机进行通信,而且Applet不能操作最终用户的机器。

它们不能读写该用户的文件系统,不能执行上面的程序,也不能检查一些敏感的环境参数。(事实上,我们有一种方法可以回避这种限制,那就是开发者可以利用数字签名的技术对Applet进行标志,这将会询问用户是否可以给予Applet某种特殊的待遇。

但是这已经超出我们这篇文章中所讨论的范围了。)此外,Applet不能建立或接受外来的socket连接。所谓外来的是指这个连接超出了提供这个Applet类文件的主机(不是提供引用这个Applet的HTML所在的主机)。

因为这个安全性的限制,我们与Applet的通信必须采用一种特殊的策略。通信的唯一的途径就是在提供Applet的主机和提供相应的HTML的主机之前的网络连接。

Servlets Java servlet是服务器端的组件,它和CGI有很多相似。它可以处理web请求,并返回数据或HTML。Servlet可以访问数据库,进行计算,并和Enterprise JavaBean这样的组件进行通信。

与CGI程序不同的是,Servlet是持久有效的,也就是说,它只要被示例一次就可以不断地处理请求(这些请求很可能是同时发生的)。因此,Servlet比CGI来得更高效。

Servlet运行在一个Servlet引擎中,通常是在一个web服务器或应用程序服务器上。Netscape Enterprise Server 4.0和Netscape Application Server都支持最新版本的Java servlet规范。

和Applet不同,Servlet不受安全约束的限制。因为Servlet是完全在服务器上运行的,它具有所有操作系统所允许的性能。

Servlet可以用来很方便地建立在Applet和Web浏览器这样的客户端和企业应用程序的核心之间的连接。对于客户端来说,向Servlet发出的请求与其他web请求并没有任何不同。客户端通过一个URL来接受返回的信息,正如我们看到的那样,返回的信息并不一定只能是HTML,实际上我们可以通过HTML协议发送和接受任何类型的数据。

时间: 2024-12-04 05:49:36

J2EE企业应用之Applet和Servlet的通信的相关文章

Oracle9iAS Containers for J2EE独立版指南--(部署servlet和JS

部署servlet和JSP的方法 1>使用j2ee/home/default-web-app目录 将所有Servlet放在j2ee/home/default-web-app/WEB-INF/classes目录下 可以以此访问: http://<oc4j_host>:8888/servlet/<class-name> 例如: 将servlet class my.HelloServlet放在 j2ee/home/default-web-app/Web-INF/classes/my

用JMX部署基于WebSphere的J2EE企业应用

J2EE应用的部署对于部署人员而言是一件很有意义的事情.现有的应用服务器一般都支持基于Web,或热部署,或通过部署工具的方式来完成应用的部署.WebSphere Application Server 5.x提供了应用编程接口实现J2EE应用的部署和管理.本文就为这样的一个目标而写. 一.WebSphere部署概述 一般情况下,部署基于J2EE的应用需要做这样几件事情:首先,创建数据源,其中需要指定JNDI名:其次,修改企业应用.ear文件的资源JNDI名和资源参考:第三,修改企业应用.ear文件

开发J2EE应用,HTML+CSS+JSP+Servlet+JavaBean您用到哪些工具

问题描述 例如用dreamwaver开发HTML.CSS.JSP 用Eclipse开发JSP.Servlet.JavaBean 请指教,多谢,: ]  问题补充:<div class="quote_title">7454103 写道</div><div class="quote_div">看来你也是想做个网站什么的哈<br /><br />我做 j2ee  WEB 这块  快 2年了!  我们的网站: ww

J2EE中网站后台中的servlet如何与服务器上的其它java程序通信

问题描述 Web服务器与客户端要实现javasocket通信,web服务器现在有网站的后台程序和TCP服务端程序,web客户端有TCP客户端程序,用户在客户端浏览器中点击相应的操作会向web服务器发送相应的信息,通过表单提交到web服务器,web服务器端用servlet来处理接收的信息,然后再把相应的信息通过TCP服务器端向TCP客户端发送,来让刚才发出此信息的客户端执行相应的操作,这时web服务器上的servlet怎么与TCP服务端程序通信.TCP服务端程序时含有main方法的.

J2EE 第2次课笔记--Servlet

这次课讲了一些servlet一些基础的知识!1.在本地访问servlet(以tomcat服务器为例): http://locatlhost:8080/servlet/你的servlet的名字 这样你就可以直接访问这个servlet了!2.使用jcreator进行servlet的程序编写时,需要导入tomcat下,common/lib/servlet.jar 才能调用servlet包3.测试程序,还是从最简单的Hello,World!来进行练习吧! 代码: import javax.servlet

J2EE企业应用实战——基于Hibernate3.0实现DAO

问题描述 Person类:public class Person {private int id;private String name;private Date born;public int getId() {return id;}public void setId(int id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}p

AS3使用thrift的与JHava servlet服务器端通信

一.基本概念 Thrift是一个软件框架,用来进行可扩展且跨语言的服务的开发.它结合了功能强大的软件堆栈和代码生成引擎,以构建在 C++, Java, Python, PHP, Ruby, Erlang, Perl, Haskell, C#, Cocoa, JavaScript, Node.js, Smalltalk, and OCaml 等等编程语言间无缝结合的.高效的服务. Thrift最初由facebook开发,07年四月开放源码,08年5月进入apache孵化器.thrift允许你定义一

基于J2EE架构的企业应用开发新思维:Web应用以谁为中心

基于J2EE架构的企业应用开发新思维:Web应用以谁为中心?浏览器?服务器 企业Web应用,指的是企业内部使用B/S架构搭建的企业信息系统,用户一般局限在企业内部,为了适应企业某个业务流程而设计开发使用的系统. 出于跨地域部署升级的考虑,一般采用B/S模式进行开发,避免在每个客户端安装配置的麻烦. 一般情况下,前台浏览器特指IE浏览器,前台操作系统选择Windows操作系统. 非Windows操作系统的客户机与非IE的浏览器不在本文讨论范围之内. 本文主要讨论以J2ee架构为基础的Web应用,其

基于J2EE架构的企业应用开发新思维:解决之道

要解决J2EE企业应用开发的种种问题,就必须转换思路,从减少分层,简化技术架构,销减系统复杂度,加强用户参与这几个方面同时努力. 我在十年以前,曾经使用PowerBuilder开发过很多系统,惊叹于其快速开发能力,界面描述能力等等,在痛苦的进行J2ee开发多年以后,开始发心,将PowerBuilder里面的DataWindow控件重新设计实现,命名为WebDW. WebDW是我设计用来简化J2EE开发的一个尝试,也许这个产品本身并不完善,但整个考虑问题的思路我认为是可以借鉴的. 6.1 WebD