利用HSQLDB 进行Hibernate单元测试
动机 曾经使用许多方法在数据库和目标代码之间传输数据。从手动编码的SQL到JDO,然后再到EJB,我从未找到一种特别喜欢的方法。自从采用测试驱动开发(TDD)作为指导原则以来,这种不满情绪变得更加强烈。 单元测试的障碍应尽可能少。在关系数据库中,障碍的范围从外部依赖(数据库在运行吗?)到保持关系模型和对象模型同步的速度。由于这些原因,保持数据库访问代码与核心对象模型分离且无需涉及真实数据库而进行尽可能多的测试是很重要的。 通常这会导致我们进入下面两种模式之一。第一种是具体化所有访问域对象的数据以及数据
JSP牵手JSF打造完美的Web应用
Java在最近几年逐渐升温,随着Java SE 5和Java SE 6的推出,Java的未来更显得无比辉煌。但以Java为基础的JSP在Java SE 5推出之前却一直抬不起头来,这最重要的原因就是JSP虽然功能十分强大,但最大的优点也是它的最大缺点,功能强大就意味着复杂,尤其是设计前端界面的可视化工具不多,也不够强大。因此,设计JSP页面就变得十分复杂和繁琐... Java在最近几年逐渐升温,随着Java SE 5和Java SE 6的推出,Java的未来更显得无比辉煌。但以Java为基础的JSP在Java SE 5推出之前却一直抬不起头来,这最重要的原因就是JSP虽然功能十分强大,但
椭圆曲线法在微软安全保护CDKey的应用
从Windows95起,Microsoft的产品安装key从原来的10位数字改为25位字符,这一改动,代表着Microsoft告别了简单的校验和,从此投入了椭圆曲线法的怀抱。从密码学的角度来看,这绝对是一个里程碑,因为当时椭圆曲线法仍在研究论证阶段,Microsoft是第一个将之实用以商业产品的厂家。那么在这25个字符里到底有什么呢? 1.Base24 这25个字符实际是114bits的数据用base24进行uucode后的结果,做为安装key,这个base必须绝对避免误认,所以Microsoft选择了以下这24个字符做为uucode的base:bcdfghjkmpqrtvwxy2346789,所以,如果你的安装key 有这
浅谈Acegi配置
Acegi是基于Spring的一个开源的安全认证框架,现在的最新版本是1.04。Acegi的特点就是有很多的过滤器:不过我们也用不到这么多的过滤器,只是可以把它们看作为一个个的模块,在用的时候加上自己用的着的即可,由于认证的流程的方面比较复杂导致它的配置很复杂,如果能摸清它的工作原理还是不太难.下面用比较顺着人思维的流程过一遍 这里只列出常用的过滤器和拦载器 1. 过滤器:HttpSessionContextIntegrationFilter,authenticationProcessingFilter,BasicProcessingFilter,RememberMeProcessingFilter,anonymousProcessingFilter,exce
JSP和JSF双剑合并 打造完美Web应用
Java在最近几年逐渐升温,随着Java SE 5和Java SE 6的推出,Java的未来更显得无比辉煌。但以Java为基础的JSP在Java SE 5推出之前却一直抬不起头来,这最重要的原因就是JSP虽然功能十分强大,但最大的优点也是它的最大缺点,功能强大就意味着复杂,尤其是设计前端界面的可视化工具不多,也不够强大。因此,设计JSP页面就变得十分复杂和繁琐。不过,在Java SE 5推出的同时,Sun为了简化JSP的开发难度,推出了新的JavaServer Faces(简称JSF)规范。从而使JSP走上了康庄大道。 一、什么是JSF JSF和JSP是一对新的搭档。JSP是用于后台的逻
Java的30个基本概念
在我们学习Java的过程中,掌握其中的基本概念对我们的学习无论是J2SE,J2EE,J2ME都是很重要的,J2SE是Java的基础,所以有必要对其中的基本概念做以归纳,以便大家在以后的学习过程中更好的理解java的精髓,在此我总结了30条基本的概念. Java概述: 目前Java主要应用于中间件的开发(middleware)---处理客户机于服务器之间的通信技术,早期的实践证明,Java不适合pc应用程序的 开发,其发展逐渐变成在开发手持设备,互联网信息站,及车载计算机的开发.Java于其他语言所不同的是程序运行时提供了平台的独立性,称许可以在 windows,solaris,linux
Struts标签库详解
Struts提供了五个标签库,即:HTML、Bean、Logic、Template和Nested。 标签库 说明 HTML 标签 用来创建能够和Struts 框架和其他相应的HTML 标签交互的HTML 输入表单 Bean 标签 在访问JavaBeans 及其属性,以及定义一个新的bean 时使用 Logic 标签 管理条件产生的输出和对象集产生的循环 Template 标签 随着Tiles框架包的出现,此标记已开始减少使用 Nested 标签 增强对其他的Struts 标签的嵌套使用的能力 标签的公共特征 使用固定属性名称的Struts 标签: 属性 说明 id 命名自定义标签创建时的脚本变量名。 name 指出关键字值,在该关键字
JavaSE 6基于JSR105的XML签名之实践篇
我们开始分析一个实际的XML签名示例应用程序。 一、 密码学密钥和证书 现在,我们已经准备好我们的XML签名示例应用程序。 让我们首先分析下列XML文档-./etc/invoice.xml:<?XML version="1.0" encoding="UTF-8" standalone="no"?><invoice XMLns="http://www.company.com/accounting"><items> <item> <desc>Applied Cryptography</desc> <type>book</type> <unitprice>44.50</unitprice> <quantity>1</quantity> </item></items><creditcar
保护系统 用数据库加密实现数据的安全
一位著名的信息安全专家曾经说过,信息安全无外乎三个方面。一是数据安全,二是系统安全,也就是时下较为热门的防火墙、入侵检测及VPN等边界安全,三是电子商务的安全。 数据加密、数据库加密的技术现状和未来的走向如何?这一领域的产品化解决方案是否可以满足行业和企业用户的需求? 防火墙不是问题的全部 以防火墙为代表的反入侵网络安全技术不等于信息安全的全部。在绝大多数信息系统中,核心数据和资料是以数据库的方式存储,没有加密的数据库就如同没有上锁的文件柜,对别有用心的人而言,剽窃、篡改易如反掌。因此,数据库的安全问题不容忽视。
支付密码系统系统解决方案
一、背景 帐户分散网络连接方式五、系统运行模式 支付密码的产生和核验是由两个不同的单位进行的,企业产生支付密码,由银行来进行支付密码的核验。因此,在产生和核验算法的应用机制上,企业和银行是不一样的。作为企业,使用支付密码器只能进行支付密码的产生;作为银行,对支付密码只能进行校验。而且,作为支付密码的产生和核验算法,均固化在专用的硬件中(企业方是自有的支付密码器,银行方是校验卡),无法通过软件进行跟踪和修改。这样,保证了银行无法产生客户的支付密码,因此杜绝了银行内部作案的可能。作为企业来说,也无法
10位程序员眼中的2007:寻找软件开发利器
软件开发生命周期包括需求分析、设计、开发、测试、交付部署等各个阶段,以及贯穿在整个开发过程的软件开发项目管理环节,2006年,在每一个阶段都出现了令人眼花缭乱的技术与应用,同时这些技术还将进一步影响2007年的发展,令人充满期待。 建模和开发工具平台 UML在版本升级到2.0以后,原来的UML工具的大哥大Rational从风行到被收购,现在几乎没有了声音。 建模工具没有太显著的变化,倒是开发工具出现了从原来的百花齐放到现在只有少数巨头竞争的局面。其中最耀眼的当属诞生于IBM,后在开源社区得到快速发 展的Eclipse,目前它
MyEclipse下Spring、Hibernate、Struts结合
时下流行的开发模式:Spring+Hibernate+Struts,在这里我介绍一下Spring+Hibernate的结合,加入Struts表示层那是非常简单的事情了。话不多说,让我们现在开始:数据库准备:数据库名称:AT_SMS表名称:admin字段如下:sid bigint 从1开始自动增加,步长为1,单独做表的主键name varchar(50) password varchar(50)开发软件准备:Eclipse 3.1MyEclipse Enterprise Workbench v4.1.1 GAJDK1.4.2Spring1.2[MyEclipse自带的]Hibernate3.0[MyEclipse自带的]步骤:1、设定自己的WorkSpace[D:Eclipse3.1MyWorkspace];2、建立普通Java工程[不是MyE
使用 Spring 更好地处理 Struts 动作----三种整合 Struts 应用程序与 Spring 的方式
Struts Recipes 的合著者 George Franciscus 将介绍另一个重大的 Struts 整合窍门 —— 这次是将 Struts 应用程序导入 Spring 框架。请跟随 George,他将向您展示如何改变 Struts 动作,使得管理 Struts 动作就像管理 Spring beans 那样。结果是一个增强的 web 框架,这个框架可以方便地利用 Spring AOP 的优势。您肯定已经听说过控制反转 (IOC) 设计模式,因为很长一段时间以来一直在流传关于它的信息。如果您在任何功能中使用过 Spring 框架,那么您就知道其原理的作用。在本文中,我利用这一原理把一个 Struts 应用程序注入 Spring 框架
JDK6.0的新特性:使用Compiler API
现在我们可以用JDK6 的Compiler API(JSR 199)去动态编译Java源文件,Compiler API结合反射功能就可以实现动态的产生Java代码并编译执行这些代码,有点动态语言的特征。这个特性对于某些需要用到动态编译的应用程序相当有用, 比如JSP Web Server,当我们手动修改JSP后,是不希望需要重启Web Server才可以看到效果的,这时候我们就可以用Compiler API来实现动态编译JSP文件,当然,现在的JSP Web Server也是支持JSP热部署的,现在的JSP Web Server通过在运行期间通过Runtime.exec或ProcessBuilder来调用javac来编译代码,这种方式需要我们产
关于JSF与Struts的区别
花了几天时间,看了不少资料,加上自已理解,搞了这个小东东...呵呵..不足之处,请朋友们指正哟......大家共同学习吧.... 本人对JSF也太了解的..看了"大灰狼"的视频后..利用的些时间搞了搞...相信有不少还是关心这个技术的..希望能对各位有所帮助 至(TapeStry)国外已经使它,来代替JSP了..国内也有人在研究...这个东西,俺也不清楚..只是这里提道一下,同为表现层的框架.... 下面进入正题:: Struts和JSF/Tapestry都属于表现层框架,这两种分属不同性质的框架,后者是一种事件驱动型的组件模型,
Java开源项目Hibernate快速入门
其实Hibernate本身是个独立的框架,它不需要任何web server或application server的支持。然而,大多数的Hibernate入门介绍都加入了很多非Hibernate的东西,比如: Tomcat, Eclipse, Log4J,Struts, XDoclet, 甚至JBoss。这容易让人产生Hibernate复杂难懂的误解,特别是打击了初学者的积极性。 在这篇文章将不涉及Eclipse, log4j, Struts, Tomcat, XDoclet,和JBoss。本文的目的是演示一下Hibernate的安装过程以及最基本的功能,从而给初学者一个低得不能再低的入门门槛。 下载文件 你需要Java SDK、 Hibernate包、Ant包、和JDBC
JSP 9个内置对象方法使用
1.request对象 客户端的请求信息被封装在request对象中,通过它才能了解到客户的需求,然后做出响应。它是HttpServletRequest类的实例。 1 object getAttribute(String name) 返回指定属性的属性值 [/color]2 Enumeration getAttributeNames() 返回所有可用属性名的枚举 3 String getCharacterEncoding() 返回字符编码方式 4 int getContentLength() 返回请求体的长度(以字节数) 5 String getContentType() 得到请求体的MIME类型 6 ServletInputStream getInputStream() 得到请求体中一行的二进制流 7 String getParameter(String name)
Servlet 详细说明
有关Java Servlets JavaTM servlets是一个不受平台约束的Java小程序,它可以被用来通过多种方法扩充一个Web服务器的功能。你可以把Servlet理解成Server上的applets,它被编译成字节码,这样它就可以被动态地载入并用效地扩展主机的处理能力。 Servlet与applets不同的地方是,它不运行在Web浏览器或其他图形化的用户界面上。Servlet通过servlet引擎运行在Web服务器中,以执行请求和响应,请求、响应的典型范例是HTTP协议。 一个客户端程序,可以是一个Web浏览器,或者是非其他的可以连接上Internet的程序,它会访问Web服务器并发出
数据库设计中使用设计模式
一、引言 现代的企业开发中,越来越多地引入了多层架构设计模式,即使是小型的企业信息系统也逐渐向多层架构发展,以满足系统的可伸缩性以及可维护性。目前企业开发的平台占主导地位的是 J2EE 和 .NET 两大平台,本文并不是去对比两大平台的优缺点,以免引发宗教式的争论,而是在两大平台的基础上探讨如何进行数据库的设计,将设计模式引入到数据库设计中,以期达到良好的、可管理、可伸缩的数据库设计。 传统的数据库设计理论,更加关注的是数据库设计范式,这是数据库设计必须要遵守的规则: 第一范式(1NF):在关系模式R中的每一个具体
2006年Java开发技术回顾与展望
又是一年终岁尾,伴随着技术行业的烟雨风云,我们即将迎来2007年,那么在过去的一年中,我们Java技术开发行业发生了什么呢? Java开源终于在人们的千呼万唤中开源,Hibernate发布3.0版本似乎要在2007年大展拳脚一番,Spring发布了2.0在2006年火热过后,Spring也开始被人讨论,Struts方面有了Webwork的加盟,期待新版本继续扬威,EJB在05年就早早结案年初发布了3.0但是新版本似乎没有改变被动挨打的命运,Ajax在06年没有杰作,相对它的弱点和缺陷被披露无疑,JSP没有人在愿意提及它,好像被放在了一个被人遗忘的角落里,JSF刚刚纳入Java规