JAVA—咖啡馆

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

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

2010年12月23日 #

posted @ 2017-01-20 17:51 rogerfan 阅读(540) | 评论 (0)编辑 收藏

     摘要: 前面做了app微信支付的回调处理,现在需要做微信公众号的支付,花了一天多时间,终于折腾出来了!鉴于坑爹的微信官方没有提供Java版的demo,所以全靠自己按照同样坑爹的文档敲敲敲,所以记录下来,以供自己及后来人参考,不足之处,还请指正。

首先,我们贴出调用支付接口的H5页面,当然,在这个页面之前,还需要做很多其他的操作,我们一步一步的来。

坑爹的官方文档给了两个不同的支付接口,在微信公众平台开发中文档的“微信JS-SDK说明文档”中,给出的支付方式是下面被屏蔽的那一部分,而在商户平台的“H5调起支付API”中,又给了一份不同的接口,即下面未屏蔽正常使用的接口。关于坑爹的微信提供了两个不同的支付接口,网上搜索结果也是众说纷纷,所以,只有自己试了。当然,为了简单,我直接试了下面这一种,然后奇迹般的成功了。
  阅读全文
posted @ 2016-12-07 15:23 rogerfan 阅读(1456) | 评论 (0)编辑 收藏

     摘要: 前言

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

关于使用规则,请注意:

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 阅读(407) | 评论 (0)编辑 收藏

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

本文分为以下两部分:

1.开发模板消息SDK

2.构造模板消息并发送

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


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



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

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

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

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

     摘要: 在这篇微信公众平台开发教程中,我们将介绍如何开发模板消息,即如何用程序发送模板消息功能。
本文分为以下三个部分:

申请模板消息权限
开发模板消息SDK
构造模板消息体并发送

一、申请模板消息权限
模板消息的申请需账号已经开通微信支付权限。

在微信公众平台的后台,依次进入“功能->添加功能插件->模板消息”,即可申请模板消息。

  阅读全文
