- 浏览: 1918815 次
- 性别:
- 来自: 北京
-
文章分类
最新评论
-
July01:
最近了解到一款StratoIO打印控件,功能如下:1、Html ...
jquery打印指定的div -
GentlemanQc:
...
quartz系列(二)spring3.2.5与quartz2.1.7集群版集成简要说明 -
静夜独窗:
你好,能说一下server.xml增加的配置是怎么影响性能的吗 ...
tomcat7.0性能优化-挑战极限精简版 -
beyondfengyu:
beyondfengyu 写道如果每个客户进程的时间不同步,时 ...
java并发(二十二)分布式锁 -
beyondfengyu:
如果每个客户进程的时间不同步,时间超前的进程是不是更容易得到锁 ...
java并发(二十二)分布式锁
一 模板方法模式简介(Template Method Pattern Introduction)
模板方法模式主要用于对算法或者行为逻辑进行封装,如果多个类中存在某些相似的算法逻辑或者行为逻辑,可以通过将这些相似的逻辑提取到模板方法类中实现,然后让相应的子类根据需要实现某些自定义的逻辑。
二 ZK的原理
1)ZK是一个页面对应着一个类,而每个页面,基本上都有很多的相似操作.例如:增加,删除,修改,查询等等.因此我们很容易想到如何把相同的逻辑抽去出来呢?模板方法模式为我们提供了良好的解决方案.下我给出所有的代码.
下面的解决方案只代表特殊,不代表普遍,具体的模板还需要根据项目中的应用具体设计.^-^
模板类可以被多个页面继承,而不需要重新编写,如果个位读者实在没有明白,我在近几日内更新文章,写出一个具体的例子与大家分享.
2)结构说明,下面的图是我这个例子中用到的项目情况
index.zul和index2.zul,对应着数据库中的2个表.他们的后台代码IndexUI.java和IndexUI2.java中,却没有增加按钮的事件,而是写到了父类中,public final void onClick$btnInsert() ;这样所有的增加操作就可以共享一个代码了.删除,修改等原理也是如此.略
mysql数据库表结构
IndexUI.java 书籍后台管理类
index2.zul 光盘管理
Book.java 书籍实体类
Disk.java 光盘实体类
Template.java
persistence.xml JPA配制文件
好的,明天我给补充上~,~ 晚上我回去酝酿
看了你的建议以后,我把代码再次更新了。这次把全部代码都贴出来了
如果有深度使用ZK的朋友,一定能体会我这个模板方法带来的优越性
恩,长期从事J2EE的开发工作
模板方法模式主要用于对算法或者行为逻辑进行封装,如果多个类中存在某些相似的算法逻辑或者行为逻辑,可以通过将这些相似的逻辑提取到模板方法类中实现,然后让相应的子类根据需要实现某些自定义的逻辑。
二 ZK的原理
1)ZK是一个页面对应着一个类,而每个页面,基本上都有很多的相似操作.例如:增加,删除,修改,查询等等.因此我们很容易想到如何把相同的逻辑抽去出来呢?模板方法模式为我们提供了良好的解决方案.下我给出所有的代码.
下面的解决方案只代表特殊,不代表普遍,具体的模板还需要根据项目中的应用具体设计.^-^
模板类可以被多个页面继承,而不需要重新编写,如果个位读者实在没有明白,我在近几日内更新文章,写出一个具体的例子与大家分享.
2)结构说明,下面的图是我这个例子中用到的项目情况

