下一代的B/S开发框架--Echo 教程(2)

原创 2003年03月12日 00:04:00

下一代的B/S开发框架--Echo 教程(2)

原理

先看看Echo的效果:

比如在Echo的DEMO中, 我们点击"Disaplay Help"的复选框, 提示信息不见了, 但是整个页面却没有任何变化! 包括你选择的下拉列表和输入框中随意敲的文字, 一切状态都会被保留. 这种效果在桌面编程中很常见, 而HTML是无状态的, 一个提交后会刷新整个Frame. 一般的HTML实现这种效果有两个途径:

  1. 用隐藏的frame操作, 控制部目标域的Disaply属性. 通常要写很多的脚本.
  2. 提交到服务器上, 根据点击的按钮重写页面. 这样服务器上的JSP/XSLT/Servlet要写的很复杂, 需要保留上个页面提交的所有信息.

来看看Echo的观念:

  • 页面是服务器端控件的体现. 就象我们看到一个人, 不过是看到它身上反射的光线. 页面上的每个元件都是相应服务器端控件类的体现. 它们的状态, 内容和画出来的的样式, 都保存在控件中. Echo实际上是Servlet框架, 通常它要求程序返回一个类代表主窗口, 窗口里面又包含其它控件来代表页面上的输入框, 按钮, 表格等等. 这些控件和SWING的写法几乎一样. 我们知道Swing控件都会产生自己的Graph图形画在屏幕上. 而Echo控件在输出的时候, 它们会把自己的信息用HTML/JS写到输出, 构成你看到的页面.
  • 这些类存在哪里? Session. 所以即使你关掉窗口, 你还有机会从Session里面恢复它, 和原来一模一样.
  • 这么多类放倒Session里面会不会阴魂不散, 拖垮服务器? 有可能, 但是机会不大. Echo控件的确会占用不少内存, 但是在程序编写的时候通常我们会把不用的控件dispose()掉. 而且服务器上的Session会过期, 自然会丢掉里面的垃圾数据.

再来看看隐藏Help的实现:

  1. 编写页面的时候我们会注册复选框控件的ActionListner: 被点击后, 把Help区域的显示状态取反.
  2. 用户请求页面, 服务器端控件根据自己的状态输出HTML. 复选框控件在输出HTML时发现自己注册了Listener, 就自动输出一段脚本到HTML里面.
  3. 点击复选框后, 页面上的JS会用隐含Frame提交到服务器, 报告ECHO哪个页面上的哪个按钮被哪个家伙点击了, 同时还要提交页面上的所有输入.
  4. 服务器首从那个家伙的Session中找到对应的服务器端控件, 更新其状态, 然后会调用按钮的Listener程序, 对帮助区域显示状态取反.
  5. 处理完毕, 服务器回到步骤2, 客户端看到更新后的页面.

上面的步骤看起来也不简单. 别担心, 大多数工作是ECHO框架自动在处理, 而我们只是构造第一步中的页面和事件程序. 代码示例如下:

//可重用的帮助面板控件.  
public class HelpPanel extends Container implements ActionListener {
    //复选框
    private CheckBox visibilityCheckBox;
    private Grid.Cell descriptionCell; 

    public HelpPanel(String title, String description) {
        super();
        Grid grid = new Grid();
        grid.setBorderColor(new Color(0xafbfef));
	...
	...
        visibilityCheckBox = new CheckBox("Display Help", true);
	//注册监听事件
        visibilityCheckBox.addActionListener(this);
	...
	...
    }
    //实现事件监听方法
    public void actionPerformed(ActionEvent e) {
	//对帮助信息状态取反
        descriptionCell.setVisible(visibilityCheckBox.isSelected());
    }
}


.Net平台下的B/S开发框架

L.Qiu 博客园首页博问闪存新随笔联系订阅管理 随笔- 29  文章- 0  评论- 112  .Net平台下的B/S开发框架 一、前言   本文主要是对.Net平台...
  • decajes
  • decajes
  • 2013年09月22日 22:37
  • 11312

【web开发原理】B/S架构原理分析

Web的工作原理 1.工作过程:如下图所示描述了Web的工作原理。   (1) 用户打开计算机(客户机),启动浏览器程序,并在浏览器中指定一个URL(Uniform Resource Locator...
  • moshenglv
  • moshenglv
  • 2016年07月08日 19:22
  • 6370

构建B/S模式的WebGIS 系统开发框架知多少

构建B/S模式的WebGIS 系统开发框架知多少 1.1 构建基本的B/S模式的WebGIS框架      GIS经历了从单机环境应用向网络环境应用发展的过程,网络环境GIS应用从局域网内客户...
  • sinat_34719507
  • sinat_34719507
  • 2017年03月08日 23:24
  • 2367

基于事件模型的下一代的B/S开发框架ECHO

  • 2003年07月15日 00:00
  • 741KB
  • 下载

ASP.NET经典实例教程PDF,讲解了Web的基本工作原理,在B/S结构下的基本运行方式,同时介绍了.net框架结构和Asp.net的优点.

  • 2009年04月08日 15:08
  • 8.31MB
  • 下载

B/S开发框架(asp.net mvc + web api + easyui)

本人非常喜欢这篇文章,特地拿出来分享,希望各位学习 这篇文章写了很多,如果能有耐心看完的话,肯定是受益匪浅,本人曾经也想过程序就应该是三两句代码可以搞定的,因为都是重复性的东西,可是能力有限,力不从...
  • yo548720570
  • yo548720570
  • 2013年06月26日 18:09
  • 3420

手把手教你使用FineUI开发一个b/s结构的取送货管理信息系统(附源码+视频教程(1,2节))

一 本系列随笔概览及产生的背景 近阶段接到一些b/s类型的软件项目,但是团队成员之前大部分没有这方面的开发经验,于是自己选择了一套目前网上比较容易上手的开发框架(FineUI),计划录制一套视频讲座...
  • binyao02123202
  • binyao02123202
  • 2013年12月11日 19:52
  • 10506

Net平台下的B/S开发框架

Net平台下的B/S开发框架 一、前言   本文主要是对.Net平台下的几种B/S开发框架进行比较。只对比前端展现和界面业务逻辑的部分,对于后台的数据层、业务层、持久层等则不作...
  • ztzi321
  • ztzi321
  • 2016年06月08日 10:43
  • 550

Ubuntu上进行B/S模式(javaweb)开发,简单框架示例

准备工作: 安装配置Tomcat 1、去官网下载最新版本的Tomcat压缩包(以zip或tar.gz为后缀的),奉上官网链接 http://tomcat.apache.org/download-...
  • wangheiio
  • wangheiio
  • 2017年03月16日 14:15
  • 448

java S2SH项目框架整合搭建实例教程

java S2SH项目框架整合搭建实例教程,代码下载地址:http://www.zuidaima.com/share/1787220771113984.htm...
  • yaerfeng
  • yaerfeng
  • 2014年05月27日 09:59
  • 16212
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:下一代的B/S开发框架--Echo 教程(2)
举报原因:
原因补充:

(最多只允许输入30个字)