自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Kevin的程序人生

我的音乐博客:http://4565665.5sing.com/

  • 博客(164)
  • 收藏
  • 关注

转载 Installshield安装

前言Installshield可以说是最好的做安装程序的商业软件之一,不过因为功能的太过于强大,以至于上手和精通都不是容易的事情,之前都是用Installshield的Project Assistant对付过去的,这次做这个安装程序,为了实现一些功能,必须写代码,国内外现成的资料很少,而且很多都语焉不详,自己反复啃了多次,对比Installshiel自带的help,才明白资料所表达的意思。这个

2012-12-04 08:50:12 14615 4

转载 InstallShield内部库函数 文件和文件夹函数

文件和文件夹函数    文件和文件夹函数提供一个全面的方法来处理文本文件,二进制文件和文件夹。许多函数使用变量TARGETDIR 和SRCDIR作为路径并只接受文件名作为参数。适当时也接受通配符。ChangeDirectory使指定的目录为当前目录。CloseFile关闭一个打开的文件。CopyFile将一个文件从一个文件夹拷贝到另一个。CreateDir创建一

2012-11-28 15:17:07 6034

转载 InstallShield内部库函数全集(中文版)

1  库函数综述InstallShield包含300多个内部库函数,用户可在安装脚本中调用它们来创建程序组,操作文件夹,处理目录,监督安装状态,创建对话框,操作文件及其它更多工作。因为InstallShield脚本编译器已经识别这些库函数名,所以用户在使用它们之前无须说明。为了成功调用一个内部库函数,用户必须知道库函数名称及使用格式。InstallShield 库函数参阅附录D库函数索引。

2012-11-28 15:15:19 2601

转载 InstallShield自定义安装界面

前言:对于一些InstallShield用户或企业,对于安装包界面除了采用默认的安装对话框外,有时可能会需要利用安装界面这个平台进行产品或企业形象宣传,自定义安装对话框。下面将就此需求展示如何在InstallScript,Basic MSI或InstallScript MSI工程中如何自定义安装过程中的对话框。安装对话框类型:安装程序的安装界面分外部对话框和内部对话框两类。外部对话框是

2012-11-28 15:13:41 3260

转载 设计模式之Observer(观察者模式)

<br /> 简单地说,观察者模式定义了一个一对多的依赖关系,让一个或多个观察者对象监察一个主题对象。这样一个主题对象在状态上的变化能够通知所有的依赖于此对象的那些观察者对象,使这些观察者对象能够自动更新。<br /><br />观察者模式的结构<br /><br />  观察者(Observer)模式是对象的行为型模式,又叫做发表-订阅(Publish/Subscribe)模式、模型-视图(Model/View)模式、源-收听者(Source/Listener)模式或从属者(Dependents)模式。<

2010-12-25 14:21:00 569

转载 Eclipse快捷键

1. Ctrl+左键这个是大多数人经常用到的,用来查看变量、方法、类的定义2. Ctrl+O查看一个类的纲要,列出其方法和成员变量。提示 :再多按一次Ctrl+O ,可以列出该类继承的方法和变量。助记 :"O"--->"Outline"--->"纲要"3. Ctrl+T查看一个类的继承关系树,是自顶向下的,再多按一次Ctrl+T, 会换成自底向上的显示结构。提示 :选中一个方法名,按Ctrl+T,可以查看到有这个同名方法的父类、子类、接口。助记 :"T"------->"Tree"----->"层次树"4.

2010-12-21 09:45:00 2209

转载 设计模式之State(状态模式)

<br />一、 State模式定义:<br />允许一个对象在其状态改变时,改变它的行为。看起来对象似乎修改了它的类。<br />二、 模式解说<br />State模式主要解决的是在开发中时常遇到的根据不同的状态需要进行不同的处理操作的问题,而这样的问题,大部分人是采用switch-case语句进行处理的,这样会造成一个问题:分支过多,而且如果加入一个新的状态就需要对原来的代码进行编译。State模式采用了对这些不同的状态进行封装的方式处理这类问题,当状态改变的时候进行处理然后再切换到另一种状态,也就是

2010-12-09 19:59:00 998

