在tomcat下开发Red5应用

May 10th, 2010 by 施 常亮 | Permalink

客户端和服务器端的方法相互调用比较重要,在线列表基本上全是用这种方式实现的,当然也有使用RemoteSharedObject来实现的,但本人不太喜欢用RemoteSharedObject,只是用RemoteSharedObject来进行广播等操作。

1.编辑第二篇(抛弃LCDS和FMS,在tomcat下开发Red5应用(第二篇)-建立新的Red5应用)中的Application.java:

Java代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
package red5.example.red5server;
 
import org.red5.server.adapter.ApplicationAdapter;
import org.red5.server.api.IConnection;
import org.red5.server.api.Red5;
import org.red5.server.api.service.IServiceCapableConnection;
 
public class Application extends ApplicationAdapter {
 
	private String userName;
 
	//客户端调用的方法
	public String callFromClient(String userName) {
		this.userName = userName;
		callClient();
		return "Hello:"+userName;
	}
 
	//服务器端调用客户端的方法
	public void callClient() {
		IConnection conn=Red5.getConnectionLocal();
		if (conn instanceof IServiceCapableConnection) {
			IServiceCapableConnection sc = (IServiceCapableConnection) conn;
	        sc.invoke("callFromServer", new Object[]{"hi,"+userName+" this message from server"});
		}
	}
}

PS:记得将编译好的class文件放入webapps\ROOT\WEB-INF\classes。

2.编辑第二篇(抛弃LCDS和FMS,在tomcat下开发Red5应用(第二篇)-建立新的Red5应用)中的red5client001.mxml:

Xml代码

1.
2.
3.    
4.        
44.    
45.

将编译好的swf拷贝到webapps\red5Server目录下。

3.重新启动tomcat 运行浏览器,在地址栏输入http://localhost:8080/red5Server/red5client001.html 看到弹出窗口了吧。

客户端和服务器端方法相互调用就这么简单,实际上原有的基于FMS开发的Flex客户端代码修改量是非常小的。在下一篇将讲解客户端和服务器端方法调用中的参数传递。

SWT学习站点

May 10th, 2010 by 施 常亮 | Permalink

http://www.java2s.com/CN/Code/Java/SWT-JFace-Eclipse/Droppeddatatypedependsontargetitemintable.htm

http://www.java2s.com/CN/Code/Java/SWT-JFace-Eclipse/AfacadeforthesaveFileDialog.htm

swt 打印http://www.jb51.net/article/18829.htm

删除Oracle 10g中的垃圾表 例如 Bin$×××××××××

May 10th, 2010 by 施 常亮 | Permalink

在使用hibernate生成工具生成*.hbm.xml在Oracle10g数据库中发现了Bin$×××××××××的表。在网络上查询
发现是oracle的垃圾表,使用drop无法删除

清除的方法如下:
purge table origenal_tableName;
purge index origenal_indexName;

查询垃圾信息,可以用如下SQL语句:
SELECT t.object_name,t.type ,t.original_name FROM user_recyclebin t;

另外还发现,服务器端好像看不到这些垃圾表,只有客户端才能看到。不知道为什么。
反正有办法删除了。记录下。

2009/11/19追记
直接使用PURGE recyclebin;命令可以删除所有垃圾表。

浏览器地址栏前边的图标的添加方法

May 9th, 2010 by 施 常亮 | Permalink

struts2的s:iterator标签详解

May 8th, 2010 by 施 常亮 | Permalink

struts2的s:iterator 可以遍历 数据栈里面的任何数组,集合等等 以下几个简单的demo:
s:iterator 标签有3个属性:
value:被迭代的集合
id :指定集合里面的元素的id
status 迭代元素的索引

1:jsp页面定义元素写法 数组或list


A

打印结果为: 1A2A3A4A5A
2:索引的用法
如果指定了status,每次的迭代数据都有IteratorStatus的实例,它有以下几个方法
int getCount()返回当前迭代了几个元素
int getIndex()返回当前元素索引
boolean isEven()当然的索引是否偶数
boolean isFirst()当前是否第一个元素
boolean isLast()
boolean isOdd()当前元素索引是否奇数


现在的索引是奇数为:

当前元素值:

3:遍历map
value可以直接定义为:
value=”#{“1″:”a”,”2″:”b”}”
每个元素以都好隔开。元素之间的key和value 冒号隔开
value也可以是数据栈里面的java.util.Map对象
遍历写法如下:

key :
value:

当然key 和value 都可以使java 的 Object
3:遍历数据栈.简单的List类,
List
class Attr{String attrName;String getAttrName(){return “123”;}}



当然value 还可以写成 value=”%{label}” label可以有.操作
label的属性List 可以写成value=”%{label.list}” 相当于:getLabel().getList();
4:遍历2个list;
List attrN {color,size,style}
List attrV {red,20,gay}
这2个list的元素是一一对应的,一个attrN对应一个attrV

index is :
attrName is : or
attrName is :

原文来自:http://blog.sina.com.cn/s/blog_49d3ec2f0100hagw.html

oracle中使用SQL语句修改字段类型

May 8th, 2010 by 施 常亮 | Permalink

表中没有数据:
直接这样就可以了

alter table 表名 modify (字段名 类型) eg:alter table student (id number(4));

