摘要:
Hibernate为什么如此成功?Why This Project Is Successful 这篇文章是Gavin King写的,非常有趣,充分体现了Hibernate的设计理念,我粗略的意译如下: 下面是对Hibernate开发工作的个人想法,正是这些工作使得Hibernate如此迅速的得到广泛的欢迎。 1、飞快的版本发布 保持活跃的开发速度,经常进行版本发布,甚至几天之内就从前一个版本开发到下一个版本。这样是保证软件远离Bug的最好的办法,也可以让用户感到很放心,确信Hibernate的开发十分活跃,另外这样做也有一大好处,就是可以发现哪些功能是用户真正需要的。 2、回归测试 我想现在整 阅读全文
摘要:
Spring的注入方式详解Spring有三个注入方式,type1,type2,type3type1 接口依赖type2 setter/gettertype3 构造方法type2,type3较用常用首先来看一下type2type2 setter/getter(引用注入)例如,存在一个User类和Home类user类里一个userName;一个Home对象的属性.public class User { private String userName; private Home myHome; public Home getMyHome() { return myHome; } public voi 阅读全文
摘要:
五个理由来热爱Spring 1. Spring 提供更好的优势 在河流中,我学会了更多地使用我的腰和背来划桨,因为我的手臂肌肉无法坚持整日在河上划桨。我变得更加高效;我获得了更好的利用率。借助于Spring,我可以使每行代码做更多的事情。借助于Spring,您可以发现很多额外的手段,其中最大的一处是在持久性方面。下面给出一个Hibernate数据访问对象中的方法:public List getReservations( ) { return getHibernateTemplate( ).find("from Reservation");}} 注意您没有看... 阅读全文
摘要:
Spring的MVC模型运行序列分析1)假定你的请求为http://localhost:8080/springapp/index.jsp2)为安全考虑,在index.jsp中将请求redirect到WEB-INF目录下: <c:redirect url="/hello.htm"/>3)在web.xml中,对*.htm的请求都发到org.springframework.web.servlet.DispatcherServlet进行处理: <servlet> <servlet-name>springapp</servlet-name&g 阅读全文
摘要:
深入剖析JSP和Servlet对中文的处理世界上的各地区都有本地的语言。地区差异直接导致了语言环境的差异。在开发一个国际化程序的过程中,处理语言问题就显得很重要了。 这是一个世界范围内都存在的问题,所以,Java提供了世界性的解决方法。本文描述的方法是用于处理中文的,但是,推而广之,对于处理世界上其它国家和地区的语言同样适用。 汉字是双字节的。所谓双字节是指一个双字要占用两个BYTE的位置(即16位),分别称为高位和低位。中国规定的汉字编码为GB2312,这是强制性的,目前几乎所有的能处理中文的应用程序都支持GB2312。GB2312包括了一二级汉字和9区符号,高位从0xa1到0xfe,低位也 阅读全文
摘要:
Web2.0 编程思想:16条法则1、在你开始之前,先定一个简单的目标。无论你是一个Web 2.0应用的创建者还是用户,请清晰的构思你的目标。就像“我需要保存一个书签”或者“我准备帮助人们创建可编辑的、共享的页面”这样的目标,让你保持最基础的需求。很多Web 2.0应用的最初吸引之处就是它的简单,避免并隐藏了那些多余的复杂性。站在创建者的立场,可以想象Google的几乎没有内容的主页,还有del.icio.us的简单的线条。从最终用户的角度来看,与之齐名的就是Diggdot.us所提供的初始化页面。你能够并且希望加入更多功能,但是先做好最开始的。在一个时候只做一个特性,完成一个目标。这听起来很 阅读全文
摘要:
JSF与Struts的异同 Struts和JSF/Tapestry都属于表现层框架,这两种分属不同性质的框架,后者是一种事件驱动型的组件模型,而Struts只是单纯的MVC模式框架,老外总是急吼吼说事件驱动型就比MVC模式框架好,何以见得,我们下面进行详细分析比较一下到底是怎么回事? 首先事件是指从客户端页面(浏览器)由用户操作触发的事件,Struts使用Action来接受浏览器表单提交的事件,这里使用了Command模式,每个继承Action的子类都必须实现一个方法execute。 在Struts中,实际是一个表单Form对应一个Action类(或DispatchAction),换一句话说: 阅读全文
摘要:
Struts 使用要点(概述,Spring与Struts的整合,输入校验与消息显示)1.概述 Struts大家都很熟悉,不再详细介绍,另请请参阅 1. Pragmatic Struts:SpringSide推荐的最新最Pragmatic用法。 2. SpringSide的Struts封装,SpringSide封装的Struts的CRUD Action基类,默认拥有CRUD的方法,大家可以自行扩展,或者这参考其思路重新封装。 1.1 参考书籍《Jakarta Struts Cookbook》2005 O'Reilly,在铁手的博客上有部分中文翻译。 2. Spring与Struts的整合 阅读全文
摘要:
Struts2与Struts1的对比Action 类: • Struts1要求Action类继承一个抽象基类。Struts1的一个普遍问题是使用抽象类编程而不是接口。 • Struts 2 Action类可以实现一个Action接口,也可实现其他接口,使可选和定制的服务成为可能。Struts2提供一个ActionSupport基类去实现 常用的接口。Action接口不是必须的,任何有execute标识的POJO对象都可以用作Struts2的Action对象。 线程模式: • Struts1 Action是单例模式并且必须是线程安全的,因为仅有Action的一个实例来处理所有的请求。单例策略限制 阅读全文
摘要:
结合struts和hibernate谈J2EE架构的数据表示在 struts+ hibernate 这种结构中,是不应该把Hibernate产生的PO直接传递给JSP的,不管他是Iterator,还是List,这是一个设计错误。 我来谈谈在J2EE架构中各层的数据表示方法: Web层的数据表示是FormBean,数据来源于HTML Form POST 业务层的数据表示是VO 持久层的数据表示是PO,其数据来源于数据库,持久层的数据表示例如CMP 在一个规范的J2EE架构中,不同层的数据表示应该被限制在层内,而不应该扩散到其它层,这样可以降低层间的耦合性,提高J2EE架构整体的可维护性和可扩展性 阅读全文