转载 设计模式之Factory Method(工厂方法模式)

<br />心类成为一个抽象工厂角色.仅负责具体工厂子类必须实现的接口.这样进一步抽象化的好处是使得工厂方法模式可以使系统在不修改具体工厂角色的情况下引进新的产品.<br />二、 工厂方法模式角色与结构<br />1. 抽象工厂(Creator)角色:是工厂方法模式的核心,与应用程序无关。任何在模式中创建的对象的工厂类必须实现这个接口。 <br />2. 具体工厂(Concrete Creator)角色:这是实现抽象工厂接口的具体工厂类,包含与应用程序密切相关的逻辑,并且受到应用程序调用以创建产品对象。在

2010-12-09 09:56:00 456

转载 设计模式之Simple Factory(简单工厂模式)

<br />工厂模式专门负责将大量有共同接口的类实例化。工厂模式可以动态决定将哪一个类实例化,不必事先知道每次要实例化哪一个类。工厂模式有以下几种形态:<br />简单工厂(Simple Factory)模式 <br />工厂方法(Factory Method)模式 <br />抽象工厂(Abstract Factory)模式 <br />一、 简单工厂(Simple Factory)模式<br />         简单工厂模式是类的创建模式,又叫做静态工厂方法模式。就是由一个工厂类根据传入的参量决定创建

2010-12-09 09:52:00 786

转载 设计模式之Adapter(适配器模式)

<br />GOF《设计模式》一书对Adapter模式是这样描述的:<br />   将一个类的接口转换成客户希望的另外一个接口。Adapter模式使原本由于接口不兼容而不能一起工作的类可以一起工作。<br />    这段话大致是说:我们需要一种方式,为一个功能正确但接口不合的对象创建一个新接口。例如,客户给我们如下需求:<br />1) 为都有“显示”(display)行为的点、线、正方形分别创建类。<br />2) 客户对象不必知道自己到底拥有点、线、还是正方形。它只需知道拥有这些形状中的一个。<br

2010-12-07 17:03:00 427

转载 设计模式之Builder(建造模式)

<br />Builder模式定义:<br />将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示.<br />Builder模式是一步一步创建一个复杂的对象,它允许用户可以只通过指定复杂对象的类型和内容就可以构建它们.用户不知道内部的具体构建细节.Builder模式是非常类似抽象工厂模式,细微的区别大概只有在反复使用中才能体会到.<br />为何使用?<br />是为了将构建复杂对象的过程和它的部件解耦.注意: 是解耦过程和部件.<br />因为一个复杂的对象,不但有很多大量组成部分

2010-11-27 16:31:00 416

转载 二十三种设计模式通俗理解

1、FACTORY?追MM少不了请吃饭了,麦当劳的鸡翅和肯德基的鸡翅都是MM爱吃的东西,虽然口味有所不同,但不管你带MM去麦当劳或肯德基,只管向服务员说“来四个鸡翅”就行了。麦当劳和肯德基就是生产鸡翅的Factory 工厂模式:客户类和工厂类分开。消费者任何时候需要某种产品,只需向工厂请求即可。消费者无须修改就可以接纳新产品。缺点是当产品修改时,工厂类也要做相应的修改。如:如何创建及如何向客户端提供。2、BUILDER?MM最爱听的就是“我爱你”这句话了,见到不同地方的MM,要能够用她们的方言跟她说这句话哦

2010-11-27 15:56:00 695

转载 Spring配置文件加载流程

<br />Spring配置文件是集成了Spring框架的项目的核心,引擎从哪里开始,中间都执行了哪些操作,小谈一下它的执行流程。<br />容器先是加载web.xml<br /> <br />接着是applicationContext.xml在web.xml里的注册<br /> <br />一种方法是加入ContextLoaderServlet这个servlet<br /><context-param> <param-name>contextConfigLocation</param

2010-11-27 11:09:00 5572

转载 Java反射机制介绍

JAVA反射机制    JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。 Java反射机制主要提供了以下功能: 在运行时判断任意一个对象所属的类;在运行时构造任意一个类的对象;在运行时判断任意一个类所具有的成员变量和方法;在运行时调用任意一个对象的方法;生成动态代理。 1. 得到某个对象的属性[java] public Object getProperty

