摘要:
Dojo 是一个 JavaScript 实现的开源 DHTML(动态html)工具包。Dojo能做什么??1、让开发者更容易地为 Web 页面添加动态能力,也可以在其它支持 JavaScript 的环境中使用 Dojo;2、利用 Dojo 提供的组件,开发者可以提升 Web 应用程序的可用性和交互能力;3、Dojo 很大程度上屏蔽了浏览器之间的差异性,因此,开发者可以不用担心 Web 页面是否在某些浏览器中可用;4、通过 Dojo 提供的工具,您还可以为代码编写命令行式的单元测试代码。5、Dojo 的打包工具可以帮助您优化 JavaScript 代码,并且只生成部署应用程序所需的最小 Dojo 阅读全文
摘要:
JSON: The Fat-Free Alternative to XMLJSON:丰富而免费的XML替代品(这个标题这么翻译,不知道对不对,呵呵)可扩展标记语言(XML)是源自标准通用标记语言(SGML)的文本格式。与SGML相比,XML很简单。超文本标记语言(HTML),通过比较,甚至更简单。即便如此,好的HTML参考书,有一英寸厚。这是因为组织文件的格式和结构是一个复杂的业务。围绕XML的热点大多是围绕一个新的角色,一个可以与之互换的数据序列化格式。 XML作为数据表示语言提供了两个巨大的优势:1、它是基于文本的。2、它是平台独立的。相比其他的数据交换格式而言,这些优势使独立应用达到更高 阅读全文
摘要:
学习Dojo有些时间了,也整理了一些资料,先来个最入门级别的。HelloWorldAsp.Net+DojoDojo事件绑定,弹出HelloWorld[html]view plaincopyprint?Dojo操作DOM版HelloWorld[html]view plaincopyprint?MyFirstDojoProgram!Hello,Dojo!Dojo封装Ajax实现HelloWorld[html]view plaincopyprint?最近对Ajax关注多一些,可能会出一些dojo有关ajax方面的文章。dijit控件也可能谈一谈 阅读全文
摘要:
性能优化是一个很大的话题,大到程序架构优化,数据库设计等,小到一个特定算法,甚至js优化等等。这里我们只简单谈一下hibernate的性能优化。在使用Hibernate的时候,通过正确的方法和策略,可以提高执行效率。(一)抓取策略抓取策略(fetching strategy)是指:当应用程序需要在(Hibernate实体对象图的)关联关系间进行导航的时候, Hibernate如何获取关联对象的策略。抓取策略可以在O/R映射的元数据中声明,也可以在特定的HQL 或条件查询(Criteria Query)中重载声明。例如单端代理,集合代理,批量抓取等设置方式通常为*fetch="join 阅读全文
摘要:
Lazy:延迟加载,在真正使用某个对象的时候才正真的去创建,即hibernate才会正真的发出sql语句去加载该对象Lazy的有效期:只有在session打开的时候才有效;session关闭后lazy就没效了。lazy策略可以用在:1、 标签上:可以取值true/false* 标签上,可以取值true/false,这个特性需要类增强(不常用)* 设置标签中的lazy="true",或是保持默认(即不配置lazy属性)* 如果lazy的属性值为true,那么在使用load方法加载数据时,只有确实用到数据的时候才会发出sql语句;这样有可能减少系统的开销。注:上的lazy只影响 阅读全文
摘要:
xhrGet 是 XHR 框架中最重要的函数,使用频率也最高。使用它即可以请求服务器上的静态文本资源如 txt、xml 等,也可以获取动态页面 php、jsp、asp 等,只要从服务器返回的是字符数据流即可。除了 xhrGet,Dojo 的 XHR 框架还包含 xhrPost,rawXhrPost,xhrPut,rawXhrPut,xhrDelete 。这几个函数与 xhrGet 类似,使用方法和参数都可以参考 xhrGet 。区别在于他们的 HTTP 请求类型,xhrPost 发送的是 Post 请求,xhrPut 发送的是 Put 请求,xhrDelete 发生的是 Delete 请求。下 阅读全文
摘要:
在淘宝,我们对某类产品感兴趣,就会订阅该产品信息,当有货到后,我们会收到提示信息。下面就简单用Dojo订阅/发布模式来说明其实现的基本原理。大概功能需求:买家先在产品中心注册,说自己对衣服等感兴趣,接着产品中心发布了一条新信息“衣服到新款了,亲快来采购吧”,这时买家将立即收到这条消息,并显示出来(在本例中就是在firefox浏览器的firebug模拟控制台输出这条新信息)。然后买家可能对别的信息感兴趣,再次订阅,等等重复上述过程。最后买家不打算再订阅衣服信息了,就在产品中心取消了对衣服信息的注册。大概流程就是这样子的。果断上代码看效果,然后再来分析![javascript]view plain 阅读全文
摘要:
首先,SSH不是一个框架,而是多个框架(struts+spring+hibernate)的集成,是目前较流行的一种Web应用程序开源集成框架,用于构建灵活、易于扩展的多层Web应用程序。集成SSH框架的系统从职责上分为四层:表示层、业务逻辑层、数据持久层和域模块层(实体层)。Struts作为系统的整体基础架构,负责MVC的分离,在Struts框架的模型部分,控制业务跳转,利用Hibernate框架对持久层提供支持。Spring一方面作为一个轻量级的IoC容器,负责查找、定位、创建和管理对象及对象之间的依赖关系,另一方面能使Struts和Hibernate更好地工作。由SSH构建系统的基本业务流 阅读全文
摘要:
Hibernate是一个开放源代码的ORM(对象-关系映射)框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。 Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用,最具革命 意义的是,Hibernate可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任。一、既然Hibernate是ORM的框架,说Hibernate,就不得不说ORM,那么什么是ORM?对象-关系映射(Object/Relation Mapping,简称ORM),是随着面向对 阅读全文
摘要:
Pager-taglib,支持多种风格的分页显示。实际上她是一个Jsp标签库,为在JSP上显示分页信息而设计的一套标签,通过这些标签的不同的组合,会形成多种不一样的分页页面,风格各异,她自带的DEMO就有七种左右的分页风格,包括Google的分页风格。而需要订制自已的风格的分页页面也非常简单。pg:pager 这个标签用来设置分页的总体参数,一切分页标签都在其内工作。 url:分页的链接根地址,pager标签会在这个链接的基础上附加分页参数 items:总记录数,pager标签正是根据这个值来计算分页参数的 maxPageItems:每页显示的行数,默认为10 maxIndexPage... 阅读全文
摘要:
什么是AOP?AOP是OOP的延续,是Aspect Oriented Programming的缩写,意思是面向方面编程。AOP实际是GoF设计模式的延续,设计模式孜孜不倦追求的是调用者和被调用者之间的解耦,AOP可以说也是这种目标的一种实现。为什么使用AOP?将通用需求功能从不相关类之中分离出来;同时,能够使得很多类共享一个行为,一旦行为发生变化,不必修改很多类,只要修改这个行为就可以。我们把这种行为称为"分散关注"AOP就是这种实现分散关注的编程方法,它将“关注”封装在“方面”中。AOP的本质可以理解为"动态代理模式",想想代理模式的作用就更容易理解A 阅读全文
摘要:
在我前面的文章中,也试图总结过SSH,见http://blog.csdn.net/shan9liang/article/details/8803989,随着知识的积累,总感觉以前说得比较笼统,思路不够清晰,所以打算写几篇文章再稍微深入地剖析一下SSH,只能说是稍微,因为这三个框架的架构设计和基本原理,并不是通过几篇文字,就能说出所以然的,时间和精力有限,只是希望能通过这几篇简练的文字使大家对ssh的认识再上一个台阶。一、框架的本质在说Struts2,Spring和Hibernate核心原理之前,我觉得应该先搞明白以下三个问题,简短概括如下:1、什么框架?框架并不是什么神圣的东西,它只是一组ja 阅读全文
摘要:
JPA(Java Persistence API,Java持久化API),定义了对象-关系映射(ORM)以及实体对象持久化的标准接口。JPA是JSR-220(EJB3.0)规范的一部分,在JSR-220中规定实体对象(EntityBean)由JPA进行支持。所以JPA不局限于EJB3.0,而是作为POJO持久化的标准规范,可以脱离容器独立运行,开发和测试更加方便。下面通过一张图来看一下JPA的基本概念。然后再做简要分析。注:不是真正意义的UML图啊,只是画着方便就用rose了。一、EntityManager,EntityManagerFactory,PersistenceContext三者的关 阅读全文
摘要:
本文主要对jbpm4进行一个通俗、宏观的解析,涉及流程部署,流程定义,流程执行等基本概念,能让你很轻松地了解jbpm的基本结构和使用方法。 我们使用jbpm的一般步骤可以粗暴的分为:定义流程——》部署流程定义——》创建流程实例——》运行流程——》控制和监视流程——》流程结束,归档流程——》对历史流程进行数据分析——》优化和重组业务——》定义流程——》…… 在这个循环过程中,jbpm到底是怎么工作的? 我们先来下面这张图当我们拿到一个业务需求的描述。首先,我们要通过jbpl对该业务流程进行流程定义,表现为若干活动节点通过转移线条串联。有了流程定义文件,我们需要用到jbpm ... 阅读全文
摘要:
RPC(Remote Procedure Call Protocol)RPC使用C/S方式,采用http协议,发送请求到服务器,等待服务器返回结果。这个请求包括一个参数集和一个文本集,通常形成“classname.methodname”形式。优点是跨语言跨平台,C端、S端有更大的独立性,缺点是不支持对象,无法在编译器检查错误,只能在运行期检查。Web ServiceWeb Service提供的服务是基于web容器的,底层使用http协议,类似一个远程的服务提供者,比如天气预报服务,对各地客户端提供天气预报,是一种请求应答的机制,是跨系统跨平台的。就是通过一个servlet,提供服务出去。首先客 阅读全文
摘要:
问题起因:我在使用ant将流程定义和流程相关资源部署到JBPM数据库中的时候,报了下面一个错误。错误提示,大概是: 11:33:40,781 ERROR JDBCExceptionReporter:101 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'EQT??u_??????~? show variables like 'char%'; +- 阅读全文
摘要:
本文主要介绍Struts2+Spring3+Mybatis3开发环境搭建Struts和Spring不过多介绍。MyBatis 是支持普通 SQL 查询,存储过程和高级映射的优秀持久层框架。MyBatis 消除了几乎所有的 JDBC 代码和参数的手工设置以及结果集的检索。MyBatis 使用简单的 XML 或注解用于配置和原始映射,将接口和 Java 的 POJOs(Plan Old Java Objects,普通的 Java 对象)映射成数据库中的记录。环境:Struts-2.3.14Spring-3.2.1MyBatis-3.2.2在apache-tomcat-7.0.39下测试通过Proj 阅读全文
摘要:
0、安装JDK1.71、下载jboss-5.1.0.GA,解压jboss到D:\jboss-5.1.0.GA,bin/run来启动jboss,打开http://localhost:8080/web-console/测试是否安装成功2、下载apache-activemq-5.7.0,解压activemq到D:\apache-activemq-5.7.0,bin\activemq.bat启动ActiveMQ,打开http://localhost:8161/admin/测试是否安装成功3、下载ActiveMQ的rar资源组件包(老版本的ActiveMQ在ActiveMQ压缩包中就有,新版本的压缩包中 阅读全文
摘要:
一、Jkconnector安装和配置,并整合tomcat集群1、下载我选择的是jakarta-tomcat-connectors-1.2.15-src.tar.gz何为Jkconnector? Tomcat提供了专门的JK插件来负责Tomcat和HTTP服务器的通信。把JK插件安置在对方的HTTP服务器上。当HTTP服务器接收到客 户请求时,它会通过JK插件来过滤URL,JK插件根据预先配置好的URL映射信息,决定是否要把客户请求转发给Tomcat服务器处理。2、安装(1)将jakarta-tomcat-connectors-1.2.15-src.tar.gz包解压到/usr/local目录下 阅读全文
摘要:
一、Linux下tomcat安装和配置1、从www.apache.org网站中下载tomcat的Linux版本tar.gz(pgp,md5)2、将该文件通过ftp上传到Linux中如果不会上传,请参考第二节对于tomcat而言,文件很有可能是apachxxx.tar.gz的文件,对于该文件而言需要进行两次解压,首先通过gzip解压,使用gzip –d apachexx.tar.gz[-d(decompress)表示解压],解压之后会得到一个apachxx.tar的文件,之后使用tar进行tar文件的解压。使用tar –xvf apachxx.tar[-x(extract)表示解压缩,-v(ve 阅读全文