posted @ 2016-09-23 16:44 rogerfan 阅读(318) | 评论 (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 阅读(460) | 评论 (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 阅读(376) | 评论 (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 阅读(484) | 评论 (0)编辑 收藏

     摘要: CDN是什么?


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


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


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

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

     摘要: 实施准备:

安装如下应用


1、百度云同步客户端(优点:有回收站,不小心删除的话可以收回,有历史版本管理,不贵,1年3块,可以查看100条历史记录)

2、VisualSVN-Server-2.7.2.msi(建立资源仓库,同步的目标)

3、TortoiseSVN-1.8.2.24708-win32-svn-1.8.3.msi

如有必要,请确保VisualSVN-Server 和 TortoiseSVN对应的Subversion版本一致,后续将介绍如何 自动 commit
  阅读全文
posted @ 2016-05-13 09:34 rogerfan 阅读(842) | 评论 (0)编辑 收藏

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

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

posted @ 2016-04-22 17:58 rogerfan 阅读(578) | 评论 (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 阅读(416) | 评论 (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 阅读(309) | 评论 (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 阅读(330) | 评论 (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)编辑 收藏

     摘要: 关键字:微信公众平台开发
作者:方倍工作室



在这篇微信公众平台开发教程中,我们假定你已经有了PHP语言程序、MySQL数据库、计算机网络通讯、及HTTP/XML/CSS/JS等基础。

我们将使用微信公众账号方倍工作室作为讲解的例子,二维码见底部。

本系列教程将引导你完成如下任务:

创建新浪云计算平台应用
启用微信公众平台开发模式
了解数据收发原理及消息格式
开发实现微信天气预报功能  阅读全文
posted @ 2016-03-22 09:41 rogerfan 阅读(297) | 评论 (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 阅读(241) | 评论 (0)编辑 收藏

     摘要: 1. 环境搭建

  1.1 下载

    http://www.sonatype.org/nexus/
    NEXUS OSS [OSS = Open Source Software,开源软件——免费]
    NEXUS PROFESSIONAL -FREE TRIAL [专业版本——收费]。
    所以选择NEXUS OSS  阅读全文
posted @ 2016-03-01 17:36 rogerfan 阅读(292) | 评论 (0)编辑 收藏

     摘要: 分析函数2(Rank, Dense_rank, row_number)



目录
===============================================
1.使用rownum为记录排名
2.使用分析函数来为记录排名
3.使用分析函数为记录进行分组排名

一、使用rownum为记录排名:

在前面一篇《Oracle开发专题之:分析函数》,我们认识了分析函数的基本应用,现在我们再来考虑下面几个问题:

①对所有客户按订单总额进行排名
②按区域和客户订单总额进行排名
③找出订单总额排名前13位的客户
④找出订单总额最高、最低的客户
⑤找出订单总额排名前25%的客户  阅读全文
posted @ 2016-02-26 13:01 rogerfan 阅读(316) | 评论 (0)编辑 收藏

posted @ 2015-12-30 10:09 rogerfan 阅读(515) | 评论 (0)编辑 收藏

     摘要: 因为在jsf要用到jstl标签,这里做有效的整理。在使用这些函数之前必须在JSP中引入标准函数的声明

<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
下面是JSTL中自带的方法列表以及其描述  阅读全文
posted @ 2015-12-19 13:48 rogerfan 阅读(471) | 评论 (0)编辑 收藏

posted @ 2015-09-26 16:49 rogerfan 阅读(354) | 评论 (0)编辑 收藏

     摘要: 私服是什么
私服,私有服务器,是公司内部Maven项目经常需要的东东,不总结一下,不足以体现出重视。Nexus是常用的私用Maven服务器,一般是公司内部使用。下载地址是http://www.sonatype.org/nexus/go。默认端口8081,这里我选择最新版nexus-2.5.0-04。

常用功能

Nexus常用功能就是:指定私服的中央地址、将自己的Maven项目指定到私服地址、从私服下载中央库的项目索引、从私服仓库下载依赖组件、将第三方项目jar上传到私服供其他项目组使用。

开启Nexus服务后访问url地址http://localhost:8081/nexus/(推荐使用自己的ip地址),之后登录系统,用户名密码分别是:admin/admin123.

最频繁的就是点击左侧菜单栏的Repositories按钮
  阅读全文
posted @ 2015-09-19 10:35 rogerfan 阅读(453) | 评论 (0)编辑 收藏

     摘要: 1.为什么要用VisualSVN Server,而不用Subversion?

回答:

因为如果直接使用Subversion,那么在Windows 系统上,要想让它随系统启动,就要封装SVN Server为windws service,还要通过修改配置文件来控制用户权限,另外如果要想以Web方式【http协议】访问,一般还要安装配置Apache,如果是新手,岂不是很头痛?而VisualSVN Serve集成了Subversion和Apache,省去了以上所有的麻烦。安装的时候SVN Server已经封装为windws service,Apache服务器的配置也只是在图像界面上,指定认证方式、访问端口等简单操作;另外,用户权限的管理也是通过图像界面来配置。

2.为什么不用TFS?

回答:

因为我们一开始就是用Subversion和TortioseSVN,所以就没有更换其他的软件。至于TFS至今没有用过,其实,我只是看了一些的文章而已,对它也不了解。

3.VisualSVN Serve  阅读全文
posted @ 2015-09-11 16:27 rogerfan 阅读(1222) | 评论 (0)编辑 收藏

     摘要: 本文是关于MySQL数据库性能优化方面的问题,希望对初中级MySQL DBA以及其他对MySQL性能优化感兴趣的朋友们有所帮助。
在平时被问及最多的问题就是关于MySQL数据库性能优化方面的问题,所以最近打算写一个MySQL数据库性能优化方面的系列文章,希望对初中级MySQL DBA以及其他对MySQL性能优化感兴趣的朋友们有所帮助。

数据库属于IO密集型的应用程序,其主职责就是数据的管理及存储工作。而我们知道,从内存中读取一个数据库的时间是微秒级别,而从一块普通硬盘上读取一个IO是在毫秒级别,二者相差3个数量级。所以,要优化数据库,首先第一步需要优化的就是IO,尽可能将磁盘IO转化为内存IO。本文先从MySQL数据库IO相关参数(缓存参数)的角度来看看可以通过哪些参数进行IO优化:

•query_cache_size/query_cache_type (global)

Query cache作用于整个MySQL Instance,主要用来缓存MySQL中的ResultSet,也就是一条SQL语句执行的结果集,所以仅仅只能针  阅读全文
posted @ 2015-09-10 19:22 rogerfan 阅读(399) | 评论 (0)编辑 收藏

     摘要: mysql cache功能分析:

1 mysql的cache功能的key的生成原理是:把select语句按照一定的hash规则生成唯一的key,select的结果生成value,即 key=>value。所以对于cache而言,select语句是区分大小写的,也区分空格的。两个select语句必须完完全 全一致,才能够获取到同一个cache。

2 生成cache之后,只要该select中涉及到的table有任何的数据变动(insert,update,delete操作等),相 关的所有cache都会被删除。因此只有数据很少变动的table,引入mysql 的cache才较有意义。关于这方面的测试,可以参考:《Query Cache,看上去很美》一文。

所以,mysql的cache功能只适用于下列场合:数据变动较少,select较多的table。

那么。在复杂的系统中,如何使用mysql的cache功能呢,基本方法如下:

配置query_cache_type,同时改写程序。

quer  阅读全文
posted @ 2015-09-10 19:20 rogerfan 阅读(428) | 评论 (0)编辑 收藏

     摘要: 开发的应用采用F5负载均衡交换机,F5将请求转发给5台hp unix服务器,每台服务器有多个webserver实例,对外提供web服务和socket等接口服务。之初,曾有个小小的疑问为何不采用开源的 apache、Nginx软件负载,F5设备动辄几十万,价格昂贵?自己一个比较幼稚的问题,后续明白:F5是操作于IOS网络模型的传输 层,Nginx、apache是基于http反向代理方式,位于ISO模型的第七层应用层。直白些就是TCP UDP 和http协议的区别,Nginx不能为基于TCP协议的应用提供负载均衡。


了解了二者之间的区别于应用场景,对Nginx产生浓厚的兴趣,阅读张宴的<实战Nginx>(这个85年的小伙子年轻有为羡慕+妒忌),搞 明白了大致原理和配置,Ubuntu10.10,window下对Nginx+tomcat负载均衡做了配置尝试,将全部请求转发到tomcat,并未做 静态,动态分开,图片防盗链等配置。  阅读全文
posted @ 2015-03-01 11:18 rogerfan 阅读(1511) | 评论 (0)编辑 收藏

     摘要: 就目前形势来看,Web App 正是眼下的一个趋势和潮流,但是,对于Web App的设计可能大家有的不是很了解,下面就将整理好的网页设计的技巧奉献给大家  阅读全文
posted @ 2015-02-13 09:23 rogerfan 阅读(1671) | 评论 (0)编辑 收藏

posted @ 2014-07-16 11:58 rogerfan 阅读(2986) | 评论 (0)编辑 收藏

     摘要: 1、 为什么使用Nexus

如果没有私服,我们所需的所有构件都需要通过maven的中央仓库和第三方的Maven仓库下载到本地,而一个团队中的所有人都重复的从maven仓库下 载构件无疑加大了仓库的负载和浪费了外网带宽,如果网速慢的话,还会影响项目的进程。很多情况下项目的开发都是在内网进行的,连接不到maven仓库怎么 办呢?开发的公共构件怎么让其它项目使用?这个时候我们不得不为自己的团队搭建属于自己的maven私服,这样既节省了网络带宽也会加速项目搭建的进程, 当然前提条件就是你的私服中拥有项目所需的所有构件。

2、Nexus下载

下载地址:http://www.sonatype.org/nexus/go

3、Nexus启动

我下载的是zip包,解压后进入\nexus-2.1.2-bundle\nexus-2.1.2\bin\jsw\,根据操作系统类型选择文件夹,我选的是windows-x86-32文件夹,进入后可看到如下所示bat文件。  阅读全文
posted @ 2014-05-26 10:40 rogerfan 阅读(2239) | 评论 (0)编辑 收藏

     摘要: 一、常见的Java内存溢出有以下三种:



1. java.lang.OutOfMemoryError: Java heap space ----JVM Heap(堆)溢出
JVM在启动的时候会自动设置JVM Heap的值,其初始空间(即-Xms)是物理内存的1/64,最大空间(-Xmx)不可超过物理内存。

可以利用JVM提供的-Xmn -Xms -Xmx等选项可进行设置。Heap的大小是Young Generation 和Tenured Generaion 之和。

在JVM中如果98%的时间是用于GC,且可用的Heap size 不足2%的时候将抛出此异常信息。

解决方法:手动设置JVM Heap(堆)的大小。



2. java.lang.OutOfMemoryError: PermGen space ---- PermGen space溢出。
PermGen space的全称是Permanent Generation space,是指  阅读全文
posted @ 2014-05-16 17:12 rogerfan 阅读(2539) | 评论 (0)编辑 收藏

     摘要: PowerDesigner对数据库反向建立PDM可以使用sql方式,这个很简单,直接导入建表sql文件就可以了。
要说的是使用数据库做源的建模方式,以前弄过一次,很久没弄忘了,这次要弄在网上搜了一下,结果不太满意,于是自己重新整理了一个步骤,贴出来共享一下,也算给自己做个备忘。

注意事先安装好Oracle客户端,并且正确配置好tns。

1、 新建PDM:
选择菜单File->New Model,【Model type】选择Physical Data Model,【Model name】 自由命名,【DBMS】选择“ORACLE Version 10gR2”,OK。  阅读全文
posted @ 2014-02-10 09:29 rogerfan 阅读(2325) | 评论 (0)编辑 收藏

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

     摘要: 有时候当我们注册完的时候系统会提示有一封邮件发送到了你的邮箱,如何做呢?
就要用到spring+velocity+javamail这3个玩意,其实只用了spring,因为其他2个都被spring集成了。
先看代码   阅读全文
posted @ 2013-08-29 10:19 rogerfan 阅读(3037) | 评论 (3)编辑 收藏

     摘要: 安装:
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 阅读(2389) | 评论 (0)编辑 收藏

     摘要: tomcat的运行模式有3种.修改他们的运行模式.3种模式的运行是否成功,可以看他的启动控制台,或者启动日志.或者登录他们的默认页面http://localhost:8080/查看其中的服务器状态。

1)bio

默认的模式,性能非常低下,没有经过任何优化处理和支持.

2)nio

利用java的异步io护理技术,noblocking IO技术.

想运行在该模式下,直接修改server.xml里的Connector节点,修改protocol为

阅读全文
posted @ 2013-08-01 08:51 rogerfan 阅读(1972) | 评论 (0)编辑 收藏

     摘要: HTTP Post慢速DOS攻击第一次在技术社区被正式披露是今年的OWASP大会上,由Wong Onn Chee 和 Tom Brennan共同演示了使用这一技术攻击的威力。他们的slides在这里:

http://www.darkreading.com/galleries/security/application-security/228400167/slide-show-ddos-with-the-slow-http-post-attack.html

这个攻击的基本原理如下:

针对任意HTTP Server,建立一个连接,指定一个比较大的content-length,然后以很低的速度发包,比如10-100s发一个字节,hold住这个连接不断开。如果客户端持续建立这样的连接,那么服务器上可用的连接将很快被占满,从而导致DOS.

这一攻击引起我注意的原因有这几点:

1. 它可以针对任意Web服务。HTTP协议在接收到request之前是无法对请求内容作校验的,所以即使你的Web应用没有可用form  阅读全文
posted @ 2013-08-01 08:50 rogerfan 阅读(2261) | 评论 (0)编辑 收藏

posted @ 2013-07-15 10:50 rogerfan 阅读(3306) | 评论 (0)编辑 收藏

     摘要: 前几天客户提出要强制使用HTTPS方式访问Tomcat中的相关项目,于是研究了下,现将具体的步骤写下:

主要分2步:让tomcat能使用https--->强制使用https访问

1.让tomcat能使用https

A.在运行命令JAVA_HOME/bin/keytool -genkey -alias tomcat -keyalg
RSA -keystore C:\Tomcat\GMAE3.0Tomcat\tomcat.keystore
这样就生成了证书,将证书放到合适的地方(任意地方都可以)

B.打开tomcat目录下的server.xml文件并找到关于ssl的相关段
  阅读全文
posted @ 2013-06-04 11:29 rogerfan 阅读(1053) | 评论 (0)编辑 收藏

posted @ 2013-03-31 05:17 rogerfan 阅读(1294) | 评论 (0)编辑 收藏

     摘要: 最近做一个项目,客户希望可以自己选择想要查看的列表,这样就不好办了,选择列表的名字他们也想自定义,没办法这就需要查看数据表中字段,中文说明,默认标志了。在网上查了部分资料但是发现粘上去的代码都存在问题,无奈只好自己修改了一下,代码如下:

如下代码能正常运行,都是网上查找资料最后拼凑总结出来的。条件就自己加吧。网上好像也有不少类型的东西,这里留着以备不时只需!  阅读全文
posted @ 2013-03-31 04:59 rogerfan 阅读(844) | 评论 (0)编辑 收藏

     摘要: 如果做表单自定义或做数据库管理软件,就必须能自动取得某个用户下数据库的一些信息。比较有用的有:
表名,字段英文名,字段中文名,字段的类型,字段的长度等。其中,字段的中文名按照数据库的记录是无法取到的,但是我们可以变通一下,
通过comments去记录字段中文名。
//取得该用户下所有的表
select * from user_tables;
//取得表名为Sysuser的注释信息
select * from user_tab_comments where table_name = 'SYSUSER';
//取得该用户下表名为Sysuser表的结构
select * from user_tab_columns where table_name='SYSUSER';
//取得该用户下表名为sysuser表中字段的注释信息
select * from user_col_comments where table_name = 'SYSUSER';  阅读全文
posted @ 2013-03-31 04:46 rogerfan 阅读(2458) | 评论 (0)编辑 收藏

     摘要: 目标:
本文主要介绍PowerDesigner中概念数据模型 CDM的基本概念。

一、概念数据模型概述
数据模型是现实世界中数据特征的抽象。数据模型应该满足三个方面的要求:
1)能够比较真实地模拟现实世界
2)容易为人所理解
3)便于计算机实现

概念数据模型也称信息模型,它以实体-联系(Entity-RelationShip,简称E-R)理论为基础,并对这一理论进行了扩充。它从用户的观点出发对信息进行建模,主要用于数据库的概念级设计。

通常人们先将现实世界抽象为概念世界,然后再将概念世界转为机器世界。换句话说,就是先将现实世界中的客观对象抽象为实体(Entity)和联系(Relationship),它并不依赖于具体的计算机系统或某个DBMS系统,这种模型就是我们所说的CDM;然后再将CDM转换为计算机上某个DBMS所支持的数据模型,这样的模型就是物理数据模型,即PDM。  阅读全文
posted @ 2013-02-28 21:53 rogerfan 阅读(581) | 评论 (0)编辑 收藏

     摘要: 需求获取与分析

a)不要在需求获取和分析过程中吝啬你的时间,对需求的明确可以减少你以后设计和开发的改动,提高你所开发软件的可用性。你对它的轻视只可能换来对你的产品修改、计划延迟等方面的惩罚。

b)要使尽各种办法,尽量多的获取客户的需求,主要的方法包括:仔细阅读合同标书和市场资料、与客户直接的谈话交流、让用户观看或使用原型界面提出意见。另外不要忽略内部客户的一些合理需求如测试人员等。

