写在前面
我们要了解一项新技术,一般都是先去了解它是干什么的,使用场景,然后就是跟着手册去建立一个工程,运行起来,再看它的工作过程是怎样的。
建立工程
工程示例:https://github.com/zzyymaggie/ZK_HelloWorld
这是一个maven工程,首先确保你有maven环境,然后下载该项目到本地。
然后按照readme文件执行,访问就可以看到效果了。
原理
工作过程
客户端第一次访问ZK web应用的时候,客户端浏览器会downloadZK框架在客户端的运行部分(ZK客户端),而ZK客户端会检测用户在客户端的动作,然后发送对应的ZK request 到服务端,而ZK框架的Au Service(更新服务)会根据ZK request来发送ZK response给ZK客户端接收,ZK客户端然后进行处理。
代码剖析
这是一个JavaWeb工程,我们先看一下web.xml。
web.xml
- ZK Loader
当web服务器收到用户发来的URL请求时,ZK Loader是用来加载ZUML页面的servlet。它可以被用来处理所有的基于HTTP的请求,包括ajax,mil(Mobile Interactive Language) 及其他的。
<servlet>
<description>
The ZK loader for ZUML pages</description>
<servlet-name>zkLoader</servlet-name>
<servlet-class>org.zkoss.zk.ui.http.DHtmlLayoutServlet</servlet-class>