2010-11-27 10:25:00 1583

转载 OGNL, JSTL, STRUTS2标签中符号#,$,%的用法示例

<br />取Session中的值<br /> <br /><c:out value="${sessionScope.user.userId}"></c:out><br>  <br /> <br /><c:out value="${user.userLoginName}"></c:out><br>    <br /> <br /><s:property value="#session.user.userId"/><br>  <br /> <br />${session.user.userId}<br>  <

2010-11-21 12:19:00 590

转载 跨浏览器 解析 XML DOM

<br />大多数浏览器都内建了供读取和操作 XML 的 XML 解析器。<br />解析器把 XML 转换为 JavaScript 可存取的对象。实例<br />W3School 提供的实例独立于浏览器和平台。这些实例可在所有现代浏览器中运行。加载并解析 XML 文件加载并解析 XML 字符串解析 XML<br />所有现代浏览器都内建了用于读取和操作 XML 的 XML 解析器。<br />解析器把 XML 读入内存,并把它转换为可被 JavaScript 访问的 XML DOM 对象。<br />微软

2010-11-14 16:14:00 686

转载 XML 基础之 XML 数据岛简介

自 Microsoft Internet Explorer 5.0 起,Internet Explorer 有一个非标准特性称为 XML 数据岛,它允许使用非标准 HTML 标签 在 HTML 文档中嵌入 XML。Mozilla 不支持 XML 数据岛,将其作为未知的 HTML 标签处理。所以,XML 数据岛只在 IE 浏览器中有效。现在的 web 应用客户端浏览器都要求支持多浏览器,这岂不是给我们出难题吗? 幸好 IE 和 Mozilla 都支持 XML DOM,我们可以使用 JavaScript 结合

2010-11-14 15:18:00 1569 1

转载 深入Struts2拦截器

<br />拦截器是 Struts2的一个重要的组成部分,可以说拦截器是一个勤劳的幕后工作者, Struts2的大部分功能都有拦截器完成了,也是由于拦截器的使用,使 Struts2成为一个非常 Clean的框架。你甚至不要在自己的 Action中写任何代码,一些重要的功能框架已帮你实现,如将请求参数到 Action中属性的传递,系统 Local的设置,参数验证等。 Strus2提供了大量的拦截器的实现,这些拦截器可以满足绝大不部分需求,我们完全可以复用框架提供的拦截器,而我们仅仅需要做的工作就是简单的几行配

2010-11-09 20:35:00 998

转载 STRUTS2.XML详解

<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd" >  <struts>        <!-- include节点是struts2中组件化的方式 可以将每个功能模块独立到一个xml配置文件中 然后用include节点引用 -->      <includefile="struts-de

2010-11-09 20:25:00 451

转载 Struts2源码分析--请求处理

<br />Struts2架构图<br />        请求首先通过Filter chain,Filter主要包括ActionContextCleanUp,它主要清理当前线程的ActionContext和Dispatcher;FilterDispatcher主要通过AcionMapper来决定需要调用哪个Action。        ActionMapper取得了ActionMapping后,在Dispatcher的serviceAction方法里创建ActionProxy,ActionProxy创建A

2010-11-09 10:21:00 887

转载 org.apache.struts2.dispatcher.FilterDispatcher作用