c)进行正规的需求管理,如建立需求文档或使用需求管理数据库等。在文档或数据库中要保留每个需求的详细描述及其来源,最好还能记录一些其他细节信息(如用户的一些原始描述等),另外别忘了确定每个需求的优先级。

d)在设计前组织你的设计人员开会进行需求理解和讨论。由于阅读文字性的信息容易造成一些误解和歧义,最好让需求制定者组织会议,给相关人员(如各子系统设计人员)讲解需求并进行设计讨论。这样做有两个好处,一是避免设计与需求出现偏差,二是激发设计人员产生初步的设计想法。
  阅读全文
posted @ 2013-01-25 15:30 rogerfan 阅读(437) | 评论 (0)编辑 收藏

     摘要: 一:编写目的
本文档的编写旨在探寻规范的软件开发流程、加快软件开发速度、提高软件开发质量、降低项目综合成本。
IT界有一句格言:"You can do it right; you can do it fast; you can do it cheap. Pick two." 而我们要做的就是:提供优质服务、项目周期短、成本低廉
二:总体说明
项目从用户需求说明书的提出,到系统的第一个完整版本的交付使用经历了若干或复杂或简单的过程,但不管项目大小如何一般需要经历以下几个步骤:
1. 需求分析。
2. 撰写需求规格说明书
3. 总体设计
4. 详细设计
5. 编码实现
6. 测试、试运行、上线
7. 验收
8. 日常维护
9. (下一个版本的循环开发)  阅读全文
posted @ 2013-01-25 15:27 rogerfan 阅读(567) | 评论 (0)编辑 收藏

     摘要: 结合本人这几年在项目管理上的总结和得失,本人认为优秀的项目经理要有责任心、要善于沟通、能引导客户、能预测风险、 善于总结、 随需应变、善于激励团队、同时也要懂技术。

  责任心

  作为项目经理首先要有责任心。有了责任心,你会把项目当成自己的孩子,倾注你的全部心血。责任,会驱使你关注项目的进度,千方百计去寻找各种资源,推着项目往前走。甚至吃饭、睡觉,走路、坐车,都想着整个项目团队,想着他们还在加班加点,你可能很自然地给他们带点夜宵、冲杯咖啡,犒劳员工。

  有了项目经理做表率,整个团队会鼎力支持工作,士气非常高,技术问题也迎刃而解,得到领导称赞和客户肯定,项目将朝着预想的方向发展。

  许多开发人员抱怨项目经理一天没干多少事情,而工资还挺高。其实,项目经理一刻都没闲着,他总在想着怎样更好的执行项目计划,调整项目进度等,脑子一直在不停地运转,所以说项目经理是心累。  阅读全文
