|
博客首页 » 最新文章
发表于08-08-31 09:19 | 阅读 2475 |
评分 (暂无)
级别: 初级 廖 雪峰, 撰稿人 2008 年 8 月 22 日JSON 即 JavaScript Object Natation,它是一种轻量级的数据交换格式,非常适合于服务器与 JavaScript 的交互。本文将快速讲解 JSON 格式,并通过代码示例演示如何分别在客户端和服务器端进行 JSON 格式数据的处理。 尽管有许多宣传关于 XML 如何拥有跨平台,跨语言的优势,然而,除非应用于 Web Services,否则,在普通的 Web 应用中,开发者经常为 XML 的解析伤透了脑筋,无论是服务器端生成或处理 XML,还是客户端用 JavaScript 解析 XML,都常常导致复杂的代码,极低的开发效率。实际上,对于大多数  ...
发表于08-04-02 01:37 | 阅读 1265 |
评分 (暂无)
本系列的前两篇文章介绍了 Grails Web 框架的基本构建块。我曾反复强调过 —Grails 基于模型-视图-控制器(Model-View-Controller,MVC)架构模式(请参阅 参考资料),Grails 利用约定优于配置 将框架的各个部分组合在一起。Grails 用命名直观的文件和目录代替了更容易出错的在外部配置文件中手工对这些链接进行归类的老方法。例如,在 第一篇文章 可以看到控制器拥有 Controller 后缀,存储在 grails-app/controller 目录。在 第二篇文章 了解到可以从 grails-app/domain 目录找到域模型。 在本月的文章中,我将通过讨论 Grails 视图进一步介绍 MVC。视图(正如您所料)存储在 grails-app/views&n ...
发表于08-04-01 17:47 | 阅读 1677 |
评分 (暂无)
概述 Spring 2.5 相比于 Spring 2.0 所新增的最重要的功能可以归结为以下 3 点: * 基于注解的 IoC 功能; * 基于注解驱动的 Spring MVC 功能; * 基于注解的 TestContext 测试框架。 Spring 推荐开发者使用新的基于注解的 TestContext 测试框架,本文我们将对此进行详细的讲述。 低版本的 Spring 所提供的 Spring 测试框架构在 JUnit 3.8 基础上扩展而来,它提供了若干个测试基类。而 Spring 2.5 ...
发表于08-03-19 08:38 | 阅读 1264 |
评分 (暂无)
在上一期 文章 中,您只是稍微了解了一些 Scala 语法,这些是运行 Scala 程序和了解其简单特性的最基本要求。通过上一篇文章中的 Hello World 和 Timer 示例程序,您了解了 Scala 的 Application 类、方法定义和匿名函数的语法,还稍微了解了 Array[] 和一些类型推断方面的知识。Scala 还提供了很多其他特性,本文将研究 Scala 编程中的一些较复杂方面。 关于本系列 Ted Neward 潜心研究 Scala 编程语言,并带您跟他一起徜徉。在这个新的 developerWorks 系列 中,您将深入了解 Scala,并在实践中看到 Scala 的语言功能。在进 ...
发表于08-03-15 00:28 | 阅读 1327 |
评分 (暂无)
XML 模式描述 XML 的类型、元素和结构。Simple API for XML(SAX)、Document Object Model(DOM)和 XML Object Model(XOM)等一般性工具很难简便地使用这些信息。XMLBeans 这种数据绑定框架可以从 XML 模式创建 POJO,允许快速地读取、操作和写 XML。 在处理 POJO 时,尤其是胖客户机,需要知道对象什么时候发生变化 — 通常称为事件(eventing) 或通知(notification)。事件是 Model View Controller(MVC)和 Model 2 模式的核心组件,这些模式的主要意图是在图形用户界面(GUI)代码和模型代码之间形成松散耦合。我们将以 Sudoku ...
发表于08-03-15 00:28 | 阅读 3119 |
评分 (暂无)
概述 继 Spring 2.0 对 Spring MVC 进行重大升级后,Spring 2.5 又为 Spring MVC 引入了注解驱动功能。现在你无须让 Controller 继承任何接口,无需在 XML 配置文件中定义请求和 Controller 的映射关系,仅仅使用注解就可以让一个 POJO 具有 Controller 的绝大部分功能 —— Spring MVC 框架的易用性得到了进一步的增强.在框架灵活性、易用性和扩展性上,Spring MVC 已经全面超越了其它的 MVC 框架,伴随着 Spring 一路高唱猛进,可以预见 Spring MVC 在 MVC 市场上的吸引力 ...
发表于08-03-11 23:18 | 阅读 1188 |
评分 (暂无)
rope 数据结构 表示不能修改的字符序列,与 Java 的 String 非常像。但是 ropes 效率奇高的字符串变换操作使得它与 String 及其同一体系的可修改的 StringBuffer 和 StringBuilder 大不相同,非常适合那些执行繁重字符串操纵的应用程序,尤其在多线程环境下更是如此。 简要概括过 rope 数据结构之后,本文将介绍 rope 在 Java 平台上的实现 —— Ropes for Java。然后将在 Java 平台上对 String、StringBuffer 和 Ropes for Java Rope 类进行测评;考察一些特殊的性能问题;并讨论什么时候应该以及 ...
发表于08-03-08 08:58 | 阅读 1286 |
1人对此综合评价
在上个月开篇的 精通 Grails 文章中,介绍了名为 Grails 的新 Web 框架。Grails 结合了最新的实践,例如模型-视图-控制器的关注点隔离和约定优于配置。通过将这些实践与其中内置的 scaffolding 功能结合,使用 Grails 只需花几分钟就能建立并运行起一个 Web 站点。 这篇文章的重点是使用 Grails 可以实现简化的另一领域:使用 Grail 对象关系映射(Grails Object Relational Mapping,GORM)API 进行持久化。我将首先介绍什么是对象关系映射器(object-relational mapper,ORM),以及如何创建一对多关系。然后将学习数据验证(确保应用程序不会出现无用信息输入/无用信息输出(garbage&n ...
发表于08-03-08 08:58 | 阅读 1201 |
1人对此综合评价
使用 JSF 组件的样式属性 几乎每个 JSF HTML 组件都有两个可选属性,分别为 style 和 styleClass,这两个属性在 HTML 输出中呈现为 style 和 class 属性。一些组件,比如 <h:dataTable> 和 <h:panelGrid>,还有针对于其 facet 的额外样式属性。本节讨论与 CSS 相关的 JSF HTML 库属性。 将 CSS 文件链接到 JSF 页面 如果 Web 页面具有独特的样式,可以在页面页眉的 <style> 元素内定义样式规则。也可以使用 style 属性为单个& ...
发表于08-03-07 04:38 | 阅读 1044 |
评分 (暂无)
什么是 SOA? 如果公司有大量应用程序,这些程序供不同部门的承担不同责任的职员使用,那么就适合使用面向服务体系结构(Service Oriented Architecture,SOA)。这些应用程序可以共享功能,但是功能的组合、用户界面细节和易用性需求是不同的。与许多企业体系结构一样,SOA 也采用一个多层模型,但是它不只如此。在服务器中,功能分散在单独的服务上。一个客户机可以使用其中的一个或多个服务,而一个服务也可以由许多客户机使用。由此形成了一个松散耦合的体系结构,这大大提高了现有软件的可重用性。 常用的重型实现 常用缩写词 * API:应用程序编程接口(Application program interface) * IT:信息技术(Information technology) * X ...
发表于08-03-06 07:38 | 阅读 1730 |
评分 (暂无)
Apple 的 iPhone 平台为开发人员提供了一个有趣的机会。借助其小型的交互式触摸屏,iPhone 和 iPod Touch 在很短的时间内迅速吸引了数百万用户。但是这种新颖的设计和专利平台给应用程序开发人员带来了一系列新的挑战。在 2008 年 2 月 Apple 发布其软件开发包 (SDK) 以前,想要在该平台上进行研究的开发人员必须创建模拟 iPhone 的本机界面外观的 Web 应用程序。 幸运的是,使用一系列新的开源工具可以更轻松地完成这项工作。Aptana 的针对 Eclipse 的 iPhone Development 插件可以生成特定于 iPhone 的项目,并在可旋转取景器中预览应用程序。Joe Hewitt 的 iU ...
发表于08-03-05 03:38 | 阅读 1010 |
评分 (暂无)
您现在应该具备的(回顾) 与前一篇文章一样,本文也对您系统的设置情况和您的技能做一些假设。首先,需要按照本系列的第 1 部分中的描述下载并安装 Castor 的最新版本,设置类路径和相关的 Java 库(参见 参考资料 中本系列第一篇文章的链接)。然后,按照第 2 部分中的描述,熟悉 Castor 的基本编组和解组设施。 所以,您应该能够使用 Castor 提取出 XML 文档中的数据,并使用自己的 Java 类处理数据。用数据绑定术语来说,这称为解组(unmarshalling)。反向的过程称为编组(marshalling):您应该能够把 Java 类的成员变量中存储的数据转换为 XML 文档。如果您还不熟悉 Castor 的解组器和编组器,那么应该阅读 第 ...
发表于08-03-04 20:38 | 阅读 1029 |
评分 (暂无)
简介 机器人学很早就超出了科学幻想的领域,并在工业自动化、医疗、太空探索等领域发挥着重要作用。软件机器人模拟器不但简化了机器人工程师的开发工作,还为研究人工智能(artificial intelligence,AI)算法和机器学习提供了工具。以这种研究为中心的模拟器之一是开放源码的 Simbad 项目,它基于 Java 3D 技术(参见 参考资料)。本文讲解如何使用 Simbad 工具箱编写虚拟机器人,并介绍包容体系结构(subsumption architecture) 的机器人设计原理。 本文首先简要概述机器人学并解释包容体系结构概念。然后介绍 Simbad 工具箱并演示如何在 Simbad 中实现包容体系结构。然后使用这个体系结构编写一个简单的机器人。最后,讨论迷宫并编写第二个机器人,与 Homer Simpson 不同(参见&nbs ...
发表于08-03-04 20:38 | 阅读 770 |
评分 (暂无)
关于本系列 信息存储和检索作为同义语伴随 RDBMS 已经有 10 余年了,但现在情况有所改变。Java 开发人员为所谓的对象关系型阻抗失配而沮丧,也不再有耐心去尝试解决这个问题。加上可行替代方案的出现,就导致了人们对对象持久性和检索的兴趣的复苏。 面向 Java 开发人员的 db4o 指南 是对开放源码数据库 db4o 的详尽介绍,db4o 可以充分利用当前的面向对象的语言、系统和理念。要实践本系列的示例,需要下载 db4o,可以从 db4o 主页 下载获得。 在本系列中,我介绍了使用 db4o 进行面向对象数据管理的基本要素。但是还有一点没有讨论,那就是如何在 Web 应用程序中使用 OODBMS,以及与在 Swing 或 SWT ...
发表于08-03-04 20:38 | 阅读 817 |
评分 (暂无)
Java 无处不在。如果您是一名应用程序开发人员,那么您很可能正在使用 Java 进行开发。如果是这样,您应该知道这样的开发并非总是那么有趣。 使用 Java Database Connectivity(JDBC) 创建应用程序需要很多的步骤,其中不少步骤都比较麻烦。您不仅需要创建一个 Java 数据访问对象层,还需要处理 CRUD(create, replace, update, delete)SQL 操作。为此,通常不得不使用两套工具:一套用于 Java 开发,另外一套用于数据库 CRUD 操作。如果有一套工具可以同时处理这两种工作,不是更方便吗?IBM 也这么认为,并着手创建了这样的工具。这个名为 pureQuery(之前的代码名称为“JLINQ”)的新的高性能平台包括用于应用程序的开发工具、API 和高级运行库。IBM&n ...
发表于08-03-04 20:38 | 阅读 1154 |
评分 (暂无)
引言 在 Java 企业开发领域,Rational Application Developer (以下简称 RAD),提供了从集成了基于 UML 的软件设计工具、Servlet、Portlet、Enterprise JavaBeans(EJB)和 Struts 等 J2EE 开发工具、调试工具,以及软件版本管理工具,使用 RAD 进行软件开发和维护,可以覆盖 J2EE 整个软件生命周期,因此 RAD 无疑是 IBM 企业开发领域的最重要的开发工具之一。最新推出的 RAD 7.0 ,以最新的 Eclipse 3.2 为核心,增加了众多重要的功能。本文讲述了如何使用 RAD 7.0 新特性,快速开发一个典型的 J2EE 应用: ...
发表于08-03-04 20:38 | 阅读 1088 |
评分 (暂无)
Windows 对长路径名文件的限制 众所周知,微软的文件系统经历了 fat->fat32->NTFS 的技术变革。且不论安全和文件组织方式上的革新,单就文件名而言,已经从古老的 DOS 8.3 文件格式(仅支持最长 8 个字符的文件名和 3 个字符的后缀名)转变为可以支持长达 255 个字符的文件名。而对于路径长度,NTFS 也已经支持长达 32768 个字符的路径名。 然而,Windows 操作系统并没有完全放开路径名长度的限制,在 windef.h 中,可以找到如下的宏: #define MAX_PATH 260
事实上,所有的 Windows API 都遵循这个限制。因此,每当我们试图更改某一文件的文 ...
发表于08-03-04 20:38 | 阅读 918 |
评分 (暂无)
关于本系列 作为开发人员,我们的工作就是为终端用户实现过程自动化;然而,很多开发人员却忽略了将自己的开发过程自动化的机会。为此,我编写了 让开发自动化 这个系列的文章,专门探讨软件开发过程自动化的实际应用,并教您何时 以及如何 成功地应用自动化。 您是否曾注意到,很多团队总是在将软件从开发环境迁移到生产环境之后才想到改善?我曾经遇到过一些团队,他们的开发周期长达几个星期甚至几个月不等 — 我认为这是浪费时间。为什么不像自动化构建一样,通过自动化大幅度减少花费在部署配置问题上的时间,并因此提升基础架构的效率? 仔细想一想:软件部署流程中的低效率意味着将推迟应用程序到用户的交付。更糟糕的是,一些人认为,对于大多数项目,部署类似于撕掉创可贴(仅会产生暂时的疼痛),然而,部署问题将一再滞留,并且在每次交付时频繁出现。 除了延迟交付外,低效的部署基础架 ...
发表于08-03-04 20:38 | 阅读 749 |
评分 (暂无)
jpa2web 是什么? Hibernate(见 参考资料)等工具大大简化了 Java 对象与其数据库存储之间的映射;尤其是,很容易给 Java 类加上注解,从而指定对象持久化的方式。开发人员不再需要编写大量数据库集成代码。Hibernate 解决了持久化问题;但是,仍然需要创建 Web 页面来处理这些元素。对于中等规模的 Web 应用程序,典型的开发过程可能是这样的:开发人员首先编写表示某个领域模型的 Plain Old Java Object(POJO),然后创建不同的事务和 Web 用户界面。一部分模型元素常常涉及非事务性数据。客户、国家、地区、职员和公司是业务模型的典型元素,它们由操作员维护。 为什么不生成一个 Web 表示层,让它根据带注解的 bean 创建、添加、列出、删除和搜索这些元素 ...
发表于08-03-04 20:38 | 阅读 711 |
1人对此综合评价
您永远不会忘记您的初恋! 对于我来说,她的名字是 Tabinda (Bindi) Khan。那是一段愉快的少年时光,准确地说是在七年级。她很美丽、聪明,而最好的是,她常常因我的笨拙的笑话而乐不可支。在七年级和八年级的时间里,我们经常 “出去走走”(那时我们是这么说的)。但到了九年级,我们分开了,文雅一点的说法是,她厌倦了连续两年听到同样的笨拙的男孩笑话。我永远都不会忘记她(特别是因为我们在高中毕业 10 周年聚会时再次相遇);但更重要的是,我将永远不会失去这些珍贵的(也许有点言过其实)回忆。 关于本系列 Ted Neward 潜心研究 Scala 编程语言,并带您跟他一起徜徉。在这个新的 developerWorks 系列 中,您将深入了解 Scala,并在实践中看到 Scala 的语言功能。在进行相关比较时,Scala代码和 ...
|