J2EE的展现层设计:A lets、servlets和XML结合使用

文章作者 100test 发表时间 2008:03:17 12:04:33
来源 100Test.Com百考试题网


使用XML配置applet来增强你的web界面

  对一般的基于J2EE的系统,用户界面(UI)总不是很健壮,这里我们提供了一个使用Java Plug-in的解决方案:使用applets来解读XML文档中的数据,并按要求显示出它们,XML文档由servlet产生

  在标准的J2EE展现层设计中,我们会使用HTML来包装servlet和JSP产生的数据,HTML的优势在于,它易于编写、美观

  但是当你需要更复杂的GUI时,html就不能满足要求了,比如使用>标签,你不能在表格中做到滚动、选择某一行、编辑等操作。你不可能做到让他看起来就象一个电子表格,用户可以执行各种复杂的表格操作.还有当你需要一个层次化的树型列表,可以进行折叠、扩展、拖进、拖出、对节点改名或删除等操作,这些HTML都做不到

  当然你可以使用HTML 或DHTML来实现实现一些简单表单和树行为操作,比如使用checkbox来实现行选择.而DHTML呢,难于编写和维护,在发布时也会因浏览器的不同而产生错误.很明显Java applet应该是最好的选择,但如何使用它,怎样把它良好的整合到J2EE的结构中呢?

  在J2EE的教程中,SUN公司简单的提到在web客户中使用applet,但更多讲述的是servlet和JSP,因为它们不需要任何插件,SUN特别指出了使用JSP来产生XML文档,XML数据是应用于Web serviced的标准的机读数据,这点很重要.

  但是在这篇文章中,我们要介绍的是使用applets来嵌入展现层,它需要使用一个由web 组件(JSP或SERVLET)产生的XML文档作为资源文件,这样就不需要你的applet通过RMI/IIOP来访问远程的EJB,而是直接访问本地的XML文档.

展现层数据:
  接下来怎么做呢?,首先让我来回想什么是展现层数据(presentation data),presentation data是从你的商业层(或数据层)获取的、需要被处理显示的数据,presentation data包含2个部分,一个是要显示的数据,一个是用于描述GUI组件的结构和状态的数据,例如,我们考虑一下一个层次化的树型列表;这里是它需要用到的一些数据

  各节点的名称、节点是否是文件夹、个节点的内容,这些数据多少很象JTree在它的TreeModel所需的数据,你可以把这些数据用XML来表示,如下:









  你可以继续为各节点添加内容,比如加上节点的图标、它所代表对象的hyperlink以及它代表的对象类(比如现金或日期)

  使用applet
  当然光有XML文档没甚么用,它主要是服务于applet的.你可以编写applet来解读XML中的数据,把它们应用到图形界面中,例如刚才的用于表述树型数据的XML文档解析到DefaultMutableTreeNode对象中,来使JTree显示数据,图1 显示了整个过程的sequence视图

Figure 1.

  在JSP中可以使用标准的HTML标签或者JSP中的,后者是使用Plug-in模式运行你的applet,它可以让你指定特定的JVM,而不是默认的浏览器使用的JVM,这样可以让浏览器应用最新的Java API。(是使用Java Plug-in有一些缺点:用户不得不下载超过9 MB的插件)

状态改变:
  使用Applet的强大之处在于它可以随时对状态改变作出响应,例如,当你对JTree进行增减操作时,要去除了一个文件夹节点(你需要给它分配一个唯一性的ID)



  和一个子节点



  对这种改变,使用如下的一个URL调用来通知系统

http://localhost:8080/tree/node-moved?node-id=7&.destination-folder-id=5

  使用java.net.URL的openStream()方法来请求该URL,该URL然后把请求由servlet转为session bean的方法调用,进行该删除操作,如果调用成功后,session bean返回如下的一个文档:






  在接到该文档后,客户端执行操作,把这些节点从TreeModel中删除,如果服务端调用失败,则返回下列一个文档






  客户端接收次消息后使用状态消息或对话框报出错误,显示整个过程

  Figure 2. Process of an applet firing state changes

相关文章


北京自考07年9月调查与分析专业实践课报考通知
天津翻译学院英翻考试结构
上海市自考工程管理专业(独立本科段)考试计划
成考专升本政治考试必看选择1
J2EE的展现层设计:A lets、servlets和XML结合使用
谈谈对GMAT“提前多长时间订座”等问题的一点儿看法
质量工程师:质量认证相关知识
GMAT考试综合辅导:GMAT备考计划误区
Java技巧21使用档案文件提高a let的加载速度
澳大利亚华人论坛
考好网
日本华人论坛
华人移民留学论坛
英国华人论坛