posted @ 2013-01-23 14:57 rogerfan 阅读(484) | 评论 (0)编辑 收藏

     摘要: 项目经理是项目的领头人,是项目团队灵魂型的人物。项目经理需要具备怎样的良好习惯方能更有助于团队、项目和自我的成功,史蒂芬·柯维博士在《高效能人士的七个习惯》一书中阐述了高效能人事所需要具备的七个习惯:积极主动、以终为始、要事第一、双赢思维、知彼解己、统合综效、不断更新(关于这七个习惯的内涵本文不作描述,有爱好的读者可以去参阅《高效能人士的七个习惯》这本书)。无疑,这七个习惯也是优秀项目经理所需要具备的。然而,从作者多年的工作经验来看,作为项目经理这样一个特别的角色,除了需要具备上述七个习惯外,还需要具备如下与其职位息息相关的六个习惯:目标导向、全局思维、计划先行、关注意点、客户至上和注意团队。以下对这六个习惯进行剖析。
  阅读全文
posted @ 2013-01-23 14:54 rogerfan 阅读(359) | 评论 (0)编辑 收藏

     摘要: 项目背景及概要
  政府项目,项目金额百万级别。属于电子政务范畴,并同时需要开发多套部门应用系统。
  项目启动
  项目启动很重要,这是项目经理判断项目操作的一个最基本点,由于项目性质是政府,目标客户是官僚机构,我一开始并没有去做调研,而是先通过拉关系,建立兄弟般的友情开始,从聊天中我摸清了政府对这个项目的一些基本看法,这对我们实施可是有巨大帮助!属于指导性纲领。
  项目沟通机制
  对于官僚机构,他们最喜欢的就是汇报,有领导的欲望,所以我制定的沟通,每星期碰面一次,每周以工作报告形式汇报。并制定了双方领导通报机制,毕竟政府项目多是领导工程(一把手工程)
  阅读全文
