自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

lifesounds的专栏

前进、前进、向前进!

  • 博客(9)
  • 资源 (9)
  • 收藏
  • 关注

转载 java学习路子

。。。。。。。。    前面还有一些,没有转载过来,因为我觉得下面这部分对我更有价值。暂时没有时间,先转过来,待以后有时间的时候研究一下。        还有一个办法就是读开放源码的程序了。我们知道开放源码大都出自高手,他们设计合理,考虑周到,再加上有广大的程序员参与,代码的价值自然是字字珠叽,铿 锵有力(对不起,偶最近《金装四大才子》看多了)。学Java必读的两个开源程序就是Jive和Pet S

2007-07-24 13:20:00 1043

转载 osworkflow配置说明

 转载请说明出处。该文档的版权属于http://zstzah.blog.bokee.net该篇文档是osworkflow的第三篇,也是我撰写的三篇文档。在阅读osworkflow初始化之前有必要了解osworkflwo的一些基本配置。首先,我们要知道osworkflow中需要配置的两个重要文件,这两个重要文件的配置是在使用XMLWorkflowFactory类来处理配置文件时一

2007-07-23 15:35:00 1837

转载 liferay数据类型持久化

其实了解各种实现的方法,最好的莫过于读源码。(只要你有这个耐心) 我开始只想通过userId得到User对象,关于User对象的各种相关的类都在包com.liferay.portal.ejb里,你可以看到User开头的类有一堆,呵呵,其实我们这里只要涉及几个重要的类: UserHBM.java 这个是User类的一个翻版,里面的信息和User里的信息基本一致(没仔细看),Porta

2007-07-20 15:46:00 943

转载 liferay权限研究

 摘自:张老三专栏liferay中权限相关对象的关系图: liferay权限关系图 图中浅蓝底的对象表示一个多对多关系的中间表,它只保存了关联表的主键, Resource表示一个可通过权限控制的资源,它可能是一个按钮,也可能是一个Portlet。 这个图的数据结构有些复杂,按常规处理的话必然会导致性能问题,接下来我们看看liferay是如何来处理这个问题的。在 /html/portl

2007-07-16 15:44:00 1760

转载 表单常用技巧(四)

转自:蓝色理想 四、表单的常用技巧  这些常用技巧,往往是和事件以及脚本联系在一起,本文注重功能,至于脚本,就不一一详细分析。常见的技巧有:下拉跳转菜单,表单内容的聚焦。  1.下拉跳转菜单  在Dreamweaver中,可以很方便地建立基于表单的下拉菜单,为了兼顾非Dreamweaver用户,这里讲述一下这种技巧。 样例22:基于表单的下拉跳转菜单 <!--function

2007-07-10 09:08:00 588

转载 表单常用技巧(表单提交)

转自:蓝色理想 三、表单的提交  既然表单是用来采集用户输入的数据,那么,就应该保证用户的数据被准确地提交到预 定的地点,也就是说,我们在表单提交的时候,应该对用户的数据进行检验,一来可以避免用户误输数据,二来可以避免用户输入非法的,或者说不合格的数据;检 验合格以后,还要保证用户的数据提交到特定的程序。  1.数据的检验  数据的检验,通常有两种程序:客户端检验和服务器端检验。客户端检验,比较快

2007-07-10 09:04:00 695

转载 表单常用技巧(二)

转自:蓝色理想 二、表单外观的美化  很多时候,我们仅仅为了实现数据采集这个功能来使用表单,常看到的表单都是“千人一面”、毫无生气,本专题尝试着来改变这一现象,试图赋予表单一个丰富多彩的面貌。表单的外观,也是最为直接的花样,可以通过改变它来实现特效,本文分两个出发点来讲述:CSS魔法和图像魔法。  1、CSS魔法CSS,就是大家知道的层叠样式单,它可以定义页面元素的外观,包括字体样式、背景颜色和图

2007-07-10 09:02:00 617

转载 表单常用技巧(一)

 转自:蓝色理想一、表单概述  表单,在网页中的作用不可小视,主要负责数据采集的功能,比如你可以采集访问者的名字和e-mail地址、调查表、留言簿等等。1、表单的组成  一个表单有三个基本组成部分: 表单标签:这里面包含了处理表单数据所用CGI程序的URL以及数据提交到服务器的方法。 表单域:包含了文本框、密码框、隐藏域、多行文本框、复选框、单选框、下拉选择框和文件上传

2007-07-10 08:59:00 712

转载 osworkflow Query语法解析

摘自:银狐的专栏 查询 在OSWorkflow 2.6中,引入了新的ExpressionQuery API。注意:不是所有的workflow 的存储都支持查询。目前,Hibernate,JDBC和内存存储都支持查询。然而,hibernate存储不支持混合类型的查询(例如:一个历史和当前 步骤的查询信息的查询)。要执行查询,就要建立一个WorkflowExpressionQuery对象,然后在 Wo

2007-07-02 14:56:00 989

red5 chat 编译所用的jar

red5 chat 编译所需要的red5.jar 只有这个版本可以编译

2013-03-19

red5chat 多人视频 音频会议

