自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

黄刚的专栏

关注WEB服务器 网络框架 分布式存储 计算 协调服务器 中间件

  • 博客(253)
  • 资源 (15)
  • 收藏
  • 关注

转载 Web 应用程序安全设计指南

本页内容 本模块内容 目标 适用范围

2007-06-14 16:21:00 2267

转载 JSP字符集编码

首先,说说JSP/Servlet中的几个编码的作用。在JSP/Servlet 中主要有以下几个地方可以设置编码,pageEncoding="UTF-8"、contentType="text/html;charset=UTF -8"、request.setCharacterEncoding("UTF-8")和response.setCharacterEncoding ("UTF-8"),其中前两

2007-06-12 16:12:00 1954

原创 自动化单元测试

 自动化单元测试中,对数据库应用的测试个人认为是比较困难一点的,网上看到一位网友的blog,其中谈到了如何在单元测试中保持数据库环境的清洁,他的办法很好,那就是在测试代码中引入事务处理,这样的话,测试结束将事务回滚而不是提交就可以很简单的保持数据库的清洁,真的不错,呵呵。不过我想不明白的一个问题就是:如果我本身的数据库访问代码中就已经包含了事务处理的代码,那么如果在测试代码中再引入事务的话,是不是

2007-06-05 14:58:00 1108

原创 保持业务数据同步

平时数据库处理时,总要接触关于数据同步修改的问题,有时候我们需要在业务处理时保证业务数据同步(一般这种情况都包含统计字段,也就是说需要根据前面的值算出后面的值的字段),例如,两个人同时查询出1条记录后,先后对其加1,保存入数据库中,这样就可能造成保存问题,因此,需要对该数据进行同步。这里有3种方法可以采用:1.增加一个版本字段,查询时得到该字段,修改后增加1,以后其他的修改需要进行比较,如果不

2007-05-18 17:21:00 1649

原创 要成为一个成熟的软件工程师不容易啊

        做了几个项目,有一个深深的体会,靠看书学习得来的很多设计经验到真正要用在实际项目中的时候就会觉得困难重重,看别人的东西热血沸腾,跃跃欲试,总是以为自己理解了别人的精髓,以后可以写出同样优秀的代码来,结果却令人沮丧,很多时候是拿到具体项目模块或升级单的时候,总觉得以前学的设计的东西好像不能使用,写的代码依旧那么凌乱,想想方法应该按照单独的功能划分,结果实现出来了就是一个大方法,什么鸟

2007-05-18 10:04:00 1197 2

原创 java 异常