posted @ 2013-01-23 13:36 rogerfan 阅读(515) | 评论 (0)编辑 收藏

     摘要: 为food项目配置了项目管理平台,综合了trac、dotProject、Redmine等几个开源平台,最终选择了Redmine。项目主页 http://www.redmine.org



下面是安装方法:

一、Redmine安装。

1、准备

安装之前请阅读:RailsInstaller简化了Rails在Windows上的安装过程

英文原文:RailsInstaller Provides Easy Rails on Windows Installation

作者:Rob Bazinet 译者:张龙

RailsInstaller向Windows开发者提供了一种便捷的方式以轻松、快速创建Ruby on Rails 3应用。到目前为止,Windows开发者需要自己搭建好Ruby、RubyGems、Rails以及SQLite才能开始创建Rails应用。多亏了来自Engine Yard的Nic Williams博士及其团队,现在一切都变得简单异常。  阅读全文
posted @ 2012-12-26 10:19 rogerfan 阅读(1621) | 评论 (0)编辑 收藏

     摘要: 1. 介绍

Maven是Java开发者中流行的构建工具,Maven的好处之一是可以帮助减少构建应用程序时所依赖的软件构件的副本,Maven建议的方法是将所有软件构件存储于一个叫做repository的远程仓库中。

Maven会从ibiblio.org中的公用仓库中同步构件,这个公用仓库下载缓慢、不稳定,并且不包含一些构件的最新版本,而且不能上传团队私有的构件。通过设置内部Maven仓库,团队可以更有好地利用Maven仓库的优势并且克服使用ibiblio上的仓库时的缺点。