<br />它是Struts2的主要的Filter,负责四个方面的功能:<br />        (1)执行Actions<br />        (2)清除ActionContext<br />        (3)维护静态内容<br />        (4)清除request生命周期内的XWork的interceptors<br />    另注:该过滤器应该过滤所有的请求URL。一般被设置为/*.<br />    具体:<br />        (1)执行Actions<br />     

2010-11-09 09:12:00 10656 2

转载 转一篇有关Java的内存泄露的文章

<br />1 引言<br />     Java的一个重要优点就是通过垃圾收集器GC (Garbage Collection)自动管理内存的回收,程序员不需要通过调用函数来释放内存。因此,很多程序员认为Java 不存在内存泄漏问题,或者认为即使有内存泄漏也不是程序的责任,而是GC 或JVM的问题。其实,这种想法是不正确的,因为Java 也存在内存泄漏,但它的表现与C++不同。如果正在开发的Java 代码要全天24 小时在服务器上运行,则内存漏洞在此处的影响就比在配置实用程序中的影响要大得多,即使最小的漏洞

2010-10-31 16:07:00 745 1

转载 Ant 的 javac标签

任务和javac命令是相似,它编译两种类型的java文件1)没有被编译的java文件2)曾经编译过,但是class文件版本和当前对应的java文件版本不匹配的java文件。 1)javac命令支持的参数: Attributes Description srcdir :必须的,除非嵌套有标签。包含源文件的文件夹 bootclasspath:编译过程中需要导入class文件会被导入 bootclasspathref:编译过程中需要引用的class文件夹目录

2010-10-29 18:36:00 25590 1

转载 JSP 最佳实践: taglib简介

<br />为什么使用taglib?<br />所谓 标记库(tag library),是指由在JSP页面中使用的标记所组成的库。JSP容器推出时带有一个小型的、默认的标记库。而 自定义标记库是人们为了某种特定的用途或者目的,将一些标记放到一起而形成的一种库。在一个团队中协同工作的开发者们可能会为各自的项目创建一些非常特定化的自定义标记库,同时也会创建一个通用自定义标记库,以供当前使用。<br />JSP 标记替代了scriptlet,并缓解了由scriptlet所招致的所有令人头痛的事情。例如,您可以看到

2010-10-18 15:29:00 750

转载 hibernate3中出现 could not initialize proxy - no Session 错误的解决办法以及lazy load的介绍

<br />异常:<br />org.hibernate.LazyInitializationException: could not initialize proxy - no Session<br />at org.hibernate.proxy.AbstractLazyInitializer.initialize(AbstractLazyInitializer.java:57)<br />at org.hibernate.proxy.AbstractLazyInitializer.getImpleme

2010-10-12 16:20:00 718

转载 OpenSessionInView 模式用法探讨

<br />在没有使用Spring提供的Open Session In View情况下,因需要在service(or Dao)层里把session关闭,所以lazy loading 为true的话,要在应用层内把关系集合都初始化,如 company.getEmployees(),否则Hibernate抛session already closed Exception。 <br />   Open Session In View提供了一种简便的方法,较好地解决了lazy loading问题。它有两种配置方式O

2010-10-12 16:20:00 506

转载 产生多于的class$1.class的原因

<br />在java中,如果在一个类中定义了内部类,刚会生成:    super&this.class的文件,如果给某个控件添加了Listener事件,则会生成    super&i.class的文件,其中i为Listener的个数。   <br />例如:下面的程序:   <br />import    javax.swing.*;   <br />import    java.awt.*;   <br />import    java.awt.event.*;   <br /><br /><br />

2010-10-02 16:10:00 8419

转载 Hibernate进行大数据量性能测试

<br />近日为是否在项目中使用Hibernate进行大数据量的性能测试,有一些总结, <br />1) 在处理大数据量时,会有大量的数据缓冲保存在Session的一级缓存中,这缓存大太时会严重显示性能,所以在使用Hibernate处理大数据量的,可以使用session.clear()或者session. Evict(Object) 在处理过程中,清除全部的缓存或者清除某个对象。 <br />2) 对大数据量查询时,慎用list()或者iterator()返回查询结果, <br />       1. 使

2010-09-08 17:53:00 703

原创 JSP中取得Bean的某个属性

<br />String columnName = BeanUtil.getStringValue(def,"columnName");

2010-09-06 15:59:00 599

转载 Ant实践

目录1. Ant是什么?2. 安装Ant3. 运行Ant4. 编写build.xml5. 内置task(internet)6. EAR task(internet)7. WAR task(internet)8. JUnit task(internet)--------------------------------------------------------------------------------1. Ant是什么? -------

2010-08-31 08:46:00 720

转载 tomcat下catalina.out日志文件分割

一、下载所需类包1、 下载log4j 下载1.2以后的版本下载地址:http://logging.apache.org/log4j/1.2/download.html2、 下载tomcat-juli.jar,tomcat-juli-adapters.jar使用LOG4J来接管tomcat6.0.18的日志文件必须要下载两个文件:tomcat-juli.jar,tomcat-juli-adapters.jar。下载地址为:http://www.apache.org/dist/tomcat/

2010-08-11 16:54:00 8480 3

原创 java调用exe文件的方法

<br />Runtime.getRuntime().exec( "D://Install//jdk1.6.0//bin//native2ascii.exe -reverse D://Install//jdk1.6.0//bin//a.properties D://Install//jdk1.6.0//bin//c.txt ");//生成的exe文件的相对路径

2010-08-05 16:55:00 1008

转载 Tomcat下java的虚拟内存调整

<br />把tomcat服务器java最大内存使用量调整为512m,有如下两种方式:<br />  【1】设置环境变量<br />  [root@WWW root]# vi .bash_profile<br />  添加 export JAVA_OPTS="-mx512m -ms128m ",重启tomcat<br />  【2】编辑catalina.sh文件<br />  在tomcat_home/bin/catalina.sh 这个文件里<br />  找到下面:<br />  # ----- Exe

2010-08-05 13:20:00 769

转载 使用cronolog分割tomcat的catalina.out日志文件

<br />一个对日志切分的小工具,其主页在http://cronolog.org/,我们也用它来切分tomcat的日志。<br />进入Tomcat的bin目录,打开catalina.sh文件,找到tomcat启动的相关行,或者你直接查找catalina.out,一般我们修改下面行中的内容(因为我们一般不会在-security条件下运行),<br /> <br />“$_RUNJAVA” $JAVA_OPTS $CATALINA_OPTS / -Djava.endorsed.dirs=”$JAV

2010-08-04 11:27:00 2800

原创 插入数据库表一个集合的数据

<br />insert into PURCHASE_ORDER_EXT (PO_ID,BUSI_NETWORK_ID,ORG_ID) select p.qe_id,p.busi_network_id,p.vendor_id from purchase_order p

2010-07-14 15:40:00 1386

转载 Hibernate面试题

<br />1.在数据库中条件查询速度很慢的时候,如何优化?<br />   1.建索引 <br />   2.减少表之间的关联 <br />   3.优化sql,尽量让sql很快定位数据,不要让sql做全表查询,应该走索引,把数据量大的表排在前面 <br />   4.简化查询字段,没用的字段不要,已经对返回结果的控制,尽量返回少量数据 <br /><br />[2.在hibernate中进行多表查询,每个表中各取几个字段,也就是说查询出来的结果集并没有一个实体类与之对应,如何解决这个问题?<br />解

2010-07-06 11:25:00 392

原创 供应商Map如果没有则查询供应商

if(BusinessUtil.getOrg(po.getVendor().getQeId())==null){ vo.setVendor((SysOrganizationPO)purchaseOrderDAO.getObject(SysOrganizationPO.class, po.getVendor().getQeId())); }else{ vo.setVendor(BusinessUtil.getOrg(po.getVendor().getQeId())); }

2010-06-12 10:14:00 474

原创 左侧Tree的宽度修改

<br />open_content.jsp<br />left.jsp<br />mainFrame.jsp

2010-06-08 11:00:00 641

转载 日志级别的选择:Debug、Info、Warn、Error还是Fatal

软件中总免不了要使用诸如 Log4net, Log4j, Tracer 等东东来写日志,不管用什么,这些东东大多是大同小异的,一般都提供了这样5个日志级别:    × Debug    × Info    × Warn    × Error    × Fatal        一个等级比一个高,但是在具体开发中,关于应该如何选择适应的等级,却没有找到好的文章进行说明。记录一下自己的一些看法,以便日

2010-05-25 19:10:00 2103

原创 Double四舍五入不正确的解决方法

如:1023.305,保留两位小数 FinPayableListingVO po = (FinPayableListingVO)request.getAttribute("po"); BigDecimal totalAmount = new BigDecimal(Double.toString(po.getPlistingTotalAmount()==null?Double.valueOf

2010-05-06 15:26:00 1507

空空如也

空空如也

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

TA关注的人

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