JAVA—咖啡馆

——欢迎访问rogerfan的博客,常来《JAVA——咖啡馆》坐坐,喝杯浓香的咖啡,彼此探讨一下JAVA技术,交流工作经验,分享JAVA带来的快乐!本网站部分转载文章,如果有版权问题请与我联系。

BlogJava 首页 新随笔 联系 聚合 管理
  447 Posts :: 145 Stories :: 368 Comments :: 0 Trackbacks

【开源技术】

开源技术文章
     摘要: 前言

模板消息仅用于公众号向用户发送重要的服务通知,只能用于符合其要求的服务场景中,如信用卡刷卡通知,商品购买成功通知等。不支持广告等营销类消息以及其它所有可能对用户造成骚扰的消息。具体模板消息运营规则请读 模板消息运营规范

关于使用规则,请注意:

1、所有服务号都可以在功能->添加功能插件处看到申请模板消息功能的入口,但只有认证后的服务号才可以申请模板消息的使用权限并获得该权限;
2、需要选择公众账号服务所处的2个行业,每月可更改1次所选行业;
3、在所选择行业的模板库中选用已有的模板进行调用;
4、每个账号可以同时使用15个模板。
5、当前每个账号的模板消息的日调用上限为10万次,单个模板没有特殊限制。【2014年11月18日将接口调用频率从默认的日1万次提升为日10万次,可在MP登录后的开发者中心查看】。当账号粉丝数超过10W/100W/1000W时,模板消息的日调用上限会相应提升,以公众号MP后台开发者中心页面中标明的数字为准。
关于接口文档,请注意:

1、模板消  阅读全文
posted @ 2016-09-23 17:12 rogerfan 阅读(406) | 评论 (0)  编辑

     摘要: 由于柳峰老师的新书还没有出来,网上也没有过多介绍基于Java语言的开发微信公众平台模板消息的例子,因此有了本文。由于个人表达能力和编程能力有限,请多多包涵。本文仅介绍拥有模板消息权限的微信公众账号开发。

本文分为以下两部分:

1.开发模板消息SDK

2.构造模板消息并发送

首先看一下模板消息接口文档:


模版消息
我的模板模板库返回上一层模板库 / 模板消息接口文档
为了保证用户不受到骚扰,在开发者出现需要主动提醒、通知用户时,才允许开发者在公众平台网站中模板消息库中选择模板,选择后获得模板ID,再根据模板ID向用户主动推送提醒、通知消息。



模板消息调用时主要需要模板ID和模板中各参数的赋值内容。请注意:

1.模板中参数内容必须以".DATA"结尾,否则视为保留字;

2.模板保留符号"{{ }}"

  阅读全文
posted @ 2016-09-23 17:02 rogerfan 阅读(895) | 评论 (0)  编辑

     摘要: 注意:以下相关软件是以2015-03-23日能找到的最新的版本为基础提供的教程


一、下载并安装memcached服务器端软件

这个就好比mysql数据库,必须安装mysql服务器端软件。

1、下载服务端memcached软件

32bit:下载 memcached-win32-1.4.4-14.zip(直接下)里面包含6个文件,将解压后的文件夹随便放在什么位置(例如:D:\wamp_win7\bin\memcached-win32-1.4.4-14,我本地使用wamp搭建的服务器)。
memcached-win32-1.4.4-14.zip下载页面:http://blog.couchbase.com/memcached-144-windows-32-bit-binary-now-available

  阅读全文
posted @ 2016-09-21 15:21 rogerfan 阅读(458) | 评论 (0)  编辑

     摘要: 首先,我们明确目标,做Tomcat集群的目的是为了提供更高的负载能力,把访问均摊到不同的服务器上。

直观地来说,就是访问test.localhost.com时,nignx会随机将访问请求分发到tomcat1,tomcat2,为了保持session同步,使用memcached去管理session。

为此我们准备的配置清单是: windows x 1 nginx x 1 memcached x 1 tomcat x 2 mysql x 1  阅读全文
posted @ 2016-09-19 09:53 rogerfan 阅读(374) | 评论 (0)  编辑

     摘要: 注:以下批处理是针对tomcat安装版,或者在windows服务中有tomcat服务的解决方案。

定时重启TOMCAT批处理命令:
@echo off
net stop tomcat6
ping 127.0.0.1 -n 20
net start tomcat6

(注:这里的tomcat6根据tomcat在安装时的服务名确定,如tomcat6.0的服务名为tomcat6,这个名字你可以先启动服务器,之后在任务管理器的进程窗口里查看)

如果要在重启tomcat时候,再删除work下的文件和logs目录下的log文件,批处理命令:  阅读全文
posted @ 2016-09-19 09:36 rogerfan 阅读(482) | 评论 (0)  编辑

     摘要: CDN是什么?


谈到CDN的作用,可以用8年买火车票的经历来形象比喻:


8年前,还没有火车票代售点一说,12306.cn更是无从说起。那时候火车票还只能在火车站的售票大厅购买,而我所住的小县城并不通火车,火车票都要去市里的火车站购买,而从县城到市里,来回就是4个小时车程,简直就是浪费生命。后来就好了,小县城里出现了火车票代售点,可以直接在代售点购买火车,方便了不少,全市人民再也不用在一个点苦逼的排队买票了。


CDN就可以理解为分布在每个县城的火车票代售点,用户在浏览网站的时候,CDN会选择一个离用户最近的CDN边缘节点来响应用户的请求,这样海南移动用户的请求就不会千里迢迢跑到北京电信机房的服务器(假设源站部署在北京电信机房)上了。

CDN的优势很明显:(1)CDN节点解决了跨运营商和跨地域访问的问题,访问延时大大降低;(2)大部分请求在CDN边缘节点完成,CDN起到了分流作用,减轻了源站的负载。
  阅读全文
posted @ 2016-07-07 14:45 rogerfan 阅读(1521) | 评论 (0)  编辑

     摘要: 1. CAS 简介
1.1. What is CAS ?
CAS ( Central Authentication Service ) 是 Yale 大学发起的一个企业级的、开源的项目,旨在为 Web 应用系统提供一种可靠的单点登录解决方法(属于 Web SSO )。

CAS 开始于 2001 年, 并在 2004 年 12 月正式成为 JA-SIG 的一个项目。

1.2. 主要特性
1、 开源的、多协议的 SSO 解决方案; Protocols : Custom Protocol 、 CAS 、 OAuth 、 OpenID 、 RESTful API 、 SAML1.1 、 SAML2.0 等。

2、 支持多种认证机制: Active Directory 、 JAAS 、 JDBC 、 LDAP 、 X.509 Certificates 等;

3、 安全策略:使用票据( Ticket )来实现支持的认证协议;

4、 支持授权:可以决定哪些服  阅读全文
posted @ 2016-06-08 10:04 rogerfan 阅读(375) | 评论 (0)  编辑

     摘要: 一、概述

单点登录(Single Sign On , 简称 SSO )是目前比较流行的服务于企业业务整合的解决方案之一, SSO 使得在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。CAS(Central Authentication Service)是一款不错的针对 Web 应用的单点登录框架,本文介绍了 CAS 的原理、协议、在 Tomcat 中的配置和使用,对于采用 CAS 实现轻量级单点登录解决方案的入门读者具有一定指导作用。



二、CAS介绍

CAS 是 Yale 大学发起的一个开源项目,旨在为 Web 应用系统提供一种可靠的单点登录方法,CAS 在 2004 年 12 月正式成为 JA-SIG 的一个项目(http://www.jasig.org)。CAS 具有以下特点:

1)开源的企业级单点登录解决方案

2)CAS Server 为需要独立部署的 Web 应用

3)CAS Client 支持非常多的客户端(指Web 应用),  阅读全文
posted @ 2016-06-08 10:03 rogerfan 阅读(424) | 评论 (0)  编辑

posted @ 2016-04-22 18:01 rogerfan 阅读(531) | 评论 (0)  编辑

posted @ 2016-04-22 18:00 rogerfan 阅读(778) | 评论 (0)  编辑

posted @ 2016-04-22 17:58 rogerfan 阅读(576) | 评论 (0)  编辑

     摘要: 本文记录nginx+redis+tomcat实现session共享的过程

nginx安装:http://www.blogjava.net/fanyingjie/archive/2016/04/22/430204.html

redis安装:http://www.blogjava.net/fanyingjie/archive/2016/04/22/430203.html

准备两个tomcat,修改相应的端口




名称 IP 端口 tomcat版本 JDK
tomcat1 10.10.49.23 8080 7.0.40 1.7.0_25
tomcat2 10.10.49.15 8081 7.0.40 1.7.0_25
  阅读全文
posted @ 2016-04-22 17:15 rogerfan 阅读(415) | 评论 (0)  编辑

     摘要: 1,安装redis并配置和启动, tomcat也做相就的下载,其他地方都有,可以在其他地方查阅。
2, 获取tomcat依赖包:
Tomcat使用 从https://github.com/xetorthio/jedis/downloads下载jedis作为java的redis客户端,
从https://github.com/jcoleman/tomcat-redis-session-manager/downloads下载tomcat的redis session manager插件
从http://commons.apache.org/proper/commons-pool/download_pool.cgi下载apache的common pool2包,2.2,将这几个jar包拷贝到tomcat7的lib目录下
包有: redis2.8、jedis.jar、common-pool2.2.jar、tomcat-redis-session-manager-1.  阅读全文
posted @ 2016-04-22 17:14 rogerfan 阅读(399) | 评论 (0)  编辑

posted @ 2016-04-22 17:11 rogerfan 阅读(308) | 评论 (0)  编辑

     摘要: 1.下载redis-3.0.3;
2.tar -zxvf redis-3.0.3.tar.gz
3.make
这里可能会报错,tclsh8.5: not found 发现少了tcl 报错
解决方法:下载,安装tcl
#wget http://downloads.sourceforge.net/tcl/tcl8.5.9-src.tar.gz

#cd /tcl8.5.9-src/unix

#./configure

#make

#make install

接着make ,make test 就没报错了
接着进入redis目录下的src目录
src目录下这些文件作用如下
redis-server:Redis服务器的daemon启动程序
  阅读全文
posted @ 2016-04-22 17:10 rogerfan 阅读(329) | 评论 (0)  编辑

     摘要: 1、redis简介
redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hashs(哈希类型)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。在此基础上,redis支持各种不同方式的排序。与memcached一样,为了保证效率,数据都是缓存在内存中。区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。

Redis 是一个高性能的key-value数据库。 redis的出现,很大程度补偿了memcached这类key/value存储的不足,在部分场合可以对关系数据库起到很好的补充作用。它提供了Python,Ruby,Erlang,PHP客户端,使用很方便。
  阅读全文
posted @ 2016-04-22 16:45 rogerfan 阅读(234) | 评论 (0)  编辑

     摘要: 1、技术目标


了解并创建Security框架所需数据表
为项目添加Spring Security框架
掌握Security框架配置
应用Security框架为项目的CRUD操作绑定权限