本文着眼于Maven仓库工具应提供的一些功能,列出了选择Maven仓库工具的标准,说明了使用Artifactory设置Maven仓库的相关步骤。在Linux和Windows中设置Maven仓库的过程是相同的,少数不同点在文中已经用高亮显示,本文列出了与这个Maven仓库的使用有关的POM文件的范例,用截图来向用户阐述如何设置Maven仓库,Maven和artifactory配置范例也有列出。  阅读全文
posted @ 2011-10-28 11:08 rogerfan 阅读(1439) | 评论 (0)编辑 收藏

     摘要: SOAP原意为Simple Object Access Protocol(简单对象访问协议),是一个用于分布式环境的、轻量级的、基于XML进行信息交换的通信协议(SOAP is an XML based protocol used to exchange information throughout a distributed environment)。

以下是w3c网站上的定义:

SOAP Version 1.2 (SOAP) is a lightweight protocol intended for exchanging structured information in a decentralized, distributed environment. It uses XML technologies to define an extensible messaging framework providing a message construct that can be exchanged over a variety of underlyi  阅读全文
posted @ 2011-09-24 10:22 rogerfan 阅读(1612) | 评论 (0)编辑 收藏

     摘要: 在传统的RPC编程接口逐渐淡出人们视线的同时,新的、更便于使用且附加了更多特性的RPC编程接口也不断涌现,CORBA作为分布式对象计算技术的典范,在很长一段时间内极大地吸引了大家的注意,但是由于CORBA规范试图覆盖过多的内容,使得CORBA显得过于复杂,也极大地限制了CORBA的应用范围,本系列将向大家介绍几种轻量级的,更适于在Java开发中使用的RPC编程接口:RMI、XML-RPC、SOAP。