public class Inbox { private static Integer tt=1; private static StringBuffer t(){    StringBuffer i=new StringBuffer("123");   try{    if(true)     throw new IOException("");       }catch(IOException

2007-05-16 20:52:00 1101 1

原创 java 位运算

移位运算一般用来取某几个指定位上的值,或快速实现乘以或除以2^n的运算。 比如260>>2,就是把00111100变成了00001111,60变成了15,相当于除以4。 8>>>1,8的二进制是00001000,符号位即最高位是0,所以用0填充,00001000变成00000001,得到1,相当于除以8。 1.负数的位运算是对负数补码进行操作。2.如果位移位数超过32,那么将会对位移位数取32

2007-05-08 18:29:00 1180

转载 java学习笔记

1 Java起源2 Java语言概述 1.面向对象编程的3个原则:封装(encapsulation)、继承(inheritance)、多态性(polymorephism)封装:将代码及其处理的数据捆绑在一起的一种机制;继承:一个对象获得另一个对象的属性的过程;多态性:一个接口,多种方法。 2.System.out.println(“dfjdfjdf”);Syst

2007-05-08 17:37:00 1062

原创 设计模式区别(一)

最近一段时间一直在学习设计模式,我有一个感受就是:接触头几个设计模式时感觉似乎就那么一回事,好像没有什么可学习的,因为理解起来很简单,也很容易记忆,在例子的带动下似乎也有那么一点意思了,好像自己懂了。慢慢地,随着学习的深入,接触到了各种各样的设计模式,前面那种轻松的劲儿就没了,越学越迷糊,感觉很多模式好像都是类似的,自己也分不清和前面学的模式的区别是什么了。再后来,经过对这23种基本的设计模式仔细

2007-05-08 15:36:00 3398 3

转载 什么是极限编程?什么是借口编程?什么是敏捷开发?

ExtremeProgramming(极限编程,简称XP)是由KentBeck在1996年提出的。KentBeck在九十年代初期与WardCunningham共事时,就一直共同探索着新的软件开发方法,希望能使软件开发更加简单而有效。Kent仔细地观察和分析了各种简化软件开发的前提条件、可能行以及面临的困难。1996年三月,Kent终于在为DaimlerChrysler所做的一个项目中引入了新的软件

2007-04-25 14:01:00 4099 2

转载 使用commons-dbutils进行JDBC项目开发

JDBC码是Java译码的一个部分,它给已写的编码带来了数量惊人的重复。另外,JDBC码几乎会经常性的带来一些低级错误。写出好的JDBC编码并不难,但是很痛苦。DbUtils组件是一个精密而简单的组件,它并不做什么复杂的事而仅仅只是使很多的JDBC任务对开发者来说变得稍容易一点。尽管这时候很多持久框架和包都可以用来使数据持久变得更容易,然而JDBC仍然是大多数Java和Java2企业版(J2EE)

2007-04-23 14:38:00 2386

转载 学习Java6(五) 图片格式的转换

 1 import java.awt.image.BufferedImage; 2 import java.io.File; 3 import java.io.IOException; 4 import javax.imageio.ImageIO; 5  6 public class ImageIOTest { 7     public static void main(String args[]

2007-04-20 09:53:00 1061

原创 利用java反射机制进行对象操作

 我们经常使用COMMONS-BEANUTILS包来进行bean的操作,例如从map到bean获从bean到map的映射,那么实现的原理是什么呢,下面举个简单的操作的例子;首先,我建立一个beanpublic class Bean {private String test1;private String getTest1() {return test1;}private void setTest1

2007-04-19 16:13:00 2820 2

转载 设计模式,7种构造型模式举例

 在遥远的过去,有这么一个与世无争的小村子,村里有一个村长(A)和很多的村民(Bs). 围绕着这个小村子,发生了无数的可歌可泣的故事.当然,和其他的故事一样,村子之外有一个可恶的皇帝(E).   1)       皇帝要让所有的村民交租子,他要经历下面的流程: a)         他首先跑到村民b1那里收租子,村民b1的家里只有门,他就从门进入。 b)        

2007-04-17 11:47:00 2011 2

转载 设计模式:5种创建模式举例

为了加强对这五种创建模式的理解,我就拿电脑生产做为例子。 一个电脑包含很多组件:CPU, Disk, Monitor, keyBoard, Mouse。当然,首先我们有5种Factory: CPUFactory, DiskFactory, MonitorFactory, KeyBoardFactory, MouseFactory。这里采用的就是Factory模式,例如CPUFactory可以有

2007-04-17 11:12:00 2095

转载 设计模式:工厂和原型(清晰明了的对比)

1:工厂(Factory Method) 首先,工厂这个名字取得很好,就像前面说的,创建型模式的意义在于把生成一个变量从手工作坊(new,delete)的方式变化到工业化的模式,那么这里的工业化模式最典型的就是工厂(Factory Method)。工厂自己也是一个类,也会生成实例,工厂的功能就是为了创建另外一些变量。举例子,我们有奔驰车,宝马车,马拉车等等。现在我们要为他们生成变量,手工作

2007-04-17 11:07:00 3570 1

转载 设计模式:Abstract Factory和Builder(比较区别,个人认为讲得很明白)

如果说 Factory和Prototype是同一个层次的话,那么Abstract Factory和Builder就是更高一级的层次。 1 Abstact Factory   在上面的Factory类型中,我们发现如果种类变了,我们还是要修改我们的代码: Factory = new 宝马工厂。 这样的代码可能出现在很多的地方,改起来并不是很方面。那么怎么办呢? 我们能不能把修改集中在

2007-04-17 10:59:00 5742

转载 设计模式之bridge(桥)模式

Bridge桥接模式是一种结构型模式,它主要应对的是:由于类型的固有罗辑,使得类型具有两个或两个以上的纬度变化。也就是要求抽象不应依赖于实现细节,实现细节应依赖于抽象。       《设计模式》中说到将抽象部分与实现部分分离,使他们可以独立的变化。       举个例子更清楚些,好像我们平时玩的游戏中有PS版的,但是不是大家都有PS。这时我们等一段时间,一般会出PC版的或其他版本。由于支持

2007-04-10 11:34:00 1549

转载 tomcat部署web應用時涉及到的基本概念

tomcat 的根目錄下有幾個文件夾,他們的作用如下:bin目錄 存放启动和关闭tomcat脚本 conf 目錄 包含不同的配置文件,server.xml(Tomcat的主要配置文件)和web.xmlwork 目錄 存放jsp编译后产生的class文件 webapp目錄 存放应用程序示例,以后你要部署的应用程序也要放到此目录 logs 目錄 存放日志文件 lib/japser/common : 这

2007-04-09 16:21:00 1350

转载 服务器端图形处理

Java最初是以Applet等客户端图形处理为技术起点的,而本节讨论的是如何在Servlet/JSP中实现图形处理。在Jive中,图片可以用来显示用户的头像,用户在上传自己头像图片时,该图片的大小可能不一,但是由于版面原因,显示的头像图片又有大小限制,那么就需要在用户上传图片时对图片大小做一个检查。如果超过规定大小,就进行一定的缩放处理。缩放处理有两种方式:是在HTML显示时,使用imag

2007-04-05 10:33:00 1949

转载 设计模式之Facade(外观)模式

设计模式之Facade(外观 总管 Manager)板桥里人 http://www.jdon.com 2002/4/6/(转载请保留)模式实战书籍《Java实用系统开发指南》Facade模式的定义: 为子系统中的一组接口提供一个一致的界面.Facade一个典型应用就是数据库JDBC的应用,如下例对数据库的操作:

2007-04-04 11:41:00 1408

原创 使用xdoclet辅助Hibernate开发提高工作效率

 做Hibernate应用的开发,肯定会设计到pojo的映射文件的编写,当设计到大量的pojo时,维护映射文件变成了一件相当困难的事情,因为要保持pojo和映射文件的同步,很可能就会出错. 如果采用xdoclet那么就可以很方便的保持它们之间的同步,进一步提高工作效率.   这里举一个简单的使用xdoclet生成映射文件的例子:  首先需要使用的包:1.xdoclet-1.2.3.ja

2007-04-03 16:25:00 1303

转载 二叉树

二叉树Binary Tree二叉树的定义二叉树是一类非常重要的树形结构,它可以递归地定义如下:二叉树T是有限个结点的集合,它或者是空集,或者由一个根结点u以及分别称为左子树和右子树的两棵互不相交的二叉树u(1)和u(2)组成。若用n,n1和n2分别表示T,u(1)和u(2)的结点数,则有n=1+n1+n2 。u(1)和u(2)有时分别称为T的第一和第二子树。因此,二叉树

2007-04-03 09:51:00 5790 5

转载 commons-beanutils包

 有关动态bean的一些用法,涉及到的类如下: 1、DynaBean是一个接口,它的实现类有BasicDynaBean、LazyDynaBean、ResultSetIterator、WrapDyna­Bean 2、DynaClass,也是接口,它的实现类有BasicDynaClass、WrapDynaClass等 3、DynaProperty,用来设置动态bean的属性 4、Propert

2007-04-02 16:44:00 1284

原创 commons-lang包中我们常用的类的作用

commons-lang包中对我们有用的类主要有:1.StringUtils 该类主要提供对字符串的操作,对null是安全的,主要提供了字符串查找,替换,分割,去空白,去掉非法字符等等操作2.ObjectUtils 主要是对null进行安全处理,可以设置为null时的默认返回值,比较相等时是调用对象的equals方法,因此需要对对象进行方法进行覆盖3.SystemUtils 主要获取一

2007-04-02 16:26:00 1811

原创 截获POST或GET请求提交的所有参数

这里截获POST或GET请求提交的所有请求参数,并组成查询串返回 /** *//**   *   * 该方法用于将request中参数取出组成查询串后返回   *   * @param request   *            HttpServletRequest   * @return String 返回key1=value1&key2=value形式的查询串   */  publi

2007-04-02 12:31:00 4890

原创 通用的 数组到数组强制转换 的工具函数

 平时做JAVA总是会遇到强制转换的时候,一般单个对象强制转换很方便,例如B b=null; A  a=(A)b; 但是, B[] b=null;  A[] a=(A[])b  却会导致异常发生,为了解决这个问题,我们不得不对数组中每个元素单独进行强制转换, for(int i=0;i   a[i]=(A)b[i];如果只有这么两种类型进行转换也好,要是还有C类型到D类型等等很

2007-04-01 18:47:00 2330

转载 排序算法

排序算法来自 维客Jump to: navigation, search 排序算法 O(n²)或更坏 冒泡排序 插入排序

2007-04-01 11:58:00 1979

原创 String(+) vs StringBuffer(append)

 以前一直以为append比+快,今天上网查了资料才发现:这种说法是不全面的.正确的说法应该是:  1.在运行期做字符串连接,那么append 显然比+快很多 2.在编译期就可以做连接的话,那么使用+要比append快.例子:String temp="nnnnnnn"+"jjjjjj"+"jjjjj";(1)StringBuffer t=new StringBuffer()

2007-03-30 19:43:00 3815 2

原创 ORACLE数据库触发器

ORACLE 触发器其实是PL/SQL块,它类似于存储过程和函数,不过有一点不同的是,触发器是隐式调用的,并不能接收参数.    ORACLE触发器有三种类型,分别是:DML触发器, 替代触发器和系统触发器. 下面对这三种类型一一进行讲述 1.DML触发器  顾名思义,DML触发器是由DML语句触发的.例如数据库的INSERT/UPDATE/DELETE操作都可以触发该类型的触发器. 它们

2007-03-24 15:53:00 1900

原创 一种结合混沌密码理论的彩色图象水印算法

本文是本人毕业时发表的论文.原文地址:http://www.ahcit.com/lanmuyd.asp?id=1972  摘  要  文章提出一种集混沌加密技术,小波变换,扩频技术为一体的彩色图像水印算法。该算法先将水印信息通过混沌序列加密,再进行扩频调制弱化水印信息,然后在彩色载体图像绿色分量上进行小波变换,利用人类视觉模型(HVS)特性,在低频系数上嵌入处理后的水印信息。实验结果和攻击

2007-03-23 13:19:00 4240 4

原创 缺乏足够支撑的项目注定了要失败

 今天是星期四,本来说这一周我们的项目就会结束,今天又听说可能又需要延期一周,听了感觉浑身都不自在,我们项目都延期了好几次了,好不容易盼到快结束的日子,现在又出来这种情况,真打击士气啊.  同项目组的一个同事在最后关头被老大调到其他部门去了,他的工作全部交给我和另一个同事来完成.说实话,我们基本上是从头再来把他的东西做一遍,因为他很多基本功能没有完成,加上代码比较凌乱,读起来都费力,现在我们都

2007-03-22 12:51:00 1543

原创 快捷开发工具^_^

在软件开发过程中,如果能够适当的借助一些开源工具来帮助完成项目,往往能达到事办功倍的效果.这里我所指的工具不仅仅是指开发工具,还包括很多有用的工具类和方法等等.这些开源的东西不论作为工具或者学习都是非常好的,一句话,能够假借一切可以用的东西来为自己做事的人才是高手,永远不要重复发明轮子. 本人在这里总结了一些工具的下载地址,持续更新中:1.JSON  这里可以下载包括JS和JAVA各种版本的代

2007-03-20 17:33:00 928 1

转载 使用J2SE API读取Properties文件的六种方法

1。使用java.util.Properties类的load()方法示例: InputStream in = lnew BufferedInputStream(new FileInputStream(name));       Properties p = new Properties();       p.load(in);2。使用java.util.ResourceBundle类的getB

2007-03-18 17:08:00 1311

转载 hibernate要点

原文:http://www.donews.net/dyhcn/ 1.两种配置文件:   A.hibernate.cfg.xml   和   B.hibernate.properties   A中可含映射文件的配置,而B中hard codes加映射文件。  A。Configuration config=new Configuration().config();   B. Configur

2007-03-18 17:06:00 925

转载 一篇关于web.xml配置的详细说明(三)

  m>...2) 几乎总是分配一个明确的URL模式。对servlet,一般相应地使用以http://host/webAppPrefix/servlet/ 开始的缺省URL。只需记住,使用注册名而不是原名称即可。这对于JSP页面在技术上也是合法的。例如,在上面给出的例子中,可用URL http://host/webAppPrefix/servlet/PageName 访问RealPage.jsp的

2007-03-18 16:44:00 1040

转载 一篇关于web.xml配置的详细说明(二)

程序清单5-3 TestPage.jspJSP Test PageURI: 程序清单5-4 web.xml(说明JSP页命名的摘录)PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN""http://java.sun.com/dtd/web-app_2_3.dtd">PageName/TestPage.jsp Pag

2007-03-18 16:42:00 1050

转载 一篇关于web.xml配置的详细说明(一)

这篇是关于JAVA中web.xml的配置说明说书,感觉对学习有所帮助,现转载如下:1 定义头和根元素部署描述符文件就像所有XML文件一样,必须以一个XML头开始。这个头声明可以使用的XML版本并给出文件的字符编码。DOCYTPE声明必须立即出现在此头之后。这个声明告诉服务器适用的servlet规范的版本(如2.2或2.3)并指定管理此文件其余部分内容的语法的DTD(Document Typ

2007-03-18 16:40:00 1107

转载 command模式原理

     在现实的情况中,有一个实例能非常贴切的描述了Command模式,这就是皇帝和士兵的关系。皇帝作为调用者,士兵是接收者,试想如果皇帝要下达一个命令给士兵,难道他直接跑到这个士兵的前面向他交代命令的细节,然后,士兵领旨执行吗?对于皇帝来说,这是不可能的,因为对皇帝来说,他只想完成某个任务,而谁去帮他完成是无关重要的,所以皇帝就有一种东西叫做圣旨,他只需要下一道圣旨,那谁领旨就与他无关了。在C

2007-03-18 16:35:00 1232

原创 SQLSERVER,ORACLE,MYSQL高效分页查询

如果查询结果需要分页,从效率上讲,下面的效率应该比较高(粉红色表示需要根据实际情况填充的地方)三类数据库中进行分页查询的高效率方法(目前来看):Oracle:   SELECT * FROM (                     SELECT MY_TABLE.*,ROWNUM AS MY_ROWNUM FROM (                  /** 括号里写实际的需要查询的SQ

2007-03-18 15:10:00 4433 4

sna session

sna session实现方案实例,稍微修改下即可用于产品

2010-09-14

tomcat performance tuning 性能调整

tomcat 性能调整PPT,讲得比较好,英文版,英文比较简单,都能读懂

2009-02-26

搜索引擎-原理技术与系统

搜索引擎 原理 技术 系统,全书,讲得比较还可以,大家可以参考一下,不要只停留在用,还要明白其原理才是技术人员生存之道

2008-11-24

JNative(1.3.2) JNI工具包源码

JNative JNI工具包源码 ,非常适用的工具包

2008-08-08

JNative JNI工具包

java native调用开源工具包,非常适用。

2008-08-08

Ruby on Rails Web应用开发源码

很不错哦,非常好的学习资料

2008-04-16

sql优化part1

非常好的sql优化经验2

2008-04-09

sql优化part2

是关于sql 优化的一些非常有价值的经验讲解,值得读

2008-04-09

ibatis 开发指南.pdf

非常好的书,全面得很

2008-03-13

spring2.0-reference_final中文.pdf

非常好的参考手册,非常全面

2008-03-13

Struts in Action 中文版.pdf

好书啊,不下可惜了,嘿嘿

2008-03-13

webwork2开发指南中文.pdf

好东东哦 和struts2差不多的

2008-03-13

企业应用架构模式(中文版).pdf

非常经典的书籍哦,呵呵

2008-03-13

通用分页组件

1)该分页组件不依赖任何底层数据库实现,可以根据需要扩展子类进行动态替换;2)同时也不提供页面如何显示上页,下页等;内部提供了源代码实现,以及DEMO应用,实现分页非常简单;<br/>需要做的工作有三个地方<br/>1.继承实现分页的抽象类AbstractPage 的两个抽象方法;<br/>2.调用WebPageUtils.doAction方法传入参数即可<br/>3.直接获取需要满足条件的记录<br/><br/><br/>下面举了一个例子来说明使用方法:<br/><br/>package org.hgg.hq.test;<br/><br/>import java.util.ArrayList;<br/>import java.util.List;<br/><br/>import javax.servlet.http.HttpServletRequest;<br/>import javax.servlet.http.HttpServletRequestWrapper;<br/><br/><br/>import org.hqq.hq.impl.AbstractPage;<br/>import org.hqq.hq.impl.ActionTypes;<br/>import org.hqq.hq.impl.WebPageUtils;<br/><br/><br/>public class DemoPage extends AbstractPage {<br/>//根据要求返回从startRow开始的rowCount条记录,可以使用其他组件来实现或者 JDBC实现都可以<br/>protected List acPageData(int startRow, int rowCount) {<br/>List data=new ArrayList();<br/>//4*2四行二列<br/>String[][] rows={{"1","A"},{"2","B"},{"3","C"},{"4","D"}};<br/>for(int i=1;i<=rowCount&&i<=acTotalRows();i++){<br/>data.add(rows[startRow++]);<br/>}<br/>return data;<br/>}<br/>//返回满足条件的总记录条数<br/>protected int acTotalRows() {<br/><br/>return 4;<br/>}<br/><br/>public static void main(String[] args) {<br/><br/>//1.0得到一个实现的实例<br/>DemoPage page=new DemoPage();<br/>//2.0如果有必要,设置每页显示大小,这里设置每页显示3条记录<br/>page.setPageSize(3);<br/>//3.0 根据需要进行必要设置,这里是显示第2页数据<br/>//根据情况,该方法后面两个参数可以从request中获取<br/>WebPageUtils.doAction(page, ActionTypes.GO_SPECIAL_PAGE,2);<br/>//4.0获取当前页数据<br/>List data=page.getCurrentPageData();<br/><br/>for(Object t:data){<br/>System.out.println(((String[])t)[0]+" : "+((String[])t)[1]);<br/>}<br/><br/>}<br/><br/>}<br/><br/>如果是WEB页面上的分页可以直接使用<br/>List data=WebPageUtils.acPageData(request,DemoPage.class);<br/>就可以得到数据了,其中request中存放了ActionTypes中定义的各个动作;<br/>例如<br/><\% String first= request.getContextPath()+"/fwgl/fycx.do?"+WebPageUtils.ACTION_TYPE+"="+ActionTypes.GO_FIRST_PAGE;<br/>String next= request.getContextPath()+"/fwgl/fycx.do?"+WebPageUtils.ACTION_TYPE+"="+ActionTypes.GO_NEXT_PAGE;<br/><br/>%\><br/>\< \a href="javascript:window.location.href='<\%=first%\>'" class="List_operatelink"\>首页\<br/>\<\a href="javascript:window.location.href='<\%=next%\>'" class="List_operatelink"\>下页\<br/><br/><br/>页面上的显示实现不用做任何分页逻辑,只需简单定义 首页 上页 下页 到 页 即可,他们都在ActionTypes中定义。

2007-05-09

zip 工具包

这个是支持中文嵌套压缩和解压的文章中需要用到的LIB包,该文章如下链接http://blog.csdn.net/lovingprince/archive/2006/12/31/1470887.aspx

2007-04-17

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除