摘要: 主要介绍struts2的XML配置方式输入校验,结合实例进行说明。 代码结构: 关键代码: RegistAction.javapackage com.alfred.regist.action; import java.util.Date; import com.opensymphony.xwork2.ActionSupport; public class RegistAction exte... 阅读全文
posted @ 2016-04-01 23:20 临渊启明 阅读(3655) 评论(0) 推荐(0) 编辑
摘要: struts2对用户输入数据的校验方法有两种方式,一种是通过编码的方式,另一种则是通过使用XML配置方式。 主要介绍struts2编码方式的输入校验,结合实例进行说明。 代码结构: 关键代码: RegistAction.javapackage com.alfred.regist.action; import java.text.SimpleDateFormat; import java.uti... 阅读全文
posted @ 2016-04-01 23:20 临渊启明 阅读(529) 评论(0) 推荐(0) 编辑
摘要: JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。 “程序运行时,允许改变程序结构或变量类型,这种语言称为动态语言”。从这个观点看,Perl,Python,Ruby是动态语言,C++,Java,C#不是动态语言。但是JAVA有着一个非常突出的... 阅读全文
posted @ 2016-04-01 23:19 临渊启明 阅读(298) 评论(0) 推荐(0) 编辑
摘要: Log4J是Apache的一个开放源代码的项目。通过使用Log4J,程序员可以控制日志信息输送的目的地,包括控制台,文件,GUI组件和NT事件记录器,也可以控制每一条日志的输出格式,或通过定义每一条日志信息的级别,更加细致地控制日志的生成过程。 一、Log4j的组成 Log4j由三个重要的组成构成:日志记录器(Loggers),输出端(Appenders)和日志格式化器(Layout)。 Appe... 阅读全文
posted @ 2016-04-01 23:18 临渊启明 阅读(494) 评论(0) 推荐(0) 编辑
摘要: log4j可以通过使用配置文件的方式进行配置,步骤如下。 一、定义日志组件logger 每个logger都可以拥有一个或者多个appender,每个appender表示一个日志的输出目的地,比如console或者某个文件。 配置root Logger的语法为: log4j.rootLogger=[priority],appenderName,appenderName,...­ 配置自定义Logg... 阅读全文
posted @ 2016-04-01 23:17 临渊启明 阅读(465) 评论(0) 推荐(0) 编辑
摘要: Bridge定义 : 将抽象和行为划分开来,各自独立,但能动态的结合. 为什么使用? 通常,当一个抽象类或接口有多个具体实现(concrete subclass),这些concrete之间关系可能有以下两种: 1. 这多个具体实现之间恰好是并列的,如前面举例,打桩,有两个concrete class:方形桩和圆形桩;这两个形状上的桩是并列的,没有概念上的重复,那么我们只... 阅读全文
posted @ 2016-04-01 23:07 临渊启明 阅读(299) 评论(0) 推荐(0) 编辑
摘要: 定义: 将两个不兼容的类纠合在一起使用,属于结构型模式,需要有Adaptee(被适配者)和Adaptor(适配器)两个身份. 为何使用? 我们经常碰到要将两个没有关系的类组合在一起使用,第一解决方案是:修改各自类的接口,但是如果我们没有源代码,或者,我们不愿意为了一个应用而修改各自的接口。 怎么办? 使用Adapter,在这两种接口之间创建一个混合接口(混血儿).... 阅读全文
posted @ 2016-04-01 23:07 临渊启明 阅读(300) 评论(0) 推荐(0) 编辑
摘要: Facade的定义: 为子系统中的一组接口提供一个一致的界面. Facade一个典型应用就是数据库JDBC的应用,如下例对数据库的操作: public class DBCompare { Connection conn = null; PreparedStatement prep = null; ResultSet rset = null; try { ... 阅读全文
posted @ 2016-04-01 23:06 临渊启明 阅读(229) 评论(0) 推荐(0) 编辑
摘要: 定义:提供创建对象的接口. 为何使用? 工厂模式是我们最常用的模式了,著名的Jive论坛 ,就大量使用了工厂模式,工厂模式在Java程序系统可以说是随处可见。 为什么工厂模式是如此常用?因为工厂模式就相当于创建实例对象的new,我们经常要根据类Class生成实例对象,如A a=new A() 工厂模式也是用来创建实例对象的,所以以后new时就要多个心眼,是否可以考虑实用工厂模式,虽然这... 阅读全文
posted @ 2016-04-01 23:06 临渊启明 阅读(257) 评论(0) 推荐(0) 编辑
摘要: Flyweight定义: 避免大量拥有相同内容的小类的开销(如耗费内存),使大家共享一个类(元类). 为什么使用? 面向对象语言的原则就是一切都是对象,但是如果真正使用起来,有时对象数可能显得很庞大,比如,字处理软件,如果以每个文字都作为一个对象,几千个字,对象数就是几千,无疑耗费内存,那么我们还是要"求同存异",找出这些对象群的共同点,设计一个元类,封装可以被共享的类,另外,还... 阅读全文
posted @ 2016-04-01 23:06 临渊启明 阅读(175) 评论(0) 推荐(0) 编辑
摘要: Command模式是最让我疑惑的一个模式,我在阅读了很多代码后,才感觉隐约掌握其大概原理,我认为理解设计模式最主要是掌握起原理构造,这样才对自己实际编程有指导作用.Command模式实际上不是个很具体,规定很多的模式,正是这个灵活性,让人有些confuse. Command定义 不少Command模式的代码都是针对图形界面的,它实际就是菜单命令,我们在一个下拉菜单选择一个命令时,然后会执... 阅读全文
posted @ 2016-04-01 23:06 临渊启明 阅读(260) 评论(0) 推荐(0) 编辑
摘要: Chain of Responsibility定义 Chain of Responsibility(CoR) 是用一系列类(classes)试图处理一个请求request,这些类之间是一个松散的耦合,唯一共同点是在他们之间传递request. 也就是说,来了一个请求,A类先处理,如果没有处理,就传递到B类处理,如果没有处理,就传递到C类处理,就这样象一个链条(chain)一样传递下去。 ... 阅读全文
posted @ 2016-04-01 23:06 临渊启明 阅读(164) 评论(0) 推荐(0) 编辑
摘要: Builder模式定义: 将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示. Builder模式是一步一步创建一个复杂的对象,它允许用户可以只通过指定复杂对象的类型和内容就可以构建它们.用户不知道内部的具体构建细节.Builder模式是非常类似抽象工厂模式,细微的区别大概只有在反复使用中才能体会到. 为何使用? 是为了将构建复杂对象的过程和它的部件解耦.... 阅读全文
posted @ 2016-04-01 23:06 临渊启明 阅读(203) 评论(0) 推荐(0) 编辑
摘要: Decorator常被翻译成"装饰",我觉得翻译成"油漆工"更形象点,油漆工(decorator)是用来刷油漆的,那么被刷油漆的对象我们称decoratee.这两种实体在Decorator模式中是必须的. Decorator定义: 动态给一个对象添加一些额外的职责,就象在墙上刷油漆.使用Decorator模式相比用生成子类方式达到功能的扩充显得更为灵活. 为什么使用Decorator?... 阅读全文
posted @ 2016-04-01 23:05 临渊启明 阅读(167) 评论(0) 推荐(0) 编辑
摘要: Composite定义: 将对象以树形结构组织起来,以达成“部分-整体” 的层次结构,使得客户端对单个对象和组合对象的使用具有一致性. Composite比较容易理解,想到Composite就应该想到树形结构图。组合体内这些对象都有共同接口,当组合体一个对象的方法被调用执行时,Composite将遍历(Iterator)整个树形结构,寻找同样包含这个方法的对象并实现调用执行。可以用牵一动... 阅读全文
posted @ 2016-04-01 23:05 临渊启明 阅读(268) 评论(0) 推荐(0) 编辑