如果原表中存在data那么方法就大不相同了,请看!!!

/*修改原字段名*/

ALTER TABLE 表名 RENAME COLUMN 字段名 TO 字段名1;

/*添加一个和原字段同名的字段*/

ALTER TABLE 表名 ADD 字段名 VARCHAR2(30);

/*

将原来的数据更新到新字段中

这是要注意,一定要显示进行数据类型转换(不同于MSSQL)

*/

UPDATE 表名 SET 字段名 = CAST(字段名1 AS VARCHAR2(30));

/*删除原来的备份字段*/

ALTER TABLE 表名 DROP COLUMN 字段名1;

原文链接http://www.itmop.com/network/sql/oracle/02024700.html

几个有用的js脚本

May 8th, 2010 by 施 常亮 | Permalink

用javascript对中文的unicode编码和反编码


function unicode(s){
var len=s.length;
var rs="";
for(var i=0;i<len;i++){
var k=s.substring(i,i+1);
rs+="&#"+s.charCodeAt(i)+";";
}
return rs;
}

function runicode(s){
var k=s.split(";");
var rs="";
for(i=0;i<k.length;i++){
var m=k.replace(/&#/,"");
rs+=String.fromCharCode(m);
}
return rs;
}
alert(unicode("我是一头猪"));//我是一头猪
alert(runicode("我是一头猪"));

图像尺寸加载后修改,以适应页面宽度


function foo(){
var k=document.all;
for(var i=0;i500){ //500是最大宽度
var height=Math.ceil(k.height*500/k.width);
k.height=height;
k.width="500";
}
}
}
}





一个倒计时功能,5分种提醒,0秒自动提交


<!--
var time="3600";
var atime="300"; //定义时间
var etime="0";
function count(){
setTimeout("count()",1000); //1000毫秒=1秒加载一次计数
document.form1.rest.value=format(Math.floor(time/60))+"分:"+format(time%60)+"秒";
time--;
if(time==atime){
alert("还剩5分钟");
}
if(time==etime-1){
alert("时间到,已经自动提交");
document.form1.submit();
}
}

function format(time){
var len=time.toString().length;
for(i="0";i

一个简单的计算器

解压版/免安装版MySQL配置全解

May 8th, 2010 by 施 常亮 | Permalink

一 下载MySQL

http://dev.mysql.com/downloads/mysql/5.0.html

解压MySQL(F:\Program Files\MySQL\)MySQL安装目录

二 新建my.ini

在F:\Program Files\MySQL\下建立my.ini文件,内容为

my.ini

[mysqld]

# 设置mysql的安装目录

basedir=F:\\Program Files\\MySQL

# 设置mysql数据库的数据的存放目录,必须是data,或者是\\xxx-data

datadir=F:\\Program Files\\MySQL\\data

# 设置mysql服务器的字符集 ,默认编码

default-character-set=latin1

[client]

# 设置mysql客户端的字符集

default-character-set=latin1

[WinMySQLAdmin]

# 指定mysql服务启动启动的文件

Server=F:\\Program Files\\MySQL\\bin\\mysqld.exe

三 注册MySQL服务,使MySQL可以在服务项目中启动或关闭

1)进入安装目录\bin,执行:

F:\Program Files\MySQL\bin>mysqld -install

显示:Service successfully installed. 则注册服务成功。

如果要删除服务:

F:\Program Files\MySQL\bin>mysqld -remove

2)修改注册表:

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\MySQL\ImagePath

修改为:

“F:\Program Files\MySQL\bin\mysqld” –defaults-file=

“F:\Program Files\MySQL\my.ini” MySQL

这样配置就可以使用net start mysql命令正常启动MySQL。

四 修改root密码

MySQL配置好后,启动成功,默认密码是空,但是为了安全,设置密码(一般用户名为root,密码为root)。

1)登录MySQL root用户:

进入MySQL安装目录\bin,执行:

F:\Program Files\MySQL\MySQL-6.0.7\bin>mysql -u root;

2) 修改root密码:

mysql> update mysql.user set password=PASSWORD(‘new password’) where User=’root’;

mysql> flush privileges;

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/oswin_jiang/archive/2009/08/11/4433481.aspx

jquery容器样式

May 3rd, 2010 by 施 常亮 | Permalink

jquery容器样式:http://www.malsup.com/jquery/corner/

oracle 检查被锁的表及解锁

May 3rd, 2010 by 施 常亮 | Permalink

处理方法一 :

检查那个表被锁
select sess.sid,sess.serial#, lo.oracle_username,lo.os_user_name,ao.object_name,lo.locked_mode
from v$locked_object lo,dba_objects ao,v$session sess
where ao.object_id = lo.object_id
and lo.session_id = sess.sid;

解锁

alter system kill session ‘273,45’;

处理方法二 :

找到你要杀掉的那个SESSION, 并记下paddr

SELECT sid, username, paddr, status FROM v$session WHERE username = ‘JCUSER’ and sid=上面查出来的sid;

找到这个SESSION所对应的spid

SELECT ADDR,PID,SPID,USERNAME,SERIAL#,TERMINAL FROM v$process WHERE addr = ‘上面的PADDR’;

杀掉spid所标识的那个进程

orakill sid spid

原文来源:http://tech.e800.com.cn/articles/2009/710/1247207067745_1.html