注意:本文所用项目为"影片管理",参看
http://hotstrong.iteye.com/blog/1156785

2、权限管理需求描述

为系统中的每个操作定义权限,如定义4个权限:
1)超级权限,可以使用所有操作
2)添加影片权限
3)修改影片权限
4)删除影片权限
为系统设置管理员帐号、密码
为系统创建权限组,每个权限组可以配置多个操作权限,如创建2个权限组:
1)"Administrator"权限组,具有超级权限
2)"影片维护"权限组,具有添加影片、修改影片权限
可将管理员加入权限组,管理员登录后具备权限组所对应操作权限
管理员可不属于某权限组,可为管理员直接分配权限  阅读全文
posted @ 2016-03-28 14:01 rogerfan 阅读(460) | 评论 (0)  编辑

     摘要: 一:Git是什么?

  Git是目前世界上最先进的分布式版本控制系统。

  二:SVN与Git的最主要的区别?

  SVN是集中式版本控制系统,版本库是集中放在中央服务器的,而干活的时候,用的都是自己的电脑,所以首先要从中央服务器哪里得到最新的版本,然后干活,干完后,需要把自己做完的活推送到中央服务器。集中式版本控制系统是必须联网才能工作,如果在局域网还可以,带宽够大,速度够快,如果在互联网下,如果网速慢的话,就纳闷了。

  Git是分布式版本控制系统,那么它就没有中央服务器的,每个人的电脑就是一个完整的版本库,这样,工作的时候就不需要联网了,因为版本都是在自己的电脑上。既然每个人的电脑都有一个完整的版本库,那多个人如何协作呢?比如说自己在电脑上改了文件A,其他人也在电脑上改了文件A,这时,你们两之间只需把各自的修改推送给对方,就可以互相看到对方的修改了。  阅读全文
posted @ 2016-03-25 10:18 rogerfan 阅读(259) | 评论 (0)  编辑

     摘要: 以前写了一篇《Myeclipse 2015 stable 1.0 完美破解方法》,现在跟新一下Myeclipse 2015 stable 2.0 破解方法,此方法来源于贴吧的一篇文章:http://tieba.baidu.com/p/3809637196?pn=1 ;在此先感谢一下作者的付出。下面是我在MAC下破解的图文过程(Linux和windows其实大同小异)。破解方法和我写得《Myeclipse 2015 stable 1.0 完美破解方法》基本一样。这里我用作者的思路:[单击图片可查看高清图片,灰色可先忽略当出问题时回过头来在看]

