用Stripes做Java Web开发
Stripes是一个以让程序员的web开发简单而高效为准则来设计的基于动作的开源Java web框架。传统的Java web开发着眼于借去耦(Decoupling)来实现其灵活性,但导致多个的配置文件,额外的对象,和其他资源的分散。这些困难造成相当多的程序员的更高的学习时间和低下的效率。其结果是有些Java程序员被一些非Java的框架所吸引去了:Ruby on Rails或者Django。一些Java web框架,如Stripes,正在开始从这些非Java框架中汲取其成功经验:简单而高效的开发。本文将介绍Stripes与其它如Struts之类基于动作的框架的区别和其提供的一些存在于Ruby on R
三种主流WEB架构的开发现状与未来展望
做WEB好几年了,各种语言和技术都稍有涉猎。今天心血来潮,突然想总结一下。其实不论什么技术,什么需求,通常WEB开发就是通过WEB前端管理一个或大或小或独立或分布式的关系型数据库,很多东西都是相通的。这里说的WEB架构,是指WEB应用开发中每种技术独有的资源组织形式(包括文件,数据库,HTTP请求处理等。注意并非OO的开发方式才有架构一说),也许说开发方式更容易让人理解一些。 以下想法主要以PHP实现为示例,但很多体会我想Java,.NET,Ruby开发者应该也很容易理解。最后是我对于刚面世就引起无数人关注的Delphi fo PHP的想法。
BEA交付业界首个混合开发环境BEA Workshop 10.1
全球领先的企业基础架构软件公司BEA系统有限公司日前宣布,推出业界第一个统一的混合开发环境——BEAWorkshop10.1。该产品成功地把最佳的开源和商用软件融入到综合开发环境中,是BEA实现Workspace 360°愿景的重要里程碑。它的推出,不仅表明BEA在执行其混合软件战略方面所取得的持续发展,同时进一步增强了BEA在开发工具市场的领先地位。BEAWorkshop10.1结合了BEAWorkshop for WebLogic和BEA Workshop Studio,旨在提供功能丰富的综合开发环境,有助于让开发人员能把最佳的开源软件和商用软件结合起来,构建具有服务使能的下一代应用——
评估用户输入密码的强度(用Javascript)
密码已经是我们生活工作中必不可少的工具,但一个不安全的密码有又有可能会给我们造成不必要的损失。作为网站设计者,如果我们在网页中能对用户输入的密码进行安全评估,并显示出相应的提示信息,那么对用户设置一个安全的密码将有很大帮助。同时也使得网站更具人性化,更有吸引力. 什么是一个安全的密码呢?本程序按以下的方式进行评估. 1.如果密码少于5位,那么就认为这是一个弱密码. 2.如果密码只由数字、小写字母、大写字母或其它特殊符号当中的一种组成,则认为这是一个弱密码. 3.如果密码由数字、小写字母、大写字母或其它特殊符
详解JAVA数据库基本操作
java 数据库基本操作1、java数据库操作基本流程2、几个常用的重要技巧: 可滚动、更新的记录集 批量更新 事务处理 java数据库操作基本流程:取得数据库连接 - 执行sql语句 - 处理执行结果 - 释放数据库连接 1、取得数据库连接 1)用DriverManager取数据库连接 例子 String className,url,uid,pwd; className = "oracle.jdbc.driver.OracleDriver"; url = "jdbc:oracle:thin:@127.0.0.1:1521:orasvr; uid = "system"; pwd = "manager"; Class.forN
Java开源软件测试工具大汇总
JUnit JUnit是由Erich Gamma 和Kent Beck 编写的一个回归测试框架(regression testing framework)。Junit测试是程序员测试,即所谓白盒测试,因为程序员知道被测试的软件如何(How)完成功能和完成什么样(What)的功能。Junit是一套框架,继承TestCase类,就可以用Junit进行自动测试了。 http://www.junit.org/ Cactus Cactus是一个基于JUnit框架的简单测试框架,用来单元测试服务端Java代码。Cactus框架的主要目标是能够单元测试服务端的使用Servlet对象的Java方法如HttpServletRequest,HttpServletResponse,HttpSession等 h
利用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来编译代码,这种方式需要我们产