- 博客(100)
- 资源 (4)
- 收藏
- 关注
转载 设计模式之模板模式:Template模式
一. 模式概述 摸板方法(Template Method)模式是一种非常简单而又经常使用的设计模式.先创建一个父类,把其中的一个或多个方法留给子类去实现,这实际上就是在使用摸板模式.所谓的摸板模式可以这样来理解:"在一个类中定义一个算法,但将此算法的某些细节留到子类中去实现.换句话说,基类是一个抽象类,那么你就是在使用一种简单形式的摸板模式." 更近一步可以这样来理解:
2013-09-12 14:32:14 764
转载 设计模式之建造者(builder)模式
抽象建造者:Java代码 public interface Builder { protected Product pro = new Product(); void buildPartA(); //创建部件A 比如创建汽车车轮 void buildPartB(); //创建部件B 比如创建汽车方向盘 void bu
2013-09-12 14:28:41 560
转载 原型模式:prototype模式
定义:用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象. Prototype模式允许一个对象再创建另外一个可定制的对象,根本无需知道任何如何创建的细节,工作原理是:通过将一个原型对象传给那个要发动创建的对象,这个要发动创建的对象通过请求原型对象拷贝它们自己来实施创建浅复制 被复制对象的所有变量都含有与原来的对象相同的值,而所有的对其他对象的引用都仍
2013-09-12 14:20:55 835
转载 用TransactionProxyFactoryBean实现spring的声明式事务
spring对声明式事务是通过它的AOP框架实现的。要在spring中使用声明式事务,需用到TransactionProxyFactoryBean,它类似于ProxyFactoryBean,不过其目的是将方法包装在事务上下文中。可以创建自己的ProxyFactoryBean来处理事务,也能达到同样的效果,但TransactionProxyFactoryBean是专门为声明式事务设计的,用它会简
2013-09-12 14:09:59 762
转载 Apache Tomcat开机后台启动
Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。由于有了Sun 的参与和支持,最新的Servlet 和JSP 规范总是能在Tomcat 中得到体现,Tomcat 5 支持最新的Servlet 2.4 和JSP 2.0 规范。因为Tomcat 技术先进、性能
2013-09-12 09:37:01 859
转载 jquery禁用右键、文本选择功能、复制按键的实现
同时适合IE、firefox、谷歌浏览器下适用,经过筛选代码如下:Java代码 //禁用右键、文本选择功能、复制按键 $(document).bind(“contextmenu”,function(){return false;}); $(document).bind(“selectstart”,function(){return false;}); $(docum
2013-09-11 16:20:37 1505 1
转载 JavaScript操作Table
就一个简单的Table,开始我们的钻研 table id="DetailInfo"> tbody> tr> th> 标题1th> th>
2013-09-09 17:34:45 670
转载 原生态 JavaScript 动态创建任意行数和列数的表格简单脚本 (简单Table ,object)
> HTML> head> title>tabletitle> script type="text/javascript" src="table.js">script> style type="text/css"> *{ margin:0px; padding:0px; } tabl
2013-09-09 16:42:12 1744
转载 struts2之防止表单重复提交
struts.xml配置文件xml version="1.0" encoding="UTF-8" ?>DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd"
2013-09-04 11:29:24 480
转载 HTML5 经典小游戏之坦克(二)
上次写到坦克只能发出子弹今天让坦克连续发射子弹 并击中敌人的坦克那么问题来了?如何让子弹飞起来呢?思路:1.动起来 --- 必然会用到定时器2.在那用?按空格发子弹后3.子弹动起来的思路:按钮的时候,先每隔50毫秒改变子弹的参考点的坐标,再刷新画布,每隔100毫秒再刷新一下画布,显示新位置的子弹4.当子弹碰到画布边界的时候,让子弹停止tankGame.html
2013-09-03 12:30:01 847
转载 HTML5 经典小游戏之坦克
粉色坦克为敌人的坦克,橘色坦克为我方坦克画布上的点点是子弹,目前还没有实现发子弹消灭敌方坦克并消失明天会更新并且完善坦克的组成是由三个矩形中间矩形上面是一个圆形,圆形上是一个直线根据不同的方向生成不同的子弹:(1)根据方向----生成不同的子弹对象(2)再根据子弹坦克炮筒方向,画出子弹废话不多说 上源码tankGame2.html
2013-09-03 12:28:01 866
转载 使用apache的ZipOutputStream进行zip文件压缩
需要用java写一个文件压缩的程序,一开始准备用java库中的java.util.zip.ZipOutputStream,但是一搜,发现有中文乱码的问题,所以就用了org.apache.tools.zip.ZipOutputStream。因为用的maven2构建的代码,所以找包的时候方便了很多,下载的最新的ant-1.8.1.jar的包。期间参考了一片文章,但是地址找不到了。废话不多说了,上代
2013-09-03 12:18:50 2707
转载 Oracle 增加修改删除字段
添加字段的语法:alter table tablename add (column datatype [default value][null/not null],….);修改字段的语法:alter table tablename modify (column datatype [default value][null/not null],….);删除字段的语法:alter table t
2013-09-02 21:16:06 566
转载 JNDI全面总结
原理: 在DataSource中事先建立多个数据库连接,保存在数据库连接池中。当程序访问数据库时,只用从连接池中取空闲状态的数据库连接即可,访问结束,销毁资源,数据库连接重新回到连接池,这与每次去直接访问数据库相比,会节省大量时间和资源。 JNDI( Java Naming and Directory Interface ),是Java平台的一个标准扩展,提
2013-09-02 11:03:28 814
转载 从Java视角理解CPU上下文切换(Context Switch)
在高性能编程时,经常接触到多线程. 起初我们的理解是, 多个线程并行地执行总比单个线程要快, 就像多个人一起干活总比一个人干要快. 然而实际情况是, 多线程之间需要竞争IO设备, 或者竞争锁资源,导致往往执行速度还不如单个线程. 在这里有一个经常提及的概念就是: 上下文切换(Context Switch).上下文切换的精确定义可以参考: http://www.linfo.org/con
2013-09-02 10:52:42 709
转载 Java读写Zip文件
下面的分别是写和读zip文件,其中写是递归的,功能完备了。读只是读根目录的,缺少递归。而且没有涉及中文问题: import java.io.*; import java.util.zip.*; public class Zip { static final int BUFFER = 2048; static boolean flag = false
2013-09-02 09:58:00 1093
原创 struts2+json+zTree实现异步加载树
注:zTree是用jQuery实现的树形插件,用其可以快速的实现web树形结构。它可以用在jsp,php,asp等网站开发上,在这主要介绍了如何用struts2+json+zTree实现异步加载树。在实现之前需要导入struts2.1.6 json需要包:commons-beanutils-1.7.0.jar,commons-collections-3.2.1.jar,commons-lang
2013-08-31 13:48:23 2016
转载 C语言获取系统时间的几种方式
C语言中如何获取时间?精度如何? 1 使用time_t time( time_t * timer ) 精确到秒2 使用clock_t clock() 得到的是CPU时间 精确到1/CLOCKS_PER_SEC秒3 计算时间差使用double difftime( time_t timer1, time_t timer0 )4 使用DWORD GetTickCount() 精确到毫秒
2013-08-29 22:29:06 1330
转载 java执行.bat文件
try{String exeBat = "c:/test.bat";Process child = Runtime.getRuntime().exec(exeBat);InputStream in = child.getInputStream();BufferedReader br= new BufferedReader(new InputStreamReader(in));
2013-08-29 17:36:53 726
转载 java打开远程共享文件
Java代码 import jcifs.smb.SmbFile; import jcifs.smb.SmbFileInputStream; public class ReadShareFile { public static void main(String[] args) { try { SmbFile smbF
2013-08-29 16:52:50 1174
转载 一个很基础的tcp客户端和服务器代码。
01#include 02#include 03#include 04#include 05#include 06#include 07
2013-08-24 12:46:38 594
转载 struts文件上传
1. 文件上传的原理:表单元素的enctype属性指定的是表单数据的编码方式,该属性有3个值:1) application/x-www-form-urlencoded:这是默认编码方式,它只处理表单域里的value属性值,采用这种编码方式的表单会将表单域的值处理成URL编码方式。2) multipart/form-data:这种编码方式的表单会以二进制流的方式来处理
2013-08-19 13:48:11 560
原创 数字转换成汉字大写
该算法根据数字和汉字大写的区别和规律获得每个数字的单位量度,将其放在相应的位置:(代码来自《疯狂java讲义》)public class Num2Rmb { private String[] hanArr={"零","壹","贰","叁","肆","伍", "陆","柒","捌","玖"}; //根据数字的位置设置相应的单位量 private String[] unitArr={"
2013-08-19 12:47:41 1234
转载 TreeMap使用红黑二叉树实现
红黑二叉树:a. 根节点是黑色的;b. 红色节点的儿子节点是黑色的;c. 任何一个节点到空节点的所有路径上必包含相同数据的黑色节点;d. 叶子节点的子节点是黑色节点 假设一颗红黑树的黑色节点个数为R,那么这棵树的最短高度为R,最大长度为2R所以h先看插入:第一步,先找到新节点在红黑二叉排序树中的位置,并
2013-08-14 21:11:34 826
转载 Java中HashMap和TreeMap的区别深入理解
首先介绍一下什么是Map。在数组中我们是通过数组下标来对其内容索引的,而在Map中我们通过对象来对对象进行索引,用来索引的对象叫做key,其对应的对象叫做value首先介绍一下什么是Map。在数组中我们是通过数组下标来对其内容索引的,而在Map中我们通过对象来对对象进行索引,用来索引的对象叫做key,其对应的对象叫做value。这就是我们平时说的键值对。HashMap通过hashc
2013-08-14 20:53:35 490
转载 ORACLE函数大全
SQL中的单记录函数1.ASCII返回与指定的字符对应的十进制数;SQL> select ascii('A') A,ascii('a') a,ascii('0') zero,ascii(' ') space from dual; A A ZERO SPACE--------- --------- --------- -------
2013-08-14 16:43:44 441
转载 Oracle中Using用法
1.静态SQLSQL与动态SQLOracle编译PL/SQL程序块分为两个种:其一为前期联编(early binding),即SQL语句在程序编译期间就已经确定,大多数的编译情况属于这种类型;另外一种是后期联编(late binding),即SQL语句只有在运行阶段才能建立,例如当查询条件为用户输入时,那么Oracle的SQL引擎就无法在编译期对该程序语句进行确定,只能在用户输入一定的查询条件
2013-08-14 16:15:41 2491
原创 exists 和not exists 用法详解 和oracle 日期操作
oracle中的exists 和not exists 用法详解有两个简单例子,以说明 “exists”和“in”的效率问题1) select * from T1 where exists(select 1 from T2 whereT1.a=T2.a) ; T1数据量小而T2数据量非常大时,T12) select * from T1 where T1.a in (selec
2013-08-14 15:56:50 1026
转载 Oracle中dual表的用途介绍
dual是一个虚拟表,用来构成select的语法规则,oracle保证dual里面永远只有一条记录。我们可以用它来做很多事情,如下: 1、查看当前用户,可以在 SQL Plus中执行下面语句 select user from dual; 2、用来调用系统函数 select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from dual;--获
2013-08-12 14:59:10 498
转载 Java中的UUID生成全球唯一的ID
GUID是一个128位长的数字,一般用16进制表示。算法的核心思想是结合机器的网卡、当地时间、一个随即数来生成GUID。从理论上讲,如果一台机器每秒产生10000000个GUID,则可以保证(概率意义上)3240年不重复。UUID是1.5中新增的一个类,在java.util下,用它可以产生一个号称全球唯一的IDpackage com.mytest;import java.util.
2013-08-10 22:43:41 3248
转载 Hibernate的体系结构
现在我们知道了一个概念Hibernate Session,只有处于Session管理下的POJO才具有持久化操作能力。当应用程序对于处于Session管理下的POJO实例执行操作时,Hibernate将这种面向对象的操作转换成了持久化操作能力。HIbernate简要的体系结构如下图所示: 通过上图能够发现HIbernate需要一个hibernate.properties文
2013-08-09 17:22:53 801
转载 Oracle 视图(View)
一. 视图的定义 视图(view),也称虚表,不占用物理空间,这个也是相对概念,因为视图本身的定义语句还是要存储在数据字典里的。视图只有逻辑定义。每次使用的时候,只是重新执行SQL. 视图是从一个或多个实际表中获得的,这些表的数据存放在数据库中。那些用于产生视图的表叫做该视图的基表。一个视图也可以从另一个视图中产生。 视图的定义存在数据库中,
2013-08-09 13:27:55 589
转载 ORACLE SEQUENCE用法
在oracle中sequence就是序号,每次取的时候它会自动增加。sequence与表没有关系。 1、Create Sequence 首先要有CREATE SEQUENCE或者CREATE ANY SEQUENCE权限。 创建语句如下: CREATE SEQUENCE seqTestINCREMENT BY 1 -- 每次加几个S
2013-08-09 11:08:02 547
转载 日期工具类,计算周月季度相关值
Java代码 import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; /** *
2013-08-09 09:18:58 1240
转载 struts2+json+zTree实现异步树
1.首先到ztree首页下载最新版本的ztree资源http://www.ztree.me/v3/main.php#_zTreeInfo下载后的东西如下:这几个文件夹中,与开发相关的有js、css两个文件夹。api做的也不错,能方便的查看对外的接口内容,并且有相关的样例代码。2.jsp页面相关代码这里有几个关键点:1)simpleData设置为true,通过该设置使
2013-08-08 09:41:44 1018
转载 Struts2+json+ztree 同步加载
%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> %@include file="/common/jsp/commonHeader.jsp" %> > html> head> base href=""> title>s:text name="dama_inforpartition_
2013-08-08 09:39:42 1202
转载 CGLIB动态代理应用
JDK自从1.3版本开始,就引入了动态代理,JDK的动态代理用起来非常简单,但是它有一个限制,就是使用动态代理的对象必须实现一个或多个接口 。如果想代理没有实现接口的类可以使用CGLIB包。 CGLIB是一个强大的高性能的代码生成包。它被许多AOP的框架(例如Spring AOP)使用,为他们提供方法的interception(拦截)。Hibernate也使用CGLIB来代理单端single
2013-08-07 17:33:31 666
转载 java动态代理
动态代理可以提供对另一个对象的访问,同时隐藏实际对象的具体事实。代理一般会实现它所表示的实际对象的接口。代理可以访问实际对象,但是延迟实现实际对象的部分功能,实际对象实现系统的实际功能,代理对象对客户隐藏了实际对象。客户不知道它是与代理打交道还是与实际对象打交道。为什么使用动态代理?因为动态代理可以对请求进行任何处理.使用它有哪些好处?动态代理可以对请求进行任何处理哪些地方需要动态代理?不允许直接
2013-08-07 17:30:35 472
转载 sql注入攻击详解
一、什么是sql注入呢?所谓SQL注入,就是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令,比如先前的很多影视网站泄露VIP会员密码大多就是通过WEB表单递交查询字符暴出的,这类表单特别容易受到SQL注入式攻击.当应用程序使用输入内容来构造动态sql语句以访问数据库时,会发生sql注入攻击。如果代码使用存储过程,而这些存储过程作
2013-08-07 15:29:33 2699
转载 struts2 拦截器 interceptor
在之前的文章中,我们已经涉及到了拦截器(Interceptor)的概念。downpour 写道拦截器是AOP中的概念,它本身是一段代码,可以通过定义“织入点”,来指定拦截器的代码在“织入点”的前后执行,从而起到拦截的作用。正如上面 Struts2的Reference中讲述的,Struts2的Interceptor,其拦截的对象是Action代码,可以定义在Action代码之前或者之后执
2013-08-07 14:55:44 487
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人