RMI(Remote Method Invocation)
与本系列将介绍的其它两种RPC编程接口不同,RMI(Remote Method Invocation)显得有些老旧,它是在Java-IDL加入J2SE之前被引入的。RMI开发流程与CORBA如出一辙(从出现的时间上无法确定RMI是否是按照CORBA规范定制的),因此,其开发过程相对比较烦琐,但是由于RMI是EJB的基础,因此,它在Java开发中具有十分重要的地位。

以下是创建远程方法调用的5个步骤:

1. 定义一个扩展了Remote接口的接口,该接口中的每一个方法必  阅读全文
posted @ 2011-09-24 10:21 rogerfan 阅读(4456) | 评论 (0)编辑 收藏

     摘要: XML-RPC是一种简单的,轻量级的通过HTTP协议进行RPC通信的规范。本文以Apache XML-RPC 3.0为基础,对XML-RPC的基本原理及Apache XML-RPC 3.0的主要特性进行了讨论和分析。

  阅读全文
posted @ 2011-09-24 10:16 rogerfan 阅读(3178) | 评论 (0)编辑 收藏

     摘要: 现在流行安卓系统,鉴于囊中羞涩,买不起手机,所以我就在网上找了个安卓模拟器,特整理了一下,发给大家,对安卓系统感兴趣的朋友不妨拿来解解馋吧。
方法如下:
一.安装java JDK 1.6,并配置以下三个环境变量:
下载地址
1.添加
变量名:JAVA_HOME
变量值:C:\Program Files\Java\jdk1.6.0_10
  阅读全文
posted @ 2011-08-25 14:41 rogerfan 阅读(3550) | 评论 (2)编辑 收藏

     摘要: 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 阅读(738) | 评论 (0)编辑 收藏