- 浏览: 78105 次
- 性别:
- 来自: 北京
最新评论
-
heipacker:
什么玩意,你运行过你的代码?
disruptor3.x 简单例子 -
hanqian200705:
请问如果是线程并发消费Event的需要怎么处理? 改THREA ...
disruptor3.x 简单例子 -
zhangbaoliang:
出现这种问题,完全有可能,如果是真这个,的确是有点。。。。。。 ...
被360云杀掉的代码 -
zuoge85:
纠结,如果这样下去,程序员日子不好过
被360云杀掉的代码 -
javageek123:
装了杀毒好比洗澡被偷窥,不装杀毒好比自己去闹市裸奔,性质不同 ...
被360云杀掉的代码
需要把wordFilter去掉,这个类用来把java对象转换为lua的table和字符串。 用于动态生成lua脚本的时候使用 可以弄到el函数里面,著名原作者,而且请注意,对象循环引用我没处理!!!!! java Lua encoder import java.io.IOException; import java.sql.Time; import java.util.Collection; import java.util.Date; import net.sf.cglib.beans.BeanMap; import vlan.core.web.WordFilter; import vlan.util.DateUtils; /** * lua的编码器,编码成lua脚本 * @author zuoge85 * */ public class LuaEncoder { public static final String encodeObject(Object o){ StringBuilder sb=new StringBuilder(); try { encodeObject(sb,o); } catch (IOException e) { throw new RuntimeException(e); } return sb.toString(); } @SuppressWarnings("unchecked") public static final void encodeObject(Appendable sb,Object o) throws IOException{ if(o==null){ sb.append("nil"); }else if(o instanceof Integer){ sb.append(String.valueOf(o)); }else if(o instanceof CharSequence){ sb.append('L'); sb.append('\"'); encode(sb,(CharSequence)o); sb.append('\"'); }else if(o instanceof Byte){ sb.append(String.valueOf(o)); }else if(o instanceof Short){ sb.append(String.valueOf(o)); }else if(o instanceof Float){ sb.append(String.valueOf(o)); }else if(o instanceof Boolean){ sb.append(String.valueOf(o)); }else if(o instanceof java.sql.Date){ sb.append('L'); sb.append('\"'); encode(sb, DateUtils.format((java.sql.Date)o)); sb.append('\"'); }else if(o instanceof Time){ sb.append('L'); sb.append('\"'); encode(sb, DateUtils.format((Time)o)); sb.append('\"'); }else if(o instanceof Date){ sb.append('L'); sb.append('\"'); encode(sb, DateUtils.format((Date)o)); sb.append('\"'); }else if(o instanceof Table){ Table e=(Table)o; e.toString(sb); }else if(o instanceof Collection){ sb.append('{'); boolean isd=false; for(Object item:(Collection)o){ if(isd){ sb.append(','); }else{ isd=true; } encodeObject(sb,item); } sb.append('}'); }else if(o.getClass()==Object.class){ sb.append("{}"); }else if(o instanceof Number){//google的list实现了这个接口的貌似,因此放最后 /** * 太长了的数字当成字符串处理 */ sb.append('\"'); encode(sb, String.valueOf(o)); sb.append('\"'); }else{ //反射对象 BeanMap m=BeanMap.create(o); sb.append('{'); boolean isd=false; for(Object key:m.keySet()){ if(isd){ sb.append(','); }else{ isd=true; } Object value=m.get(key); sb.append((String)key); sb.append('='); encodeObject(sb,value); } sb.append('}'); } } public static final String encode(String str){ StringBuilder sb=new StringBuilder(); try { encode(sb,str); } catch (IOException e) { throw new RuntimeException(e); } return sb.toString(); } public static final void encode(Appendable out,CharSequence str) throws IOException { if (str == null) { return ; } if(wordFilter!=null){ str=wordFilter.out(str); } int sz; sz = str.length(); for (int i = 0; i < sz; i++) { char ch = str.charAt(i); if (ch < 32) { switch (ch) { case '\b' : out.append('\\'); out.append('b'); break; case '\n' : out.append('\\'); out.append('n'); break; case '\t' : out.append('\\'); out.append('t'); break; case '\f' : out.append('\\'); out.append('f'); break; case '\r' : out.append('\\'); out.append('r'); break; default : out.append(ch); break; } } else { switch (ch) { case '\'' : out.append('\\'); out.append('\''); break; case '"' : out.append('\\'); out.append('"'); break; case '\\' : out.append('\\'); out.append('\\'); break; case '/' : out.append('\\'); out.append('/'); break; default : out.append(ch); break; } } } } private static WordFilter wordFilter; /** * 过滤,注意框架会自动设置这个属性,如果ioc工程能获取WordFilter类型的实例 * @param wordFilter */ public static void setWordFilter(WordFilter wordFilter) { LuaEncoder.wordFilter = wordFilter; } }
发表评论
-
简单el表达式实现
2013-06-21 01:05 1772一个简单的el表达式实现 实现还在完善种,现在只能处 ... -
jackson json 实践
2013-06-20 22:36 5278需要忽略 默认值,生成的json带有大量的value是0的内 ... -
java 锁测试
2013-05-04 00:58 33下面是一个简单的锁测试 看来测试结果.轻量级的锁(基于ca ... -
disruptor3.x 简单例子
2013-05-03 14:53 8025这个是最新的 disruptor3的例子....来自官方代 ... -
并发的最低安全性
2013-05-02 13:13 1491并发最低安全性 例如在某些实时性统计的时候我们只需 ... -
伪共享测试
2013-04-30 22:13 1019引用来自于 http://ifeve.com/falsesh ... -
java 系统托盘注意事项
2012-02-10 00:10 978MenuItem可能出现乱码 ,可以用JMenuItem替代 ... -
maven-assembly配置 例子 错误
2012-02-08 00:13 12587<plugin> ... -
jackson使用
2012-02-08 00:07 2918序列化 ObjectMapper mapper = n ... -
URLEncoder出错 win7 系统乱码
2011-04-13 00:13 976最开始的时候是System.out.println(java. ... -
记录下这个子 以后测试用的到 龖
2011-03-30 21:53 42记录下这个子 以后测试用的到 龖 ... -
打个标记
2011-03-08 12:40 1019http://hi.baidu.com/zengzhaonon ... -
老婆给程序员老公发了一条信息:下班买几个苹果回来,如果看到西瓜,就买一个~
2011-02-15 15:36 2001老婆给程序员老公发了一条信息:下班买几个苹果回来,如果看到西瓜 ... -
lua 模拟实现switch
2010-11-28 22:55 7465可以考虑实现如下模式形式, 也许还有跟变态的方式,在不考虑效 ... -
windows7 64位 eclipse 64+jre 64 程序老死解决
2010-08-31 16:42 2899用eclipsec.exe运行,发现控制台输出 jav ... -
linux 端口转发
2010-08-28 15:31 914ubuntu下开发的时候eclipse 启动tomcat 不能 ... -
反射和字节码优化的性能还是如此的让人担忧
2010-06-24 16:29 0反射和字节码优化的性能还是如此的让人担忧 性能差距还是 ... -
c语言学习1 数据类型
2010-06-21 01:12 1048为了弥补我c语言的欠缺,开始学c语言了:) 今天开始第 ... -
ubuntu eclipse 紧凑界面
2010-06-20 13:10 1714ubuntu eclipe 的工具栏高度太高了 修改 ... -
java web 乱码
2010-06-06 15:15 1041java web乱码浅析 分析过程不说了, ...
相关推荐
LuaJava 是一款专门用于在java下执行lua脚本,该工具的主要目的是允许编写Lua脚本去操作Java组件,不需要任何声明以及任何的预处理。LuaJava 也允许Java去实现一个接口来调用Lua,这样任何的Lua相关接口功能都可以被...
Java编写的Lua脚本引擎,可以用于JME
lua脚本问文件哈哈哈lua脚本问文件哈哈哈lua脚本问文件哈哈哈lua脚本问文件哈哈哈lua脚本问文件哈哈哈lua脚本问文件哈哈哈lua脚本问文件哈哈哈lua脚本问文件哈哈哈lua脚本问文件哈哈哈lua脚本问文件哈哈哈lua脚本问...
LUA脚本支持库|LUA脚本支持库
适用于lua脚本的解密
Lua 是一个小巧的脚本语言。作者是巴西人。该语言的设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能。 Lua脚本可以很容易的被C/C++代码调用,也可以反过来调用C/C++的函数,这使得Lua在应用...
Lua脚本支持库
freeswitch LUA 脚本reference lua 脚本reference lua 开发脚本指南
lua脚本执行行数和次数统计的Dll,统计了lua执行的文件名,行数以及改行执行的次数,并输出到结果文件result.txt。包含了一个例子文件test.lua
运行Lua脚本语句 运行Lua脚本文件 调用 Android API
LUa脚本编辑器
lua链接redis的工具驱动代码
游戏引擎HGE结合Lua脚本 教程.zip
stm32f103移植lua解释器,能够在片上运行lua语言脚本。 欢迎大家下载、学习、交流。
做了那么多 Lua 脚本破解,我们来尝试写一个不能被破解的加密。 所谓不能被破解,并不是真正不能被破解,只是在没有密码的情况下很难破解。
项目实现的Lua脚本代码,有需要的朋友可以参考
高并发场景:在高并发场景下,使用 Lua 脚本可以实现原子性操作,避免并发问题。 复杂业务逻辑:对于复杂的业务逻辑,使用 Lua 脚本可以简化代码,提高可读性和可维护性。 事务处理:使用 Lua 脚本可以实现事务处理...
Lua是一种免费、开放的中间代码型的脚本语言,作者在研究了它的结构和 特点的基础上,对Lua运行环境中的堆栈结构进行了分析,由于引擎与Lua脚本 均能够操作堆栈中的数据,因此通过把堆栈作为两者信息传递的中间层,...
安卓网游LUA脚本解密源码。@ddsf99。