破解包地址: http://pan.baidu.com/s/1c0x0yqs 密码: natw
(myeclipse软件需要从上面网盘链接里下载,近期官网出来的新版本用此破解包不前无法破解)
注册机我拿源码改了一下,屏蔽了ReplaceJarFile,大家破解就手动吧(主要是替换Jar包那里我懒得改了,也没那个时间)
*注意算号器的作者不是本人,我只是修改了一下,顺便膜拜下作者(别问我作者是谁,我不记得了,  阅读全文
posted @ 2016-03-03 15:21 rogerfan 阅读(837) | 评论 (0)  编辑

     摘要: MyEclipse 2015优化速度方案仍然主要有这么几个方面:去除无需加载的模块、取消冗余的配置、去除不必要的检查、关闭更新。

>MyEclipse 2015下载<

第一步: 去除不需要加载的模块

一个系统20%的功能往往能够满足80%的需求,MyEclipse也不例外,我们在大多数时候只需要20%的系统功能,所以可以将一些不使用的模块禁止加载启动。通过Windows- Preferences打开配置窗口,依次选择左侧的General--> Startup and Shutdown,这个时候在右侧就显示出了Eclipse启动时加载的模块,可以根据自己的实际情况去除一些模块。  阅读全文
posted @ 2016-03-03 15:19 rogerfan 阅读(240) | 评论 (0)  编辑

     摘要: 序言
一直以来,报表都是很多项目中一个重要的、不可获取的组成部分。然而其复杂性和专业性又使得程序员不能够也没时间自己设计属于目前手头正在构建的系统的报表模块;即便设计来了又可能由于通用性等原因不能够应用到下一个系统当中,这就导致了报表类库/组件在市场上的火爆。典型的例子就是水晶报表,几乎无处不在。还有一些专门处理中国式报表的组件也陆续出现在软件市场上。然而遗憾的是,他们中的绝大多数都是要收费的--这也无可厚非,毕竟人都是要生存的。所以大多数预算不够充裕的程序员都将目光转向了开源软件,而JasperReport就将是第一个进入他们视线中的佼佼者。
然而代码开源不代表我们就可以大大方方的拿来就用了,人家的文档也是要收费的,所以市面上有关于JasperReport的文档虽然也不少,但大多数都集中在简单应用和介绍基本操作的基础之上。对于复杂的报表设计并不能提供良好的帮助。本文将火力集中在相对复杂的报表设计(不包括图片和超连接等对办公系统或过程没有太大用途的页面元素),交叉表的生成等高级报表设计方案。对于那些基本的操作则留给读者自行体会,相信可以为各位解决一些实际问题。
  阅读全文
posted @ 2013-08-29 10:50 rogerfan 阅读(2296) | 评论 (0)  编辑

     摘要: 1.1 简介
JasperReport是报表的引擎部分,界面设计是用iReport。为什么选择这两个软件呢?因为这两个软件都是开源的,即免费的(虽然某些文档收费,但是磨灭不了我们使用它的理由)。

JasperReport是一个报表制作程序,用户按照它制定的规则编写一个XML文件,然后得到用户需要输出的格式文件。它支持输出的文件格式包括PDF,HTML,XML,XLS,CSV等等。

用JasperReport做报表,可以分为两种方式:

1、 直接利用程序定义一个报表

2、 写一个xml文件来描述这个报表,通常需要借助于iReport

JasperReport做报表时用的都是底层的东西,如线条、静态文本等,底层的好处就是强大、容易控制报表,但缺点就是编写很麻烦。庆幸的是,我们有iReport这个软件,这个软件完全是弥补JasperReport的不足,将底层编写推向可视化,大大的方便了我们。

  阅读全文
posted @ 2013-08-29 10:46 rogerfan 阅读(4088) | 评论 (0)  编辑

     摘要: 安装:
1. 从Oracle网站下载wls1035_oepe111172_win32.exe,约有1G大小。下载地址:http://www.oracle.com/technetwork/middleware/fusion-middleware/downloads/index.html?ssSourceSiteId=ocomen
  阅读全文
posted @ 2013-08-05 15:55 rogerfan 阅读(2387) | 评论 (0)  编辑

     摘要: Tomcat内存设置方法
windows中大家都知道,JAVA程序启动时都会JVM都会分配一个初始内存和最大内存给这个应用程序。这个初始内存和最大内存在一定程度都会影响程序的性能。比如说在应用程序用到最大内存的时候,JVM是要先去做垃圾回收的动作,释放被占用的一些内存。
所以想调整Tomcat的启动时初始内存和最大内存就需要向JVM声明,一般的JAVA程序在运行都可以通过中-Xms -Xmx来调整应用程序的初始内存和最大内存:
如:java -Xms64m -Xmx128m a.jar.
tomcat的启动程序是包装过的,不能直接使用java -X..... tomcat.*来改变内存的设置。在Tomcat在改变这个设置
有两种方法:
1. 适合用%tomcat_home%\bin中的startup.bat脚本启动,需要在环境变量中加上CATALINA_OPTS这个属性 。
如 SET CATALINA_OPTS= -Xms64m -Xmx512m;
ms是最小的,mx是  阅读全文
posted @ 2011-01-11 16:57 rogerfan 阅读(737) | 评论 (0)  编辑

     摘要: 分享一下多年来在myeclipse中支持jquery、ext、YUI、mooto等主流框架的自动完成、提示、调试等方法。百忙之中非常想念各位群友,MMT很快就会回来。以下着重介绍link方式安装,不推荐升级模式安装,升级安装会带来很多问题,并且尝尝安装不成功。

1、从http://update1.aptana.org/studio/3.2/024747/index.html下载aptana studio的eclipse插件 aptana_update_024747.zip

2、在D:\Myeclipse下创建myPlugins文件夹。 (我的myeclipse装在D盘)

3、在 D:\Myeclipse\eclipse\links 下创建一个link文件aptana.link,内容如下:path=D:\\Myeclipse\\myPlugins\\aptana

4、在 D:\Myeclipse\myPlugins中创建文件夹aptana,在这个aptana文件夹下创建名为eclipse的文件夹。 阅读全文
posted @ 2010-12-09 15:40 rogerfan 阅读(1911) | 评论 (0)  编辑

     摘要: 当网站从服器端请求的数据较大时,在有限的带宽下就会造成浏览器加载缓慢,有时候会造成页面没有响应,使用户体验变得很差,tomcat为我们提供了有效的解决了办法,就是使用压缩来解决传输问题。
tomcat使用HTTP/1.1 GZIP 来压缩,以减少带宽压力,
首先介绍下gzip:
HTTP协议上的GZIP编码是一种用来改进WEB应用程序性能的技术。大流量的WEB站点常常使用GZIP压缩技术来让用户感受更快的速度。这一般是指WWW服务器中安装的一个功能,当有人来访问这个服务器中的网站时,服务器中的这个功能就将网页内容压缩后传输到来访的电脑浏览器中显示出来.一般对纯文本内容可压缩到原大小的40%.这样传输就快了,效果就是你点击网址后会很快的显示出来.当然这也会增加服务器的负载. 一般服务器中都安装有这个功能模块的.
我们使用简单的例子来介绍tomcat的压缩使用:(使用firebug查看请求情况)  阅读全文
posted @ 2010-09-28 10:18 rogerfan 阅读(310) | 评论 (0)  编辑

     摘要: $TOMCAT_HOME$/CATALINA.BAT第一行,增加

set JAVA_OPTS=%JAVA_OPTS% -Xms512m -Xmx900m -Duser.timezone=GMT+08

=================================================================================================================================

$JONAS_HOME/bin/unix/jonas 中:
export JAVA_OPTS="-server -Xms256m -Xmx512m -XX:PermSize=64M -XX:MaxPermSize=128M -DFF_HOME=$JONAS_ROOT/ffhome"'-Xms【初始化内存大小】 -Xmx【可以使用的最大内存】'

http://jasli.itpub.net/post/15912/300322

=======  阅读全文
posted @ 2010-09-20 16:34 rogerfan 阅读(3597) | 评论 (0)  编辑

     摘要: HP QC(Quantity Center)是一款不错的测试管理工具,最近把公司的操作系统从Windows XP升级到Windows 7之后,发现登录到QC Server的Addin页面,很多客户端组件不能正常下载,从而导致整个QC不能使用。通过Google找到了解决方案(http://www.sqaforums.com/showflat.php?Cat=0&Number=596807&Main=595276),特发出来与大家共享,希望那些在Windows 7上使用HP QC的朋友遇到该问题的时候,能过及时得到解决。下面是解决的步骤:

Step I:关闭UAC (User Account Control)

通过开始菜单搜索框,输入UAC,会出现Change User Account Control菜单项。选在该菜单弹出如下一个User Account  Control Settingde 对话框。通过滚动条选择“Never notify”。然后重启机器。
  阅读全文
posted @ 2010-09-20 09:34 rogerfan 阅读(1210) | 评论 (0)  编辑

     摘要: CronTrigger 支持比 SimpleTrigger 更具体强大的调度,实现起来却不是很复杂。CronTrigger基于 cron 表达式,支持类似日历的重复间隔更为复杂的调度时间上的要求。

 Cron 表达式包括以下 7 个字段:

  ·秒

  ·分

  ·小时

  ·月内日期

  ·月

  ·周内日期

  ·年(可选字段)

  Cron 触发器利用一系列特殊字符,如下所示:

  ·反斜线(/)字符表示增量值。例如,在秒字段中“5/15”代表从第 5 秒开始,每 15 秒一次。

  ·问号(?)字符和字母 L 字符只有在月内日期和周内日期字段中可用。问号表示这个字段不包含具体值。所以,如果指定月内日期,可以在周内日期字段中插入“?”,表示周内日期值无关紧要。字母 L 字符是 last 的缩写。放在月内日期字段中,表示安排在当月最后一天执行。在周内日期字段中,如果“L”单独存在,就等于  阅读全文
posted @ 2010-09-17 09:25 rogerfan 阅读(837) | 评论 (0)  编辑

     摘要: Eclipse IDE是目前Java开发人群中使用得最广泛的IDE。Eclipse有一大堆的插件(请看http://www.eclipseplugincentral.com/),无数的组织在它之上开发他们自己的软件。显然,Eclipse无处不在。m2Eclipse项目在Eclipse IDE中提供了对Maven的支持,本章,我们将会研究它提供的特性,以帮助你在Eclipse IDE中使用Maven。

m2eclipse插件(http://m2eclipse.codehaus.org/)为Eclipse提供了Maven的集成。m2Eclipse同时也以挂钩的方式连接了Subclipse插件(http://subclipse.tigris.org/)和Mylyn插件(http://www.eclipse.org/mylyn/)的特性。Subclipse插件为m2eclipse提供了与Subversion仓库交互的能力,Mylyn插件为m2eclipse提供了与任务集中接口交互的能力,该接口能跟踪开发过程的上下文。m2clipse提供的一些特性包括:

创  阅读全文
posted @ 2010-08-06 14:07 rogerfan 阅读(257) | 评论 (0)  编辑

     摘要: 全局 查找并替换 Ctrl+F
文本编辑器 查找上一个 Ctrl+Shift+K
文本编辑器 查找下一个 Ctrl+K
全局 撤销 Ctrl+Z
全局 复制 Ctrl+C
全局 恢复上一个选择 Alt+Shift+↓
全局 剪切 Ctrl+X
全局 快速修正 Ctrl1+1
全局 内容辅助 Alt+/
全局 全部选中 Ctrl+A
全局 删除 Delete
全局 上下文信息 Alt+?
Alt+Shift+?
Ctrl+Shift+Space
Java编辑器 显示工具提示描述 F2
Java编辑器 选择封装元素 Alt+Shift+↑
Java编辑器 选择上一个元素 Alt+Shift+←
Java编辑器 选择下一个元素 Alt+Shift+→
文本编辑器 增量查找 Ctrl+J
文本编辑器 增量逆向查找 Ctrl+Shift+J
全局 粘贴 Ctrl+V
全局 重做 Ctrl+Y   阅读全文
posted @ 2010-08-06 14:02 rogerfan 阅读(269) | 评论 (0)  编辑

     摘要: 个人经验

1.申请完护照后在花生壳网站上申请免费域名。 注册花生壳 得到免费域名并激活

2.路由器的设置

a.先登陆你的路由器管理界面(浏览器里输入192.168.1.1,默认的管理员用户名密码都是admin,只要你的路由器密码没有被修改过,就用这个登陆)

b.设置“虚拟服务器”

内容为:

服务端口:80,

ip地址:192.168.0.*(*就是你ip的最后一位),

协议:http

如果你还想添加ftp服务,那只需要再添加一个端口号为21的,其他设置和上面的 web的设置一样。然后就是保存

c.设置“DMZ主机”
启用DMZ主机,并且在DMZ主机ip地址里写你的地址。保存。


3.tomcat 在server.xml文件,
把端口号改为80,
  阅读全文
posted @ 2010-07-28 15:58 rogerfan 阅读(6233) | 评论 (1)  编辑

     摘要: spring security 2安全功能,添加用户验证码的实现,方案有3个:
方案1、由于AuthenticationProcessingFilter过滤器是拦截/j_spring_security_check地址,他的实现类里只读取的j_username和j_password,
没有读取其他的用户登陆信息,所以我就把验证码(code)在login.jsp页面和j_username拼装在一起,在UserDetailServiceImpl类UserDetails loadUserByUsername(String userName)
方法里对传进的userName进行拆分,分解出用户名和验证码,剩下的工作不用我详细说了。
方案2、继承AuthenticationProcessingFilter重写一下AuthenticationProcessingFilter类的实现类,该方案的缺点是对现有的spring security 2配置改动较大;
方案3(我推荐的),优点自己体会。
步骤1写过滤器,代码如下:
package com.s  阅读全文
posted @ 2010-07-23 16:38 rogerfan 阅读(1458) | 评论 (0)  编辑

     摘要: 1.HttpSessionContextIntegrationFilter




位于过滤器顶端,第一个起作用的过滤器。



用途一,在执行其他过滤器之前,率先判断用户的session中是否已经存在一个SecurityContext了。如果存在,就把SecurityContext拿出来,放到SecurityContextHolder中,供Spring Security的其他部分使用。如果不存在,就创建一个SecurityContext出来,还是放到SecurityContextHolder中,供Spring Security的其他部分使用。



用途二,在所有过滤器执行完毕后,清空SecurityContextHolder,因为SecurityContextHolder是基于ThreadLocal的,如果在操作完成后清空ThreadLocal,会受到服务器的线程池机制的影响。
  阅读全文
posted @ 2010-07-23 16:36 rogerfan 阅读(697) | 评论 (0)  编辑

     摘要: Eclipse IDE是目前Java开发人群中使用得最广泛的IDE。Eclipse有一大堆的插件(请看http://www.eclipseplugincentral.com/),无数的组织在它之上开发他们自己的软件。显然,Eclipse无处不在。m2Eclipse项目在Eclipse IDE中提供了对Maven的支持,本章,我们将会研究它提供的特性,以帮助你在Eclipse IDE中使用Maven。

m2eclipse插件(http://m2eclipse.codehaus.org/)为Eclipse提供了Maven的集成。m2Eclipse同时也以挂钩的方式连接了Subclipse插件(http://subclipse.tigris.org/)和Mylyn插件(http://www.eclipse.org/mylyn/)的特性。Subclipse插件为m2eclipse提供了与Subversion仓库交互的能力,Mylyn插件为m2eclipse提供了与任务集中接口交互的能力,该接口能跟踪开发过程的上下文。m2clipse提供的一些特性包括:

创  阅读全文
posted @ 2010-07-14 19:50 rogerfan 阅读(5801) | 评论 (0)  编辑

     摘要: 附:cronExpression表达式解释:
0 0 12 * * ?---------------在每天中午12:00触发
0 15 10 ? * *---------------每天上午10:15 触发
0 15 10 * * ?---------------每天上午10:15 触发
0 15 10 * * ? *---------------每天上午10:15 触发
0 15 10 * * ? 2005---------------在2005年中的每天上午10:15 触发
0 * 14 * * ?---------------每天在下午2:00至2:59之间每分钟触发一次
0 0/5 14 * * ?---------------每天在下午2:00至2:59之间每5分钟触发一次
0 0/5 14,18 * * ?---------------每天在下午2:00至2:59和6:00至6:59之间的每5分钟触发一次
0 0-5 14 * * ?---------------每天在下午2:00至2:  阅读全文
posted @ 2010-07-14 10:03 rogerfan 阅读(819) | 评论 (1)  编辑

     摘要: dwr.xml是DWR的配置文件。默认情况下,应该把它放到WEB-INF目录(web.xml的目录)下

创建dwr.xml文件
dwr.xml文件的结构如下:

阅读全文
posted @ 2010-07-11 19:18 rogerfan 阅读(1570) | 评论 (0)  编辑

     摘要: DWR是一个框架,简单的说就是能够在javascript直接调用java方法,而不必去写一大堆的javascript代码。它的实现是基于ajax的,可以实现无刷新效果。

网上有不少DWR的例子,但大都只是某种方法的调用,本文只在使用层面上介绍DWR,并不涉更多的技术与设计,其目的是让初学者能够很快的学会各种java方法在javascript中是如何调用的。

本文以DWR 1.1 为基础,对于DWR 2.0,因为还没有正式发布版,故不做介绍。

一、dwr配置篇之web.xml

1、最小配置
  阅读全文
posted @ 2010-07-11 19:17 rogerfan 阅读(566) | 评论 (0)  编辑

     摘要: 我的试验主要包括4种:
1.回传一个普通的String字符串.
2.回传一个组织好的Javascript字符串.
3.回传一个Json对象.(需要引入json.jar)
4.回传一个XML对象.
基本实现如下:
其中测试页面为:  阅读全文
posted @ 2010-07-11 19:06 rogerfan 阅读(1551) | 评论 (0)  编辑

     摘要: 一、使用校验规则创建Person-validation.xml文件


为了利用WebWork校验框架实现数据校验有两件事情要做,第一是创建一个validation.xml文件,第二是在需要进行校验的action中加入一个校验interceptor引用。

WebWork允许两种类型的校验 —— per-action和model-based。因为所有的Action对Person引用都要使用相同的校验规则,所以本文将使用model-based类型的校验。

在src/dao/**/model目录下创建Person-validation.xml文件并加入下列内容:
  阅读全文
posted @ 2010-07-11 18:46 rogerfan 阅读(368) | 评论 (0)  编辑

     摘要: 准备工作

  首先先下载Windows版本的SVN服务器(各位都会使用搜索引擎所以就不提供下载地址了),这里我以svn-win32-1.4.3的ZIP解压缩版为例,将其解压缩到目标目录,例如我是解压到D盘下的Subversion目录,把D:\Subversion\bin加到系统环境变量,如果你的解压位置与我不同,那么请按照你的实际路径设置环境变量。

第一步:创建SVN数据库

  打开Windows命令提示符,执行命令svnadmin create F:\SVN,svnadmin create是创建SVN数据库的命令,F:\SVN是你的SVN数据库位置,这里我只是举个例子,你可以自己决定SVN数据库位置,执行完以上命令后就会在F盘下多出一个SVN目录,里面有若干目录和文件,conf目录是用来存放权限配置的,后面会详细说明,dav目录用来提供给apache和mod_dav_svn存储内部数据,db目录是所有版本控制的数据文件,hooks目录用来放置hook脚本文件,locks目录存放Subversion文件库锁定数据,用来追踪存取  阅读全文
posted @ 2010-07-09 09:02 rogerfan 阅读(655) | 评论 (0)  编辑

     摘要: 需要的软件:

1.apache 2.2.11 (此下载地址被墙,翻*墙可下载,其他版本的Apache可以在这里找到 http://archive.apache.org/dist/httpd/binaries/win32/)

2.Subversion 1.6.5

3.TortoiseSVN 1.6.8

4.TortoiseSVN 1.6.8 中文语言包



安装方法:



1.先安装apache ,没有什么特别的,这里就按照默认安装路径 C:/Program Files (x86)/Apache Software Foundation/Apache2.2/



2.安装Subversion 也按默认路径安装 C:\Program Files (x86)\Subversion
  阅读全文
posted @ 2010-07-06 11:13 rogerfan 阅读(742) | 评论 (0)  编辑

     摘要: maxRequests
同时执行 SQL 语句的最大线程数。大于这个值的线程将阻塞直到另一个线程执行完成。不同的 DBMS有不同的限制值,但任何数据库都有这些限制。通常这个值应该至少是maxTransactions(参见以下)的 10 倍,并且总是大于 maxSessions 和maxTranactions。减小这个参数值通常能提高性能。

例如:maxRequests=“256”
缺省值:512

maxSessions
同一时间内活动的最大 session 数。一个 session 可以maxSessions是代码请求的显式 session,也可以是当线程使用SqlMapClient 实例(即执行一条语句)自动获得的session。它应该总是大于或等于 maxTransactions 并小于 maxRequests。减小这个参数值通常能减少内存使用。

例如:maxSessions=“64”
缺省值:128  阅读全文
posted @ 2010-07-01 11:21 rogerfan 阅读(2061) | 评论 (0)  编辑

     摘要: 1.ibatis中使用缓存
首先设置SqlMapConfig.xml中节点的属性cacheModelsEnabled="true"

然后在具体sqlmap文件中书写

Xml代码







posted @ 2010-06-30 16:58 rogerfan 阅读(188) | 评论 (0)  编辑

     摘要: 最近开始重构公司一套手机论坛系统(为什么我不说wap论坛,是因为需要针对不同的手机浏览器,实现自动适配成wap、html以及wap2.0版本的页面)。原系统存在架构层次不清晰(表现层全jsp,直接配合数据层获取数据),访问速度慢的问题。其使用的OR映射框架是Hibernate,鉴于Hibernate的一些不满足需要情况下,我们在重构的时候换成了iBatis,为了加快访问速度,采用了iBatis的缓存技术。

iBatis的缓存配置比较简单易懂,以我使用的iBatis2.3为例,做以下配置即可实现对某些查询进行缓存:

1、在sqlMap文件中加入cacheModel的配置:





阅读全文
posted @ 2010-06-29 21:55 rogerfan 阅读(910) | 评论 (0)  编辑

     摘要: 支持英文、数字、中文(简体)混合分词
常用的数量和人名的匹配
超过22万词的词库整理
实现正向最大匹配算法

//采用正向最大匹配的中文分词算法,相当于分词粒度等于0
MMAnalyzer analyzer = new MMAnalyzer();

//参数为分词粒度:当字数等于或超过该参数,且能成词,该词就被切分出来
MMAnalyzer analyzer = new MMAnalyzer(2);


//增加一个新词典,采用每行一个词的读取方式
MMAnalyzer.addDictionary(reader);

//增加一个新词
MMAnalyzer.addWord(newWord);
  阅读全文
posted @ 2010-06-21 10:10 rogerfan 阅读(2996) | 评论 (0)  编辑

     摘要: 1. 各种Query
1.1. 概述
query.toString()查看原子查询

1.2. 使用特定的分析器搜索
IndexSearcher searcher = new IndexSearcher(path );

Hits hits = null;

Query query = null;

QueryParser parser =new QueryParser("contents", new StandardAnalyzer());

query =parser.parse("11 a and hello");

hits=searcher.search(query); //查找 name:11 name:hello 共1个结果

System.out.println("查找 "+query.toString()+" 共" + hits.length() + "个结果");
  阅读全文
posted @ 2010-06-21 10:07 rogerfan 阅读(317) | 评论 (0)  编辑

     摘要: 1. 排序
1.1. Sort类
public Sort()

public Sort(String field)

public Sort(String field,Boolean reverse) //默认为false,降序排序

public Sort(String[] fields)

public Sort(SortField field)

public Sort(SortField[] fields)

Sort sort=new Sort(“bookname”);按照“bookname“这个Field值进行降序排序

Sort sort=new Sort(“bookname”,true) //升序排序

Sort sort=new Sort(new String[]{“bookNumber”,”bookname”,”publishdate”});按照三个Field进行排序,但无法指定升序排序,所以用SortField <  阅读全文
posted @ 2010-06-21 10:06 rogerfan 阅读(587) | 评论 (0)  编辑

     摘要: 1. lucene中主要的类
1.1. Document文档类
1.1.1.常用方法
方法
描述

void add(Field field)
往Document对象中添加字段

void removeField(String name)
删除字段。若多个字段以同一个字段名存在,则删除首先添加的字段;若不存在,则Document保持不变

void removeFields(String name)
删除所有字段。若字段不存在,则Document保持不变

Field getField(String name)
若多个字段以同一个字段名存在,则返回首先添加的字段;若字段不存在,则Document保持不变

Enumeration fields()
返回Document对象的所有字段,以枚举类型返回

Field [] getFields(String name)
根据名称得到一个F  阅读全文
posted @ 2010-06-21 10:05 rogerfan 阅读(314) | 评论 (0)  编辑

     摘要: 1. 概述
Lucene是一个全文检索引擎的架构,提供了完整的查询引擎和索引引擎。Lucene以其方便使用、快速实施以及灵活性受到广泛的关注。它可以方便地嵌入到各种应用中实现针对应用的全文索引、检索功能,本总结使用lucene--2.3.2。

2. lucene 的包结构
1、org.apache.lucene.analysis对需要建立索引的文本进行分词、过滤等操作, 语言分析器,主要用于的切词Analyzer是一个抽象类,管理对文本内容的切分词规则。

2、org.apache.lucene.analysis.standard是标准分析器

3、org.apache.lucene.document提供对Document和Field的各种操作的支持。索引存储时的文档结构管理,类似于关系型数据库的表结构。Document相对于关系型数据库的记录对象,Field主要负责字段的管理。

4、org.apache.lucene.index是最重要的包,用于向Lucene提供建立索引时各种操作的支持。  阅读全文
posted @ 2010-06-21 10:04 rogerfan 阅读(202) | 评论 (0)  编辑

     摘要: 4 索引是如何创建的
为了使用Lucene来索引数据,首先你比把它转换成一个纯文本(plain-text)tokens的数据流(stream),并通过它创建出Document对象,其包含的Fields成员容纳这些文本数据。一旦你准备好些Document对象,你就可以调用IndexWriter类的addDocument(Document)方法来传递这些对象到Lucene并写入索引中。当你做这些的时候,Lucene首先分析(analyzer)这些数据来使得它们更适合索引。详见《Lucene In Action》
  阅读全文
posted @ 2010-06-21 09:58 rogerfan 阅读(250) | 评论 (0)  编辑

     摘要: 1 什么是索引
为了使用Lucene来索引数据,首先你得把它转换成一个纯文本(plain-text)tokens的数据流(stream),并通过它创建出Document对象,其包含的Fields成员容纳这些文本数据。一旦你准备好些Document对象,你就可以调用IndexWriter类的addDocument(Document)方法来传递这些对象到Lucene并写入索引中。当你做这些的时候,Lucene首先分析(analyzer)这些数据来使得它们更适合索引。详见《Lucene In Action》

下面先了解一下索引结构的一些术语。

1.1 索引数据结构介绍
1.1.1 术语定义
Lucene中基本的概念(fundamental concepts)是index、Document、Field和term。

ú 一条索引(index)包含(contains)了一连串(a sequence of)文档(documents)。

ú   阅读全文
posted @ 2010-06-21 09:58 rogerfan 阅读(280) | 评论 (0)  编辑

     摘要: 3 索引类关系图
下面逐个介绍与建立索引有关的一些类及它们的关系。



3.1 org.apache.lucene.store.IndexWriter
一个IndexWriter对象只创建并维护一个索引。IndexWriter通过指定存放的目录(Directory)以及文档分析器(Analyzer)来构建,direcotry代表索引存储(resides)在哪里;analyzer表示如何来分析文档的内容;similarity用来规格化(normalize)文档,给文档算分(scoring);IndexWriter类里还有一些SegmentInfos对象用于存储索引片段信息,以及发生故障回滚等。以下是它们的类图:
  阅读全文
posted @ 2010-06-21 09:56 rogerfan 阅读(223) | 评论 (0)  编辑

     摘要: 1 Lucene是什么
Apache Lucene是一个高性能(high-performance)的全能的全文检索(full-featured text search engine)的搜索引擎框架库,完全(entirely)使用Java开发。它是一种技术(technology),适合于(suitable for)几乎(nearly)任何一种需要全文检索(full-text search)的应用,特别是跨平台(cross-platform)的应用。

Lucene 通过一些简单的接口(simple API)提供了强大的特征(powerful features):

可扩展的高性能的索引能力(Scalable, High-Performance Indexing)

ü 超过20M/分钟的处理能力(Pentium M 1.5GHz)

ü 很少的RAM内存需求,只需要1MB heap

ü 增量索引(incremental indexi  阅读全文
posted @ 2010-06-21 09:53 rogerfan 阅读(200) | 评论 (0)  编辑

     摘要: 附:MyEclipse 5.0 官方提供的图文教程:

http://www.myeclipseide.com/ContentExpress-display-ceid-81.html#webservices

开发环境
Sun Java 5+ Eclipse 3.2 +MyEclipse 5.0.0.

概述

本文介绍了使用MyEclipse Web Service来迅速开发和测试一个HelloWorld Web Service,其中包括:
1. 介绍了MyEclipse Web Services的基本概念
2. 创建一个MyEclipse Web Services工程
3. 创建一个简单的HelloWorld Web Service
4. 在Web容器中,如Tomcat 5中部署Web Service
5. 使用Web Services Explorer来测试部署的Web Services
<  阅读全文
posted @ 2010-05-27 14:54 rogerfan 阅读(843) | 评论 (0)  编辑

     摘要: 本实例的原BLOG网站地址为:http://blog.csdn.net/meteorlWJ/archive/2009/09/12/4545100.aspx,有兴趣的朋友多多支持
在开始前,先介绍一些概念:

XFire Java SOAP框架概述 (摘自:http://tech.it168.com/j/e/2006-10-28/200610281432707.shtml)
MyEclipse Web Services是建立在XFire JavaSOAP框架和工具基础上的, XFire是一款开源的JavaSOAP框架。它拥有一个轻量级的信息处理模块,通过STAX来与SOAP信息相结合。提供了一个工作在WebServices下的简单API,支持POJO和schema开发. XFire支持 Web Services standards,Spring整合, 支持JBI , 支持 JAXB ,XMLBeans,Java 5 和JAX-WS.并支持HTTP, JMS, XMPP,In-memory传输协议

一、环境配置:MyEcl  阅读全文
posted @ 2010-05-27 11:31 rogerfan 阅读(5111) | 评论 (7)  编辑

     摘要: maven2 起步
相信maven1 大家都已经很熟悉了,具体maven能做什么,就不详细说了。个人觉得maven在开源项目中用的还是比较多的,公司内部,就不太清楚了。我以前的公司用过一段时间,不过后来就没有下文了。
与maven1 相比,maven2可算是几乎重写了,不过从速度来说应该更快。
主要的几个新特性包括:(详细参考http://www.ibm.com/developerworks/cn/opensource/os-maven2/index.html)
1. 更快、更简单
速度方面可以比上ant了
2. 更少的配置文件
现在的配置文件只剩下了settings.xml和pom.xml了。
3. Plugin语言更换
语言开始支持java,BeanShell和ant
4. 提供了预定义的模版
这点是最有帮助的,用户可以自己定义自己的项目模版了,就像用  阅读全文
posted @ 2010-05-09 19:10 rogerfan 阅读(181) | 评论 (0)  编辑

     摘要: iBatis的sqlMap配置文件的selectKey元素有个type属性,可以指定pre或者post表示前生成(pre)还是后生成(post)。

  阅读全文
posted @ 2010-04-30 13:46 rogerfan 阅读(4057) | 评论 (1)  编辑

     摘要: 使用XFire+Spring构建Web Service

XFire是与Axis 2并列的新一代Web Service框架,通过提供简单的API支持Web Service各项标准协议,帮助你方便快速地开发Web Service应用。

相 对于Axis来说,目前XFire相对受欢迎,加上其提供了和Spring集成的支持,在目前的Web Service开源社区拥有众多的追随者。并且因为XFire为Spring提供的支持,使得我们可以很容易在Spring中使用XFire构建Web Service应用。

XFire与Axis2相比具有如下特征:

l 支持一系列Web Service的新标准--JSR181、WSDL2.0 、JAXB2、WS-Security等;

l 使用Stax解释XML,性能有了质的提高。XFire采用Woodstox 作Stax实现;

l 容易上手,可以方便快速地从pojo发布服务;

l 支持Spring、Pico、Plexus、Loom  阅读全文
posted @ 2010-04-27 10:53 rogerfan 阅读(3508) | 评论 (0)  编辑

posted @ 2010-04-27 10:51 rogerfan 阅读(2041) | 评论 (0)  编辑

     摘要: 现在在Java开发中,使用的开发工具大部分都是Eclipse,并且和Eclipse关系紧密的要数MyEclipse了,但是 MyEclipse是一个EXE可执行程序,对于没有安装Eclipse与MyEclilpse的电脑来说,首先得先解压Eclipse,然后再安装 MyEclipse,这不光很麻烦,而且还很费时,对于已经安装好的电脑来说,如果哪天电脑出了问题或是Eclipse崩溃了,导致工具不能用,这时又不得不重新安装时,那可真够郁闷滴~~~,因此,大象本着我为人人,人人为我的奉献精神,在此,将Eclipse+MyEclipse的完全绿色版制作方法写出来,和大家一起分享,让大家都能享受到这种方便。

在这里,大象采用Eclipse3.3.1与MyEclipse_6.0.1GA_E3.3.1_Installer版来举例说明,其它的版本做法与此相同。

第1步:下载Eclipse3.3.1和MyEclipse_6.0.1GA

这里我要提醒大家注意一下:下载3.2的版本,因为3.3版本以上的支持,另外就是下载MyEclipse6.0.1的插件  阅读全文
posted @ 2010-03-18 17:34 rogerfan 阅读(1502) | 评论 (0)  编辑

     摘要: 最近项目中需要用到CXF,但是本人使用的MyEclipse Blue Edition 6.1居然没有集成CXF的支持。因此抽时间研究了下将Eclipse SOA Tools Platform插件集成到其中。

MyEclipse Blue Edition 6.1中使用的Eclipse Platform为3.3.2。因此本人下载了多个Eclipse 3.3.2版本的STP插件进行测试。最后发现STP R200710161054版可以和MyEclipse Blue Edition 6.1版完美集成。

此处可以下载STP R200710161054 all in one版。

具体安装其实超简单,将下载的ZIP包解压到MyEclipse安装目录下的myeclipse目录中。此处需要特别小心,注意:eclipse,feature和plugins目录可以覆盖;但是feature和plugins中的同名目录不能覆盖。

此外,由于STP插件中的文件的目录和文件名比较长,解压后可能会发生  阅读全文
posted @ 2010-03-18 17:33 rogerfan 阅读(1576) | 评论 (0)  编辑

     摘要: 这次发布的Spring Security-3.0.1是一个bug fix版,主要是对3.0中存在的一些问题进行修正。文档中没有添加新功能的介绍,但是将之前拼写错误的一些类名进行了修正,建议开发者以这一版本的文档为参考。

另:Spring Security从2010-01-01以后,版本控制从SVN换成了GIT,我们在翻译文档的时候,主要是根据SVN的变化来进行文档内容的比对,这次换成GIT后,感觉缺少了之前那种文本比对工具,如果有对GIT熟悉的朋友,还请推荐一下文本比对的工具,谢谢。  阅读全文
posted @ 2010-03-16 17:03 rogerfan 阅读(183) | 评论 (0)  编辑

     摘要: Maven的基本原理很简单,采用远程仓库和本地仓库以及一个类似build.xml的pom.xml,将pom.xml中定义的jar文件从远程仓库下载到本地仓库,各个应用使用同一个本地仓库的jar,同一个版本的jar只需下载一次,而且避免每个应用都去拷贝jar。如图1。同时它采用了现在流行的插件体系架构,只保留最小的核心,其余功能都通过插件的形式提供,所以maven下载很小(1.1M),在执行maven任务时,才会自动下载需要的插件。
这个基本原理与Pear――PHP扩展与应用库(the PHP Extension and Application Repository)的原理非常相似,都有一个官方的仓库,都是微内核,通过网络将需要的文件下载到本地,通过官方仓库将相应的类库进行统一管理。Pear已经成为PHP开发事实上的标准,而Maven在Java世界的地位也逐渐加强,成为标准指日可待。  阅读全文
posted @ 2010-02-04 22:41 rogerfan 阅读(404) | 评论 (0)  编辑

     摘要: 为了方便ajax调用传输数据,在struts2中加入的json插件用来做对象的序列化和反序列化,json插件的下载地址

http://code.google.com/p/jsonplugin/

1. 下载json插件包,将jar包拷贝到WEB-INF/lib目录

注:struts2的json插件有两个版本0.32和0.34,我用的struts2的版本是2.0.11,在加入0.34版本json插件时启动发生异常,提示找不到相关方法,后来就换成了低版本的0.32一切OK,仔细查看文档后发现struts2的2.0.*版本的对应插件的0.32版本,struts2.1.*版本对应0.34版本
  阅读全文
posted @ 2010-01-26 11:36 rogerfan 阅读(19251) | 评论 (7)  编辑

     摘要: 这是ntfs权限造成的,解决办法:

1、选择“工具” > “文件夹选项” >“查看”,去掉“使用简单文件共享”前的勾

2、找到数据库所在文件夹,点击右键“属性”并切换到“安全”选项卡,添加给EveryOne 用户所有权限。

添加方法为:安全>添加>高级>立即查找>选中everyone>确定>点上“修改”一项

3、同理给internet来宾帐户添加修改权限

4、找到数据库,右键>安全,为internet来宾帐户添加“修改”权限,确定。这项很重要,一定要做

现在数据库就可以顺利连上了

fat32系统一般不会出现这类问题  阅读全文
posted @ 2010-01-10 16:22 rogerfan 阅读(2100) | 评论 (0)  编辑

     摘要: 前言
关于Struts2入门以及提高等在这里就不介绍了,但是关于Struts2的学习有以下推荐:

struts2-showcase-2.0.6.war:这个是官方自带的Demo(struts-2.0.6-all.zip\struts-2.0.6\apps目录下),非常全面,直接部署就可以了(很多朋友Struts2能学很好我估计还是直接从这里学来的)。
wiki-WebWork:入了门的朋友应该都知道,strust2由webwork2和struts1.x合并起来的,但主要还是以webwork2为主,所以如果找不到Struts2的资料可以找WebWork资料看看。
Max On Java的博客,他的博客的资料在中文的Struts2算是比较全的了,写得很详细。
The Code Project、Google - CodeSearch、Koders:这几个代码搜索网站在我找不到中文资料甚至英文文章的时候帮了我大忙!
关于JFreeChart入门等这里我也不打算介绍了,中文资料很多了。

阅读全文
posted @ 2010-01-06 17:08 rogerfan 阅读(2087) | 评论 (0)  编辑

     摘要: 目前从实际应用来看,ORM的老大自然是Hibernate,可是iBatis因为相对比较直观、学习曲线相对较低,因而也赢得了不少用户的青睐。
本文主要介绍作为iBatis辅助工具的iBator的使用方法。
iBator是一个iBatis相关代码的自动生成工具。
1、安装iBator的插件
在Eclipse中,使用添加站点的方法,输入网址http://ibatis.apache.org/tools/ibator,进行iBator的安装。
2、建议不要直接在使用iBatis的项目里直接使用iBator,推荐另外单独建立一个项目来生成。比如,建立一个项目叫:IbatorPrj
3、右键点击IbatorPrj这个项目,如果刚才的插件安装正确的话,就会看到一个“Add iBATOR to the build path”的选项,点击一下。
4、创建iBator的配置文件。下面是我的例子,大家在实际使用的过程中,需要根据自己的情况进行相应的修改。  阅读全文
posted @ 2009-11-24 10:26 rogerfan 阅读(2131) | 评论 (0)  编辑

     摘要: OSCache是当前运用最广的缓存方案,JBoss,Hibernate,Spring等都对其有支持,
下面简单介绍一下OSCache的配置和使用过程。

1.安装过程
从http://www.opensymphony.com/oscache/download.action下载合适的OSCache版本,
我下载的是oscache-2.0.2-full版本。
解压缩下载的文件到指定目录

从解压缩目录取得oscache.jar 文件放到 /WEB-INF/lib 或相应类库目录 目录中,
jar文件名可能含有版本号和该版本的发布日期信息等,如oscache-2.0.2-22Jan04.jar

如果你的jdk版本为1.3.x,建议在lib中加入Apache Common Lib 的commons-collections.jar包。
如jdk是1.4以上则不必

从src或etc目录取得oscache.properties 文件,放入src根目录或发布环境的/W  阅读全文
posted @ 2009-11-17 14:36 rogerfan 阅读(158) | 评论 (0)  编辑

     摘要: 一。简介

OSCache是OpenSymphony组织提供的一个J2EE架构中Web应用层的缓存技术实现组件,它的出现解决了我们面临的问题。 OSCache目前最新的稳定版本是2.3.2,本文中的例子都是基于这个版本的,如果大家运行例子的过程中发生问题,请首先确认是否采用了正确的软件版本。

二。安装

1. 下载、解压缩OSCache

请到OSCache的主页http://www.opensymphony.com/oscache/download.action下载Oscache的最新版本,作者下载的是OSCache的最新稳定版本2.3.2。

将下载后的。Zip文件解压缩到c:\oscache(后面的章节中将使用%OSCache_Home%来表示这个目录)目录下

2. 新建立一个web应用

3. 将主要组件%OSCache_Home%\oscache.jar放入WEB-INF\lib目录

4. commons-log  阅读全文
posted @ 2009-11-17 14:34 rogerfan 阅读(177) | 评论 (0)  编辑

     摘要: 什么是动态定时任务:是由客户制定生成的,服务端只知道该去执行什么任务,但任务的定时是不确定的(是由客户制定)。
这样总不能修改配置文件每定制个定时任务就增加一个trigger吧,即便允许客户修改配置文件,但总需要重新启动web服务啊,研究了下Quartz在Spring中的动态定时,发现
《bean id="cronTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean" 》
《property name="jobDetail" ref="schedulerJobDetail"/》
《property name="cronExpression"》
《value》0/10 * * * * ?《/value》
《/property》
中cronExpression是关键,如果可以动态设置cronExpression的值,也就说如果我们可以直接调用CronTrigge  阅读全文
posted @ 2009-08-11 10:00 rogerfan 阅读(3474) | 评论 (1)  编辑

     摘要: 一、前言
早就知道maven 在java 项目的管理方面名声显赫,于是就想着学习掌握之,于是查阅了大量文档。发现这些文档的作者都是java 的大腕,大多都是站在掌握了一定maven 基础的角度上进行介绍,让我这初学者看的云里雾里不知所云。于是又去查看maven 的官方网站,总算是有所了解,但一旦动手实际操作却又雾里看花。唉,没办法,就只有一遍一遍的动手尝试,经过种
种磨难总算是有一点眉目了。现在就将我的经验写出来,一来避免将来遗忘,二来也给和我一样的菜鸟们提供一点点的方便。呵呵。本文的主题在于实用操作,个中原理还是麻烦大家去查一下java大腕们的文章吧。这里推荐两篇文章:

Maven 2.0:编译、测试、部署、运行
http://www.ideagrace.com/html/doc/2006/06/14/00847.html

Maven2 的新特性
http://www-128.ibm.com/developerworks/cn/opensource/os-maven2/index.html  阅读全文
posted @ 2009-07-13 14:55 rogerfan 阅读(587) | 评论 (0)  编辑

     摘要: 简介
Maven作为Apache的一个开源项目,旨在给项目管理提供更多的支持,主页地址为http://maven.apache.org 。它最早的意图只是为了给apache组织的几个项目提供统一的开发、测试、打包和部署,能让开发者在多个项目中方便的切换。很多伟大的事业,出发点都很简单,ebay就是很好的例证。而maven的成功又一次验证了这一点,越来越多的项目开始使用maven。
基本原理
Maven的基本原理很简单,采用远程仓库和本地仓库以及一个类似build.xml的pom.xml,将pom.xml中定义的jar文件从远程仓库下载到本地仓库,各个应用使用同一个本地仓库的jar,同一个版本的jar只需下载一次,而且避免每个应用都去拷贝jar。如图1。同时它采用了现在流行的插件体系架构,只保留最小的核心,其余功能都通过插件的形式提供,所以maven下载很小(1.1M),在执行maven任务时,才会自动下载需要的插件。
  阅读全文
posted @ 2009-07-13 14:35 rogerfan 阅读(162) | 评论 (0)  编辑

     摘要: 近期在学习Maven,主要是想把Ant构建的项目换成Maven构建,查了不少资料,也做了一些实践,感觉已经有些入门,现将自己的学习过程整理出来,希望对看到这篇文章的人员有所帮助。由于查了不少资料,参考了不少文档,在此表示感谢!

1、下载

开源网址:http://maven.apache.org/
下载网址:http://maven.apache.org/download.html  阅读全文
posted @ 2009-07-13 11:44 rogerfan 阅读(259) | 评论 (0)  编辑

     摘要: UML建模软件目前用的主要有3种:

商业版本:Telelogic TAU 和 Rational Rose

开源版本:StarUML

Telelogic TAU与Rational Rose的功能很强,但是需要买License。

StarUML就是希望能提供和TAU/Rose一样功能的开源版本。

目前使用起来还是不错的。

能熟练使用其中一个是软件设计人员的基本功。
  阅读全文
posted @ 2009-06-19 17:31 rogerfan 阅读(1897) | 评论 (0)  编辑

     摘要: 导读:
StarUML是专业的UML建模工具,又因为它是免费开源的,因此是初学者的首选软件。废话少说,开始:
1、界面介绍:
主要是四个方面:工具栏、工作区、浏览区和属性区。结构如下图:  阅读全文
posted @ 2009-06-19 10:43 rogerfan 阅读(1697) | 评论 (2)  编辑

     摘要: 编辑
作用域 功能 快捷键
文本编辑器 查找上一个 Ctrl+Shift+K
文本编辑器 查找下一个 Ctrl+K
全局 恢复上一个选择 Alt+Shift+↓
全局 快速修正 Ctrl1+1
全局 内容辅助 Alt+/
全局 上下文信息 Alt+?Alt+Shift+?Ctrl+Shift+Space
Java编辑器 显示工具提示描述 F2
Java编辑器 选择封装元素 Alt+Shift+↑
Java编辑器 选择上一个元素 Alt+Shift+←
Java编辑器 选择下一个元素 Alt+Shift+→
文本编辑器 增量查找 Ctrl+J
文本编辑器 增量逆向查找 Ctrl+Shift+J
全局 重做 Ctrl+Y   阅读全文
posted @ 2009-05-13 11:47 rogerfan 阅读(380) | 评论 (0)  编辑

     摘要: Maven1.0已经历了几年的时间,并且作为Ant的替代品已被广大的开发人员所接收,但它并没有在很大程度使开发人员从Ant的build.xml文件中解脱出来。Maven1.0速度慢并且笨拙,使用起来的困难度并不亚于使用Ant的项目。事实上,它的核心是基于Ant实现的。在经过了几乎彻底的重写后,Maven2.0诞生了。

一个Java项目中最困难的地方就是如何着手启动它。在启动项目之前,我们必须配置好所有的逻辑关系。比如,Java源代码应该放在何处?单元测试应该在何处进行?依赖的jar包应该如何放置?如何构建项目,如何形成文档,如何测试和部署项目?在这种情况下,开发人员不同的处理选择将会影响项目的余下部分。您的选择可能会使你陷入困境,也可能会在将来证明您是一位Java架构大师。我们假定后者是我们奋斗的目标,接下来就进入我们的正题。  阅读全文
posted @ 2009-03-20 11:21 rogerfan 阅读(365) | 评论 (0)  编辑

     摘要: maven2 起步
相信maven1 大家都已经很熟悉了,具体maven能做什么,就不详细说了。个人觉得maven在开源项目中用的还是比较多的,公司内部,就不太清楚了。我以前的公司用过一段时间,不过后来就没有下文了。
与maven1 相比,maven2可算是几乎重写了,不过从速度来说应该更快。
主要的几个新特性包括:(详细参考http://www.ibm.com/developerworks/cn/opensource/os-maven2/index.html)
1. 更快、更简单
速度方面可以比上ant了
2. 更少的配置文件
现在的配置文件只剩下了settings.xml和pom.xml了。
  阅读全文
posted @ 2009-03-20 11:17 rogerfan 阅读(746) | 评论 (0)  编辑

     摘要: Abator动作环境:
* Eclipse 3.0 or higher
(including Rational Application Developer/Software rchitect 6.0)
* JDK 1.4 or Higher


Abator可以自动生成:
・POJO
・DAO接口和实装
・SqlMapConfigXML


Abator Eclipse插件
Update URL:http://ibatis.apache.org/tools/abator  阅读全文
posted @ 2009-03-20 11:10 rogerfan 阅读(325) | 评论 (0)  编辑

     摘要: 有关Maven:http://maven.apache.org/


m2eclipse主要功能特点
1,支持Eclipse环境直接启动Maven build
2,Maven项目, pom.xml等创建向导功能


m2eclipse首页:
http://m2eclipse.codehaus.org/

m2eclipse在线安装:
http://m2eclipse.codehaus.org/update/  阅读全文
posted @ 2009-03-20 11:05 rogerfan 阅读(723) | 评论 (0)  编辑

     摘要: 测试任何可能的错误。单元测试不是用来证明您是对的,而是为了证明您没有错。

2、单元测试代码和被测试代码使用一样的包,不同的目录。
--junit4.0使用注意说明;

3、测试方法必须按照规范书写
1. 测试方法必须使用注解 org.junit.Test 修饰。
2. 测试方法必须使用 public void 修饰,而且不能带有任何参数。
@Test public void wordFormat4DBegin(){
String target = "EmployeeInfo";
String result = WordDealUtil.wordFormat4DB(target);

assertEquals("employee_info", result);
}  阅读全文
posted @ 2009-03-06 11:30 rogerfan 阅读(838) | 评论 (0)  编辑

     摘要: 提要 本文将向你介绍如何实现从JUnit 3.8向JUnit 4的迁移。同时,还讨论JUnit 4中的一些新特征,特别包括对注解的使用;最后,简要介绍这个新版本的IDE集成现状。

  一、 引言

  在本文开始,我将假定,你已经了解由Kent Beck和Erich Gamma发明的这个Java单元测试框架并因此而略过必要的简介。所以,我将集中分析从JUnit 3.8到最新版本-JUnit 4的迁移过程以及其在IDE和Ant中的集成。

  JUnit 4是一种与其之前的版本完全不同的API,它根据Java 5.0中的新特征(注解,静态导入等)构建而成。如你所见,JUnit 4更简单、更丰富和更易于使用,而且它引入了更为灵活的初始化和清理工作,还有限时的和参数化测试用例。   阅读全文
posted @ 2009-03-06 10:46 rogerfan 阅读(301) | 评论 (0)  编辑

     摘要: Struts简介
Struts是一个基于Sun J2EE平台的MVC框架,很好地实现了MVC模式,它由Craig McClanahan创建。Struts最早是作为Apache Jakarta项目的组成部分问世运作,Struts这个名字来源于在建筑中使用的金属架。使用它的目的是为了减少运用MVC设计模型来开发Web应用的时间。它只有一个中心控制器,采用XML定制转向的URL,采用Action来处理逻辑。

Struts通过一个配置文件,即可把握整个系统各部分之间的联系,但这样做不容易查找错误。Struts 其实就是在Model2基础上实现的一个MVC框架。Model2的示意图如图11.1所示。

图11.1 Model2的示意图

与Spring一样,通过在web.xml中的配置,使得所有的视图层请求都要通过ActionServlet,由它进行客户端的请求处理。它主要通过struts-config.xml文件来进行用户请求的动作和对应Action的请求,将请求传递给Action,并将处理后的结果返回给视图层。Struts的体系结构  阅读全文
posted @ 2009-03-06 10:32 rogerfan 阅读(1937) | 评论 (0)  编辑

     摘要: JUnit简介
JUnit主要用来帮助开发人员进行Java的单元测试,其设计非常小巧,但功能却非常强大。

下面是JUnit一些特性的总结:

— 提供的API可以让开发人员写出测试结果明确的可重用单元测试用例。

— 提供了多种方式来显示测试结果,而且可以扩展。

— 提供了单元测试批量运行的功能,而且可以和Ant很容易地整合。

— 对不同性质的被测对象,如Class,JSP,Servlet等,JUnit有不同的测试方法。
  阅读全文
posted @ 2009-03-06 10:29 rogerfan 阅读(1089) | 评论 (0)  编辑

     摘要: 1. 美国Segue公司的Silk系列产品Segue公司一直专注于软件质量优化领域。在Segue的产品套件中,拥有业内最强劲且最容易使用的、用于企业应用测试、调优和监测的自动化工具,能够帮助用户保障应用在其生命周期内的可靠性和性能。
 
  (1) SilkPerformer——企业级性能测试工具u 企业级自动化测试工具能够支持多种系统,如Java、。Net、Wireless、COM、CORBA、Oracle、Citrix、MetaFrame、客户机/服务器、以及各种ERP/CRM应用u 多项专利技术精确模拟各种复杂的企业环境u 可视化脚本记录功能及自定义工具简化了测试创建工作u SilkPerformer的Java/.NET浏览器以及JUnit/NUnit测试输入功能简化了对并发访问情况下远程应用组件的早期负载测试工作u 方便易用,工作流向导会逐步引导用户完成整个测试流程  阅读全文
posted @ 2009-03-06 10:06 rogerfan 阅读(343) | 评论 (0)  编辑

     摘要: 引言

  一个例子

  我们先看一个例子,以了解对”规则”做单元测试的特点。我们有一个性能调优工具 WPA, 它能够将与性能相关的参数的值进行评估并推荐最优值。它的评估和推荐最优值算法都是基于”规则”的。

  Java 虚拟机的初始堆大小(JVM initial heap size)是一个影响 JVM 的性能的关键参数。性能调优工具 WPA 有一套规则对“ JVM initial heap size ”的值进行评估(参见清单 1)。评估的结果有 5 个级别。级别“ 1 ”表示设置良好,可提高性能;级别“ 5 ”表示设置很差,会降低性能。
  阅读全文
posted @ 2009-03-06 10:04 rogerfan 阅读(387) | 评论 (0)  编辑

     摘要: 引言

毋庸置疑,程序员要对自己编写的代码负责,您不仅要保证它能通过编译,正常地运行,而且要满足需求和设计预期的效果。单元测试正是验证代码行为是否满足预期的有效手段之一。但不可否认,做测试是件很枯燥无趣的事情,而一遍又一遍的测试则更是让人生畏的工作。幸运的是,单元测试工具 JUnit 使这一切变得简单艺术起来。

JUnit 是 Java 社区中知名度最高的单元测试工具。它诞生于 1997 年,由 Erich Gamma 和 Kent Beck 共同开发完成。其中 Erich Gamma 是经典著作《设计模式:可复用面向对象软件的基础》一书的作者之一,并在 Eclipse 中有很大的贡献;Kent Beck 则是一位极限编程(XP)方面的专家和先驱。

麻雀虽小,五脏俱全。JUnit 设计的非常小巧,但是功能却非常强大。Martin Fowler 如此评价 JUnit:在软件开发领域,从来就没有如此少的代码起到了如此重要的作用。它大大简化了开发人员执行单元测试的难度,特别是 JUnit 4 使用 Java 5 中的注解(annotatio  阅读全文
posted @ 2009-03-06 09:59 rogerfan 阅读(353) | 评论 (0)  编辑

     摘要: 单元测试基础

  当今软件测试十分盛行时,本人通过项目实践和个人亲身体会浅谈单元测试,本人一直坚持“用代码说话的原则”,同时也希望个人能给出宝贵意见,共同探讨、共同进步,为中国软件事业有更大的发展共同奋斗!

  最早我们项目组开发的项目时,写代码都是从底层一直写到表现层到jsp,然后开发人员在web层调试页面,近乎98%都会报一大堆exception,然后再在代码中加断点一步一步查到底哪一层代码出现问题……,比较好点做法就是在各个类中加上main方法测试,但总体很不理想,给web层开发人员的调试和质量控制人员带来繁重的工作压力;使用单元测试后,针对每一个方法都做严格的把关,大大减少调试的时间;同时质量控制人员返回过来的bug少了近60%,现在对于开发人员写测试用例非常熟练,并且本人根据实际情况对测试用例做了点小小改动(这部分主要在后面代码中详述),带来很好的效果!
  阅读全文
posted @ 2009-03-06 09:55 rogerfan 阅读(1067) | 评论 (0)  编辑

     摘要: 1. UltraEdit官方网站下载所需文件格式的语法方案
http://www.ultraedit.com/index.php?name=Content&pa=showpage&pid=40#wordfiles
也可以打包下载所有的wordfiles,1.32MB

2. 每个wordfile是一个*.txt文件,第一行:/L20"Fortran 90" FORTRAN_LANG Line Comment =......
/L20指的就是它将被设置为UltraEdit的第20种高亮显示语言(在View->Syntax Highlighting)下可以看到已有哪些类型了。可以将该数字改为1-20(因为UltraEdit只一次支持20种)的任何一个数字,只要不和其它的高亮方案冲突即可。  阅读全文
posted @ 2009-01-15 17:45 rogerfan 阅读(1775) | 评论 (0)  编辑

     摘要: Log4J日志管理类使用详解,java开发必备,不多说了

一、前言:
log4j 是一个开放源码项目,是广泛使用的以Java编写的日志记录包。由于log4j出色的表现, 当时在log4j完成时,log4j开发组织曾建议sun在jdk1.4中用log4j取代jdk1.4 的日志工具类,但当时jdk1.4已接近完成,所以sun拒绝使用log4j,当在java开发中实际使用最多的还是log4j, 人们遗忘了sun的日志工具类。 它的一个独有特性包括在类别中继承的概念。通过使用类别层次结构,这样就减少了日志记录输出量,并将日志记录的开销降到最低。

它允许开发者控制以任意间隔输出哪些日志语句。通过使用外部配置文件,完全可以在运行时进行配置。几乎每个大的应用程序都包括其自己的日志记录或跟踪 API。经验表明日志记录是开发周期中的重要组成部分。同样,日志记录提供一些优点。首先,它可以提供运行应用程序的确切 上下文。一旦插入到代码中,生成日志记录输出就不需要人为干涉。其次,日志输出可以保存到永久媒体中以便以后研究。最后,除了在开发阶段中使用,十分丰富的日志记  阅读全文
posted @ 2009-01-08 15:15 rogerfan 阅读(318) | 评论 (0)  编辑

     摘要: 【IT168 快讯】11月22日消息,据市场分析机构Evans Data的一项调查报告显示,接近半数的Java企业使用了轻量级开源Java框架Spring。另外,73%的受访机构表示,它们有的已经在使用Spring框架,有的则计划在两年之内使用它。这些机构在企业应用开发过程中使用Spring框架的关键原因是,该框架简单易用,可以让应用程序开发者具有很高的开发效率。
  最近Evans Data的一个调查报告显示,Spring框架市场已经颇具规模,而且仍然在继续高速增长。
  阅读全文
posted @ 2009-01-07 11:38 rogerfan 阅读(207) | 评论 (0)  编辑

     摘要: 18.14 系统初始化模块
用户登录后,选择“系统管理”→“系统初使化”菜单项,进入到系统初使化,在该页面中将显示提示信息,单击【进行系统初使化】按钮,将进行系统初使化操作。系统初始化页面运行结果如图18.31所示。
18.15 疑难问题分析与解决
18.15.1 在Struts中解决中文乱码
通常情况下解决中文乱码采用的是编写一个将ISO-8859-1编码转换为gb2312编码的方法,然后在出现乱码的位置调用该方法即可达到解决中文乱码的目的,但是这样做很不方便。Struts提供了一个快速解决中文乱码的方法,那就是通过配置和扩展RequestProcessor类实现。下面将详细介绍在Struts中解决中文乱码的方法。
  阅读全文
posted @ 2009-01-07 10:46 rogerfan 阅读(271) | 评论 (0)  编辑

     摘要: 18.13 查询统计模块
18.13.1 查询统计模块总体架构
查询统计模块主要包括以下功能。

● 采购单查询:用于根据不同的条件查询采购单信息。

● 入库查询:用于根据不同的条件查询入库单信息。

● 部门领用查询:用于根据不同的条件查询部门领用信息。

● 部门领用汇总:用于根据不同的条件对部门领用信息进行汇总。

● 部门报损查询:用于根据不同的条件查询部门报损信息。

● 部门报损汇总:用于根据不同的条件对部门报损信息进行汇总。

● 借出查询:用于根据不同的条件查询物资借出及归还信息。

● 部门汇总:用于对全部或指定时间段内部门领用及报损的物资信息进行汇总。
  阅读全文
posted @ 2009-01-07 10:44 rogerfan 阅读(261) | 评论 (0)  编辑

     摘要: 18.12 物资处理模块
18.12.1 物资处理模块总体架构
物资处理模块主要包括以下功能。

● 库存盘点:用于分页打印库存盘点表;

● 部门报损:用于对部门报损信息进行登记。
  阅读全文
posted @ 2009-01-07 10:43 rogerfan 阅读(245) | 评论 (0)  编辑

     摘要: 18.11 物资出库模块
18.11.1 物资出库模块总体架构
物资出库模块主要包括以下功能:

● 部门领用:用于对部门领用信息进行登记;

● 物资借出:用于对物资借出信息进行登记;

● 借出审核:用于对物资借出信息进行审核。
  阅读全文
posted @ 2009-01-07 10:42 rogerfan 阅读(175) | 评论 (0)  编辑

     摘要: 18.10 物资入库模块
18.10.1 物资入库模块总体架构
物资入库模块主要包括以下功能。

● 采购登记:用于进行采购登记。

● 审核入库:用于对采购单进行审核操作,审核合格的采购单将进行入库操作,审核不合格的采购单将作废。

● 借出归还:用于对已借出的物资进行归还登记。
  阅读全文
posted @ 2009-01-07 10:41 rogerfan 阅读(470) | 评论 (0)  编辑

     摘要: 18.9 物资管理模块
18.9.1 物资管理模块总体架构
1.模块功能介绍
物资管理模块主要包括以下功能。

● 查看物资列表:用于分类显示未删除的和已删除的物资信息;

● 添加物资信息:用于添加物资信息;

● 修改物资信息:用于修改物资信息;

● 删除/恢复物资信息:用于删除或恢复物资信息。
  阅读全文
posted @ 2009-01-07 10:40 rogerfan 阅读(279) | 评论 (0)  编辑

     摘要: 18.8 用户管理模块
18.8.1 用户管理模块总体架构
1.模块功能介绍
用户管理模块主要包括以下功能。

● 用户登录:用于登录系统。

● 添加用户:用于添加用户信息。

● 查看用户列表:用于查询并显示系统中的除超级用户mr之外的用户及其权限信息。

● 修改用户权限:用于修改或设置用户权限。

● 删除用户:用于删除系统中的用户及权限信息。

● 修改密码:用于用户登录后修改自己的密码。
  阅读全文
posted @ 2009-01-07 10:39 rogerfan 阅读(561) | 评论 (0)  编辑

     摘要: Hibernate作为一个成熟且功能强大的持久层框架,它对JDBC进行了轻量级的对象封装,使程序员可能随心所欲地使用面向对象编程思想来操纵数据库。Struts作为一款优秀的基于MVC的Java Web框架,已经得到了广大企业和Java Web程序员的认可。Struts+Hibernate可谓开发Web程序的黄金组合。

本章将介绍运用Struts+Hibernate开发物资管理系统的全过程。本系统具有以下亮点。

● 通过Struts框架实现MVC模式,不但可以提高网站的开发速度,而且可以增强程序的可读性和易维护性。

● 系统中采用了Struts的RequestProcessor类解决中文乱码问题,使原本繁琐的工作变得非常简单。

● 通过Hibernate的HQL查询及关联操作使数据检索操作变得简单易行。
  阅读全文
posted @ 2009-01-07 10:37 rogerfan 阅读(458) | 评论 (0)  编辑

     摘要: 命令行 Subversion 入门
如果您参与的项目正在使用 Subversion 进行版本控制,您将需要使用 Subversion 访问和更改项目源文件。您可以点击项目的左侧导航窗格上的“Subversion”链接,在线浏览源代码以查看该项目的目录结构和文件。

“Subversion”页面显示三个子目录:branches/、tags/、trunk/ 和一个自述文件。自述文件可以使您对 Subversion 存储库有一个整体了解。您可以点击“访问选项”,查看 Subversion 客户端安装说明。您的本地计算机上必须安装有 Subversion 客户端。
  阅读全文
posted @ 2009-01-04 11:10 rogerfan 阅读(117) | 评论 (0)  编辑

     摘要: Eclipse的商业智能和报表工具(BIRT)项目是一个基于当今流行的Eclipse IDE的开源项目,用于在Java或者J2EE环境下构建和部署报表。该项目提供的主要下载项中包括以下内容:
BIRT设计器—用来构建报表。
Web查看器—一个用来部署报表的J2EE示例,其中包含了一个JSP标签库以降低与现存的web应用的耦合。
BIRT制图包—支持构建复杂的图表。
  阅读全文
posted @ 2008-09-05 14:29 rogerfan 阅读(1637) | 评论 (0)  编辑

     摘要: 我做Java编程大概有四年了,但我仍然处在从Java初级程序员向中级程序员过渡的阶段。 Java 包含的东西实在太多,三大体系 J2ME,J2SE,J2EE 每个都包含了大量的内容,身为一个 Java 程序员其实挺悲哀的,不仅要不停地学习那么多基础知识,还要应付层出不穷的框架。不光要学理论,还要注重实践。想想原来搞 Perl, PHP 的时候,哪来的那么多知识点。虽然我的Java水平不高,但我始终对要学的东西保持自己的看法,对于技术我总是抱着怀疑一切的态度,有时候甚至很固执,就算我是错的,我也要自己撞了南墙来体验。我的观点是:"好话左右不了我,我会自己判断的。大家都说好,我可能偏不喜欢"。

我曾经在编程技术上做过四次选择:
1:选择了 Velocity ,放弃了 JSP.
2: 选择了 Ruby ,放弃了 Python.
3: 选择了 Hivemind, 放弃了 Spring.
4: 选择了 Intellij, 放弃了 Eclipse.
  阅读全文
posted @ 2008-09-02 17:23 rogerfan 阅读(645) | 评论 (0)  编辑

     摘要: Torque是Apache的公开源代码项目,最开始是Turbine框架的组成部分,后面被独立出来作为一个单独的组件,归入了Apache的DB项目下。目前最新的版本是3.3。Torque的主要功能是实现对数据库的访问,方式是通过生成访问数据库的资源(包括创建数据库、表和初始化表的sql语句)和java代码、提供使用这些代码访问数据库的运行时(runtime)环境。关于Torque的详细介绍请大家参考http://db.apache.org/torque/。

目前Torque支持的数据库包括mysql、oracle、sqlserver、db2等,还包括对weblogic的数据源的支持,详细的支持列表大家可以到http://db.apache.org/torque/查找到,你还可以参考http://db.apache.org/torque/db-adapters.html编写你自己的数据库支持类。
  阅读全文
posted @ 2007-11-14 14:57 rogerfan 阅读(949) | 评论 (0)  编辑

     摘要: 名声显赫而招摇的数据持久层框架Hibernate,通过query.setFirstResult和query.setMaxResult来实现了对数据的分页,这个分页的实质在SqlServer中是TOP N的方法,Oracle是rownum
但是,Hibernate分页,并不能得到页脚,所以尚不通用。承接Jpage分页的方便性,写了这版分页,以方便已与群众。

下面,就是在Hibernate下的通用分页,属于Jpage分页的第三项功能。思路是定义一个Dao类,让其它数据库的dao都继承这个Dao类。  阅读全文
posted @ 2007-11-01 21:32 rogerfan 阅读(1233) | 评论 (2)  编辑

     摘要: 一、前言

  在企业的信息系统中,报表处理一直占比较重要的作用,本文将介绍一种生成PDF报表的Java组件--iText。通过在服务器端使用Jsp或JavaBean生成PDF报表,客户端采用超级连接显示或下载得到生成的报表,这样就很好的解决了B/S系统的报表处理问题。

  二、iText简介

  iText是著名的开放源码的站点sourceforge一个项目,是用于生成PDF文档的一个java类库。通过iText不仅可以生成PDF或rtf的文档,而且可以将XML、Html文件转化为PDF文件。

  iText的安装非常方便,在http://www.lowagie.com/iText/download.html - download 网站上下载iText.jar文件后,只需要在系统的CLASSPATH中加入iText.jar的路径,在程序中就可以使用iText类库了。  阅读全文
posted @ 2007-09-15 13:43 rogerfan 阅读(1805) | 评论 (6)  编辑

     摘要: 对于singleton bean,Spring容器知道bean何时实例化结束,何时销毁,Spring可以管理实例化结束之后,和销毁之前的行为,管理bean的生命周期行为主要未如下两个时机:

Bean全部依赖注入之后
Bean即将销毁之前

(1)依赖关系注入后的行为实现:
有两种方法:A.编写init方法 B.实现InitializingBean接口
  阅读全文
posted @ 2007-09-11 20:47 rogerfan 阅读(677) | 评论 (0)  编辑

     摘要: (一)Turbine简介
1. 概述
Turbine是Apache Jakarta项目中的一个开源的服务器端Java框架。任何支持Servlet2.2或以上规范的容器都可以运行Turbine应用程序。
当然,Turbine的最大优势是免费,并且向开发人员提供全部的源代码。

表示层 - Velocity or JSP
数据库层(持久层) - Turbine 使用 Torque, 但是也支持其他的持久层工具,如OJB或者 Hibernate。.
HTML 表单数据验证使用 "Intake"-Service.
日志(Logging) - Turbine 使用 Commons Logging并且支持众多的日志输出工具,如Log4J。(注:Scarab使用Log4j,不过有些问题。), jdk14 or simple file logging
基于服务的框架,在Turbine2.4及以后版本中使用和Avalon框架兼容的组件。   阅读全文
posted @ 2007-09-07 15:24 rogerfan 阅读(1699) | 评论 (0)  编辑

     摘要: Genuitec宣布:MyEclipse 6.0发布了。MyEclipse 6.0的发布极大的增强了Eclipse 3.3/Europa集成开发环境的功能,增加了Java 6支持的组件和加快了AJAX的开发率,革命性的提高了开发者的开发效率。

  另外,MyEclipse 6.0现在已经和Spring、JPA整合。这项整合,允许用户们创建实体管理器和事务beans, 生成实体和DOA。这些功能很大程度上多亏有了MyEclipse。  阅读全文
posted @ 2007-09-06 17:34 rogerfan 阅读(594) | 评论 (0)  编辑

     摘要: Hibernate一共包括了23个jar包,令人眼花缭乱。本文将详细讲解Hibernate每个jar包的作用,便于你在应用中根据自己的需要进行取舍。

下载Hibernate,例如2.0.3稳定版本,解压缩,可以看到一个hibernate2.jar和lib目录下有22个jar包:

hibernate2.jar:

Hibernate的库,没有什么可说的,必须使用的jar包   阅读全文
posted @ 2007-09-06 16:47 rogerfan 阅读(275) | 评论 (0)  编辑

     摘要: Ajax不是万能的,在适合的场合使用Ajax,才能充分发挥它的长处,改善系统性能和用户体验,绝不可以为了技术而滥用。Ajax的特点在于异步交互,动态更新web页面,因此它的适用范围是交互较多,频繁读取数据的web应用。现在来看几个Ajax的应用实例,读者可以了解如何使用Ajax技术改进现有的web应用系统。  阅读全文
posted @ 2007-09-05 17:19 rogerfan 阅读(1262) | 评论 (2)  编辑

     摘要: 前端时间在论坛里回了fins的一个帖子(http://daoger.javaeye.com/blog/40310)后,有几个网友想看我的例子代码,由于搞自己的一个小系统比较忙,在这里简单说一下dhtmlXGrid的使用心得!
我现在使用的版本是1.2(免费版),我的实现也大部分基于这个免费版,有哪位老兄能提供一份专业版的话更好了!
1.2免费版中的一些功能其实是1.1专业版中的!废话少说,切入正题!  阅读全文
posted @ 2007-09-03 13:51 rogerfan 阅读(6974) | 评论 (3)  编辑

     摘要: 前言
在java的应用领域,有许多成熟的开源软件,利用它们一样可以打造优越、灵巧的应用框架,本文首先将先介绍 所要构建的系统结构和借助的开源产品。然后逐一讲解各开源软件的具体运用。希望本文能给那些正在学习这些 开源软件的同行提供参考。续该文之后笔者将结合这些开源软件,借助实际项目,做更深入的应用讲解。

本文中涉及到的例子、源代码均经过本人调试,且正常运行的,但是不否定这其中有不合理的使用。运行环境: win2000 adivance server + tomcat5.0.25 + mysql-4.0.14-nt

第 1 章 整体框架
笔者在项目中所搭建的架构参考了 “Mark Eagle” 的《Wiring Your Web Application with Open Source Java》 一文中所阐述的架构思想。   阅读全文
posted @ 2007-06-28 13:45 rogerfan 阅读(966) | 评论 (0)  编辑