package chat; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.red5.server.adapter.ApplicationAdapter; import org.red5.server.api.IConnection; import org.red5.server.api.IClient; import org.red5.server.api.IScope; import java.util.*; import org.red5.server.api.service.ServiceUtils; import org.red5.server.api.service.*; import org.red5.server.api.Red5; //import org.apache.commons.logging.Log; //import org.apache.commons.logging.LogFactory; public class Application extends ApplicationAdapter { public Map<String, CClient> clients = new HashMap<String, CClient>(); public class CClient{ String id = null; String pseudo = null; String role = null; String sexe = null; String status = null; String room=null; String world=null; public String getRole(){ return role; } public String getName(){ return pseudo; } public String getId(){ return id; } public String getSexe(){ return sexe; } public String getStatus(){ return status; } public String getRoom(){ return room; } public String getWorld(){ return world; } public void setRole(String _role){ role = _role; } public void setPseudo(String _pseudo){ pseudo = _pseudo; } public void setSexe(String _sexe){ sexe = _sexe; } public void setId(String _id){ id = _id; } public void setStatus(String _status){ status = _status; } public void setRoom(String _room){ room = _room; } public void setWorld(String _world){ world = _world; } } public boolean connect(IConnection conn, IScope scope, Object[] params) { // pseudo role sexe status room world; // Check if the user passed valid parameters. log.info( "**connection" ); log.info("**connect IConnection nombre params="+ params.length); log.debug("**connect IConnection nombre params="+ params.length); if (params == null || params.length != 6) { // NOTE: "rejectClient" terminates the execution of the current method! rejectClient("6 params expected."); } String pseudo=params[0].toString(); String id=conn.getClient().getId(); ((IServiceCapableConnection) conn).invoke("flashmethod", new Object[]{"connect", pseudo+id}); if (clients.get(pseudo) != null) { rejectClient("PSEUDO ALREADY IN USE"); } // we do create a new user ! log.info( "connection pseudo:"+pseudo); log.info( "connection id:"+id); CClient client = new CClient(); client.setId(id); client.setPseudo(pseudo); client.setRole(params[1].toString()); client.setSexe(params[2].toString()); client.setStatus(params[3].toString()); client.setRoom(params[4].toString()); client.setWorld(params[5].toString()); clients.put(pseudo, client); // clients["yarek"]=client conn.setAttribute("psuedo", pseudo); return true; } public void disconnect(IConnection conn, IScope scope) { log.info( "disconnect"); String pseudo=conn.getClient().getAttribute("pseudo").toString(); //log.info( "disconnect:"+pseudo); String id=conn.getClient().getId(); ((IServiceCapableConnection) conn).invoke("flashmethod", new Object[]{"disconnect", pseudo+id}); // Unregister user. //ServiceUtils.invokeOnAllConnections (scope, "removeuser", new Object[] {pseudo} ); if (pseudo==null) { clients.clear(); } else { CClient u = clients.get(pseudo); clients.remove(u); } // ISharedObject so = getSharedObject(scope, "users_so"); // so.endUpdate(); //IScope appScope = Red5.getConnectionLocal().getScope(); // Call original method of parent class. super.disconnect(conn, scope); } /* * public boolean roomConnect(IConnection iconnection, Object params[]){ if(!super.roomConnect(iconnection, params)){ //log.info((new StringBuilder()).append("Application failed to connect room: ").append(iconnection.getScope().getName()).toString()); return false; } else{ //log.info((new StringBuilder()).append("Application room connect initiated for room ").append(iconnection.getScope().getName()).append(": ").toString()); // We will add our client information right here CClient client = new CClient(); client.setId(params[0].toString()); client.setPseudo(params[1].toString()); client.setRole(params[2].toString()); client.setSexe(params[3].toString()); client.setStatus(params[4].toString()); iconnection.getClient().setAttribute("client", client); return true; } } */ public void callclient() { log.info("callclient called"); IConnection conn = Red5.getConnectionLocal(); if (conn instanceof IServiceCapableConnection) { IServiceCapableConnection sc = (IServiceCapableConnection) conn; log.info("flashmethod called"); sc.invoke("flashmethod", new Object[]{"One", 1}); } } public String debug (String msg){ return msg; } public double add(double a, double b){ return a + b; } }

2013-03-19

liferay in action

liferay in action pdf版本全。

2012-12-25

VMware P2V之使用详解(Ghost)

VMware P2V之使用详解(Ghost)

2010-03-15

xalan-j_2_7_1-bin.zip

xalan是Apache xml工程下的一个子工程,它实现了w3c xslt1.0和xpath1.0规范,是一个开放源代码的确xslt处理器.xalan提供了java和c++的版本.请用hjsplit2.0合并.

2009-12-04

essential snmp 2nd Edition 书中例子源码

essential snmp 2nd Edition 书中例子源码

2008-11-18

java与模式(清晰书签版)和随书源码.part2

java与模式(清晰书签版)和随书源码.part2 必须与java与模式(清晰书签版)和随书源码.part1下载后放到同目录之后才可解压

2008-11-14

java与模式(清晰书签版)和随书源码part1

java与模式(清晰书签版)和随书源码part1 必须与java与模式(清晰书签版)和随书源码.par2下载后放到同目录之后才可解压

2008-11-14

模仿线程"生产者与消费者"的例子

多线程的例子: 生产者和消费者模式的例子

2008-11-13

空空如也

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

TA关注的人

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