index.zul和index2.zul,对应着数据库中的2个表.他们的后台代码IndexUI.java和IndexUI2.java中,却没有增加按钮的事件,而是写到了父类中,public final void onClick$btnInsert() ;这样所有的增加操作就可以共享一个代码了.删除,修改等原理也是如此.略
mysql数据库表结构
CREATE TABLE `book` ( `Id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(255) DEFAULT NULL, `title` varchar(255) DEFAULT NULL, PRIMARY KEY (`Id`) ) CREATE TABLE `disk` ( `Id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(255) DEFAULT NULL, `MB` varchar(255) DEFAULT NULL, PRIMARY KEY (`Id`) )index.zul 图书管理
<?page title="Auto Generated index.zul"?> <window title="书籍信息" border="normal" width="200px" apply="com.huaxin.ui.IndexUI"> <hbox> <label value="作者" /> <textbox id="name" /> </hbox> <hbox> <label value="标题" /> <textbox id="title" /> </hbox> <button id="btnInsert" label="增加" /> <button id="btnReset" label="重置" /> <button id="btnUpdate" label="修改" /> <button id="btnDelete" label="删除" /> </window>
IndexUI.java 书籍后台管理类
package com.huaxin.ui; import org.zkoss.zk.ui.Component; import org.zkoss.zul.Textbox; import com.huaxin.entity.Book; import com.huaxin.template.Template; public class IndexUI extends Template { Textbox name; Textbox title; public IndexUI() { super(); } public void doAfterCompose(Component comp) throws Exception { super.doAfterCompose(comp); comp.setVariable(comp.getId() + "Ctrl", this, true); // 测试打印,访问父类初始化的属性 System.out.println(super.webappPath); } public Book getInstance() { Book book = new Book(); book.setName(name.getValue()); book.setTitle(title.getValue()); return book; } public <Book> void setInstance(Book obj) { } }
index2.zul 光盘管理
<?page title="Auto Generated index.zul"?> <window title="光盘信息" border="normal" width="200px" apply="com.huaxin.ui.IndexUI2"> <hbox> <label value="名称" /> <textbox id="name" /> </hbox> <hbox> <label value="容量" /> <textbox id="MB" /> </hbox> <button id="btnInsert" label="增加" /> <button id="btnReset" label="重置" /> <button id="btnUpdate" label="修改" /> <button id="btnDelete" label="删除" /> </window>
IndexUI2.java 光盘后台管理类 package com.huaxin.ui; import org.zkoss.zk.ui.Component; import org.zkoss.zul.Textbox; import com.huaxin.entity.Disk; import com.huaxin.template.Template; public class IndexUI2 extends Template { Textbox name; Textbox MB; public IndexUI2() { super(); } public void doAfterCompose(Component comp) throws Exception { super.doAfterCompose(comp); comp.setVariable(comp.getId() + "Ctrl", this, true); // 测试打印,访问父类初始化的属性 System.out.println(super.webappPath); } public Disk getInstance() { Disk disk = new Disk(); disk.setName(name.getValue()); disk.setMB(MB.getValue()); return disk; } public <Disk> void setInstance(Disk obj) { } }
Book.java 书籍实体类
package com.huaxin.entity; import javax.persistence.Basic; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; import javax.persistence.Table; @Entity public class Book { @Id @GeneratedValue(strategy=GenerationType.IDENTITY) @Column(name="Id") private int id; @Basic private String name; @Basic private String title; 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; } public String getTitle() { return title; } public void setTitle(String title) { this.title = title; } }
Disk.java 光盘实体类
package com.huaxin.entity; import javax.persistence.Basic; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; @Entity public class Disk { @Id @GeneratedValue(strategy=GenerationType.IDENTITY) @Column(name="Id") private int id; @Basic private String name; @Basic private String MB; 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; } public String getMB() { return MB; } public void setMB(String mB) { MB = mB; } }
Template.java
package com.huaxin.template; import java.util.List; import javax.persistence.EntityManager; import javax.persistence.EntityManagerFactory; import javax.persistence.EntityTransaction; import javax.persistence.Persistence; import javax.persistence.Query; import org.zkoss.zk.ui.Execution; import org.zkoss.zk.ui.Executions; import org.zkoss.zk.ui.util.GenericForwardComposer; import org.zkoss.zkplus.databind.AnnotateDataBinder; import org.zkoss.zul.Button; import com.huaxin.entity.Book; public abstract class Template extends GenericForwardComposer { /* * private 私有 public 公有 friendly 默认的,同包内访问 protected 具有friendly权限,同时子类可以访问 */ // e.g. /HDPYWeb protected String webappPath = ""; // e.g. http://localhost:80/HDPYWeb/ protected String basePath = ""; // 取得request对象 protected Execution request = Executions.getCurrent(); // 刷新 protected AnnotateDataBinder binder; protected Button btnReset; // 重置 protected Button btnInsert;// 增加 protected Button btnUpdate;// 更新 protected Button btnDelete;// 删除 protected Class<?> clazz; public Template() { webappPath = request.getContextPath(); basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + webappPath + "/"; } // 方法必须为public,否则无法调用(反射) // 增加 public final void onClick$btnInsert() { EntityManagerFactory factory = Persistence.createEntityManagerFactory("mysql"); EntityManager em = factory.createEntityManager(); EntityTransaction tx = em.getTransaction(); tx.begin(); em.persist(getInstance()); tx.commit(); } // 删除----方法没有用public修饰,所以不起作用 protected final void onClick$btnDelete() { { // 真正使用的时候,此处要添加数据库操作代码 alert("delete"); } } // 修改 public final void onClick$btnUpdate() { { // 真正使用的时候,此处要添加数据库操作代码 alert("update"); } } // 重置 public final void onClick$btnReset() { { // 真正使用的时候,此处要添加数据库操作代码 alert("reset"); } } // 取得页面输入数据,泛型方法,子类继承以后,返回的类型可以自定义 public abstract <T> T getInstance(); // 取得页面输入数据 public abstract <T> void setInstance(T obj); }
persistence.xml JPA配制文件
<?xml version="1.0" encoding="UTF-8"?> <persistence xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.0"> <!-- persistence-unit的name属性提供了创建EntityManagerFacotry时的 关键字 transaction-type则指定了使用的事务管理类型 这里使 用'RESOURCE_LOCAL'参数表示使用本地事务 --> <persistence-unit name="mysql" transaction-type="RESOURCE_LOCAL"> <!-- JPA的提供类,OpenJPA的设置如下 如果使用其它的JPA实现,这里 的内容需要修改成相应的提供类 --> <provider>org.apache.openjpa.persistence.PersistenceProviderImpl</provider> <!-- OpenJPA容器中管理的实体类列表 --> <class>com.huaxin.entity.Book</class> <class>com.huaxin.entity.Disk</class> <!-- OpenJPA容器访问数据库的参数 --> <properties> <property name="openjpa.ConnectionURL" value="jdbc:mysql://127.0.0.1/test" /> <property name="openjpa.ConnectionDriverName" value="com.mysql.jdbc.Driver" /> <property name="openjpa.ConnectionUserName" value="root" /> <property name="openjpa.ConnectionPassword" value="root" /> </properties> </persistence-unit> </persistence>
评论
14 楼
cczakai
2011-03-02
模板用来将不变的行为抽离为父类,去除子类中重复代码。
目前MVC很多都要去Dao
其实我们在写Dao时候可以抽象出一些不变的方法比如:
add
update
delete
query
或者get/set
放入抽象父类中实现代码,
Dao:Interface
AbstractDao implements Dao{
public void add(){
getInstance().add();
}
public void update(){
System.out.println("Dao update");
}
public Dao getInstance();
}
ConrectaDao extend AbstractDao {
public void add(){
System.out.println("ConrectaDao+add()");
}
public void mymethod(){
System.out.println("ConrectaDao+mymethod()");
}
public Dao getInstance(){
return this;
}
}
}
client:
ConrectaDao dao = new ConrectaDao();
dao.add();
dao.update();
dao.mymethod();
目前MVC很多都要去Dao
其实我们在写Dao时候可以抽象出一些不变的方法比如:
add
update
delete
query
或者get/set
放入抽象父类中实现代码,
Dao:Interface
AbstractDao implements Dao{
public void add(){
getInstance().add();
}
public void update(){
System.out.println("Dao update");
}
public Dao getInstance();
}
ConrectaDao extend AbstractDao {
public void add(){
System.out.println("ConrectaDao+add()");
}
public void mymethod(){
System.out.println("ConrectaDao+mymethod()");
}
public Dao getInstance(){
return this;
}
}
}
client:
ConrectaDao dao = new ConrectaDao();
dao.add();
dao.update();
dao.mymethod();
13 楼
jimoshutong
2011-03-02
我们也在用ZK,是3.6.4版本。不过感觉有的地方还是很不习惯,强制转换太多了。
12 楼
cknet
2010-09-20
<p>和ZK比较相似,国内开源的Javaweb框架,更多突出业务积累</p>
<p> </p>
<p><a href="http://code.google.com/p/simpleframework/">http://code.google.com/p/simpleframework/</a></p>
<p> </p>
<p>demo: </p>
<p><a href="http://222.35.91.208:9000/">http://222.35.91.208:9000/</a></p>
<p> </p>
<p><a href="http://code.google.com/p/simpleframework/">http://code.google.com/p/simpleframework/</a></p>
<p> </p>
<p>demo: </p>
<p><a href="http://222.35.91.208:9000/">http://222.35.91.208:9000/</a></p>
11 楼
KimHo
2010-09-20
这个模板方法模式,貌似跟ZK没多大关系吧
10 楼
85977328
2010-08-12
szbaony 写道
简单扼要,建议补充下,在项目开发中这么处理,有何好处,主要是针对新手,帮新手理解原理
好的,明天我给补充上~,~ 晚上我回去酝酿
9 楼
szbaony
2010-08-12
简单扼要,建议补充下,在项目开发中这么处理,有何好处,主要是针对新手,帮新手理解原理
8 楼
85977328
2010-08-12
tiger860709 写道
LZ,这个例子有点简单,看不出来ZK到底有多么神奇。。。。呵呵
看了你的建议以后,我把代码再次更新了。这次把全部代码都贴出来了
如果有深度使用ZK的朋友,一定能体会我这个模板方法带来的优越性
7 楼
tiger860709
2010-08-11
LZ,这个例子有点简单,看不出来ZK到底有多么神奇。。。。呵呵
6 楼
85977328
2010-08-11
1927105 写道
观摩了,没用过,lz是做J2EE的么?
恩,长期从事J2EE的开发工作
5 楼
shore1111
2010-08-11
模板其实跟重写差不多
4 楼
robyjeffding
2010-08-11
ZK是一套以 AJAX/XUL/Java 为基础的网页应用程式开发框架,用於丰富网页应用程式的使用界面。最大的好处是,在设计AJAX网路应用程式时,轻松简便的操作就像设计桌面程式一样。 ZK包含了一个以AJAX为基础、事件驱动(event-driven)、高互动性的引擎,同时还提供了多样丰富、可重复使用的XUL与HTML组件,以及以 XML 为基础的使用介面设计语言 ZK User-interfaces Markup Language (ZUML)。 ZK 提供超过60个XUL组件及80个XHMTL组件。举凡listbox, slider, audio, slider, tree, combobox, tabbox, auto-completion等均有支援。ZK 亦提供 FCKeditor 和 Dojo的组件,让使用者直接以Java控制,无须使用 JavaScript。 ZK是一套开放源码、相容於 XUL/HTML 标准、Java写成的开发工具。
3 楼
IcedCoffee
2010-08-11
zk是好东西...
2 楼
IcedCoffee
2010-08-11
这就是模板?未免太简单了吧?
1 楼
1927105
2010-08-11
观摩了,没用过,lz是做J2EE的么?
发表评论
-
evernote international无法同步、无法登陆问题
2020-04-24 11:10 1365今天在记录日记的时候,发现印象笔记evernote国际 ... -
云计算
2019-10-18 12:53 444好久没写文章了,这个图把iaas,paas,saas说的很透彻 ... -
CentOS/RHEL 5/6/7上安装svn1.8
2017-04-06 09:02 1428CentOS/RHEL 5/6/7上安装svn1.8 1)安装 ... -
chrome开发javaee服务端常用插件
2015-10-28 15:51 982Advanced REST client:调试http插件 h ... -
java职业生涯规划
2015-10-03 10:10 1335只上一个图,你就明白 参考文章 http://blog.s ... -
关闭 TSVNCache.exe 进程
2015-04-05 09:55 2914在Windows下使用SVN,通常都会安装Tortoi ... -
eclipse中alt+/失效解决办法
2014-02-26 13:56 11501、Eclipse下进入Windows ->Preper ... -
svn-强行忽略与externals
2013-12-12 08:45 1473提交文件,强行添加SVN忽略的文件 svn add * --f ... -
关于技术和业务
2013-12-10 10:27 0没有架构师,没有技术经理,没有代码评审。一说纯技术,就用系统进 ... -
ab的用法
2013-12-09 20:19 1034带head的请求,URL要用单引号,否则会报错 ./ab -n ... -
关于研发过程中的思路
2013-07-04 10:10 1450一般我们在研发过程中,控制会议,会遇到很多问题。有些人看的很长 ... -
如果你迷茫,请看看学习路线
2013-06-05 10:12 1619技术一定要俩头抓, 往下深谙原理(语言, 汇编, 内存 ... -
软件追求的几个特性
2012-12-07 00:00 1384看了大话设计模式,里面总结的挺精辟 可维护性:改只需要修改的 ... -
几种比较有特点的项目管理模式
2012-09-17 14:31 2337第一种 thoughtworks 有好多工程师,分DEV,QA ... -
windows自动关机
2012-06-21 17:34 1530Windows XP的定时关机命令是由Shutdown.exe ... -
Eclipse中@author的修改
2012-06-01 11:42 1880换了电脑后eclipse中的@author变了,于是找了下 ... -
firefox开发javaee服务端常用插件
2012-02-15 17:52 1725CSS调试插件:Web Developer 客户端UA模拟插件 ... -
REST关键原则
2011-09-21 14:40 1556REST(Representational State ... -
算法3-递归
2011-08-04 23:13 1221/** * 时间:2010-02-07 * @au ... -
算法2-大数相乘
2011-08-04 23:09 1472import java.io.*; //数据类封 ...
相关推荐
1.版本:matlab2014/2019a/2024a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。
从ImageNet2012分类数据集中选取的100张图片,用于对常见分类模型进行量化。 数据集介绍 数据背景: 静态离线量化方法需要少量校准数据,这个数据集用于量化演示示例。 数据来源: 基于Imagenet2012测试数据集,取前100张图片和标签作为本数据集。
内容概要:本文详细介绍了计算机的发展历程及其核心组成部分,从早期计算工具的演进到现代计算机的诞生,重点探讨了冯·诺依曼体系结构的重要性。文章回顾了从机械计算器、ENIAC到微处理器的科技进步,阐述了计算机五大组成部分(运算器、控制器、存储器、输入设备、输出设备)的功能与协作机制。同时,文中还讨论了操作系统、编程语言、数据库管理系统等软件层面的内容,以及量子计算和神经形态计算等前沿技术对未来计算机发展的影响。; 适合人群:计算机专业学生、计算机爱好者及对计算机技术感兴趣的读者。; 使用场景及目标:①帮助读者理解计算机硬件的基本组成和工作原理;②解释软件与硬件之间的协同关系;③介绍量子计算和神经形态计算等新兴技术的发展趋势及挑战。; 其他说明:掌握计算机组成原理有助于读者深入了解计算机系统的工作机制,培养硬件思维和系统思维,为后续学习操作系统、编译原理、计算机网络等课程打下坚实基础。同时,对于广大计算机爱好者而言,了解计算机组成原理可以让他们更好地理解计算机的运行机制,在使用计算机的过程中更加得心应手。
中国移动2024年6G通感算智融合技术体系白皮书1.053页.pdf
文档支持目录章节跳转同时还支持阅读器左侧大纲显示和章节快速定位,文档内容完整、条理清晰。文档内所有文字、图表、函数、目录等元素均显示正常,无任何异常情况,敬请您放心查阅与使用。文档仅供学习参考,请勿用作商业用途。 你是否渴望高效解决复杂的数学计算、数据分析难题?MATLAB 就是你的得力助手!作为一款强大的技术计算软件,MATLAB 集数值分析、矩阵运算、信号处理等多功能于一身,广泛应用于工程、科学研究等众多领域。 其简洁直观的编程环境,让代码编写如同行云流水。丰富的函数库和工具箱,为你节省大量时间和精力。无论是新手入门,还是资深专家,都能借助 MATLAB 挖掘数据背后的价值,创新科技成果。别再犹豫,拥抱 MATLAB,开启你的科技探索之旅!
通信工程分包合同.docx
基于Qt+C++实现的物联网景区地质灾害监测系统+源码+项目文档,适合毕业设计、课程设计、项目开发。项目源码已经过严格测试,可以放心参考并在此基础上延申使用,详情见md文档 本项目利用Zigbee协议搭建了专属物联网,搭建了以Cortex-A8为主核的本地网关,租用阿里云组建系统服务器,并建立了相关网站。监测中心站通过客户端监控易发灾害点数据,在灾害爆发前做好预防工作;普通用户可以通过网站查看各项数据。 基于Qt+C++实现的物联网景区地质灾害监测系统+源码+项目文档,适合毕业设计、课程设计、项目开发。项目源码已经过严格测试,可以放心参考并在此基础上延申使用,详情见md文档 本项目利用Zigbee协议搭建了专属物联网,搭建了以Cortex-A8为主核的本地网关,租用阿里云组建系统服务器,并建立了相关网站。监测中心站通过客户端监控易发灾害点数据,在灾害爆发前做好预防工作;普通用户可以通过网站查看各项数据
CNC_控制器_STM32_开源项目
世邦魏理仕:2022年北京房地产市场回顾与2023年展望
科学发展观与建筑企业管理论文.docx
爱普生L130
基于javaScript+Springboot+Vue实现的校园社团信息管理系统+源码+演示视频+项目文档,适合毕业设计、课程设计、项目开发。项目源码已经过严格测试,可以放心参考并在此基础上延申使用,详情见md文档 园社团信息管理系统管理员功能有个人中心,学生管理,社长管理,社团分类管理,社团信息管理,加入社团管理,社团成员管理,社团活动管理,活动报名管理,系统管理等。社长添加社团,管理员审核社团,学生加入社团,社长审核社团。因而具有一定的实用性。 本站是一个B/S模式系统,采用Spring Boot框架,MYSQL数据库设计开发,充分保证系统的稳定性。系统具有界面清晰、操作简单,功能齐全的特点,使得校园社团信息管理系统管理工作系统化、规范化。本系统的使用使管理人员从繁重的工作中解脱出来,实现无纸化办公,能够有效的提高校园社团信息管理系统管理效率。
apk文件
JDK1.7及之前HashMap的put方法图解
文档支持目录章节跳转同时还支持阅读器左侧大纲显示和章节快速定位,文档内容完整、条理清晰。文档内所有文字、图表、函数、目录等元素均显示正常,无任何异常情况,敬请您放心查阅与使用。文档仅供学习参考,请勿用作商业用途。 你是否渴望高效解决复杂的数学计算、数据分析难题?MATLAB 就是你的得力助手!作为一款强大的技术计算软件,MATLAB 集数值分析、矩阵运算、信号处理等多功能于一身,广泛应用于工程、科学研究等众多领域。 其简洁直观的编程环境,让代码编写如同行云流水。丰富的函数库和工具箱,为你节省大量时间和精力。无论是新手入门,还是资深专家,都能借助 MATLAB 挖掘数据背后的价值,创新科技成果。别再犹豫,拥抱 MATLAB,开启你的科技探索之旅!
文档支持目录章节跳转同时还支持阅读器左侧大纲显示和章节快速定位,文档内容完整、条理清晰。文档内所有文字、图表、函数、目录等元素均显示正常,无任何异常情况,敬请您放心查阅与使用。文档仅供学习参考,请勿用作商业用途。 你是否渴望高效解决复杂的数学计算、数据分析难题?MATLAB 就是你的得力助手!作为一款强大的技术计算软件,MATLAB 集数值分析、矩阵运算、信号处理等多功能于一身,广泛应用于工程、科学研究等众多领域。 其简洁直观的编程环境,让代码编写如同行云流水。丰富的函数库和工具箱,为你节省大量时间和精力。无论是新手入门,还是资深专家,都能借助 MATLAB 挖掘数据背后的价值,创新科技成果。别再犹豫,拥抱 MATLAB,开启你的科技探索之旅!
Epson_L301303.zip
ISO8583报文协议讲解.ppt
本书旨在教授读者如何使用Apache CXF和Axis2开发Web服务,并涵盖了相关的标准和技术。作者通过逐步指导的方式,结合图表和实际代码,详细讲解了设计、实现和测试Web服务的过程。内容包括使用标准API与Apache CXF 2.2.x和Axis2 1.5.x的交互、利用缓存创建RESTful服务、使用Rampart加密SOAP消息、发送用户认证信息、利用MTOM处理二进制文件以及单元测试Web服务等。本书适合有一定Java基础,希望学习Java Web服务开发的读者。