断网了……

烟灰学程序一年多了……总在想,要是断网了,我怎么学习……
烟灰就怕断网,断网了,就得完蛋……
 
 

常用链接

  • 我的随笔
  • 我的评论
  • 我参与的随笔

随笔分类(22)

  • Struts2.1学习(2) (rss)
  • Swing_UI开发进度(6) (rss)
  • 程序开发进度(14) (rss)

随笔档案(39)

  • 2010年2月 (2)
  • 2010年1月 (5)
  • 2009年12月 (1)
  • 2009年11月 (2)
  • 2009年8月 (2)
  • 2009年7月 (2)
  • 2009年6月 (2)
  • 2009年5月 (1)
  • 2009年4月 (1)
  • 2009年3月 (6)
  • 2009年2月 (11)
  • 2009年1月 (4)

相册

  • 程序图片

搜索

  •  

积分与排名

  • 积分 - 29180
  • 排名 - 179

最新评论

  • 1. re: windows server 2008 安装IIS7碰到的问题
  • 啊啊
  • --放
  • 2. re: 使用Filter进行非法访问拦截
  • 很久的帖子了,非法访问可以用spring来解决@毕业生
  • --烟灰这名字被人抢了……
  • 3. re: 使用Filter进行非法访问拦截
  • 评论内容较长,点击标题查看
  • --毕业生
  • 4. re: windows server 2008 安装IIS7碰到的问题
  • 你这个文章可是帮了我大忙啊......
  • --myskysoft
  • 5. re: Javascript Remote Object Invoker 6
  • 博主很强大!不错!
  • --不锈钢水箱
  • 6. re: Javascript Remote Object Invoker 6
  • 恭喜了,向你学习!
  • --海鲜池
  • 7. re: Javascript Remote Object Invoker 6
  • 是大家看法是打开
  • --凡客诚品官方网站
  • 8. re: Javascript Remote Object Invoker 2
  • 是空间看时间的方式将
  • --久久书城
  • 9. re: Javascript Remote Object Invoker 3
  • 是看见的开发时间地方
  • --凡客诚品官方网
  • 10. re: Javascript Remote Object Invoker 5
  • 阿萨就是大海的
  • --淘宝网减肥药

阅读排行榜

  • 1. 关于AlphaComposite的理解——Swing UI开发进度 (4932)
  • 2. (转)JDBC与JNDI应用比较(3007)
  • 3. 2009-2-6 再也再也不用JBuilder 搞开发了……(1597)
  • 4. 使用Filter进行非法访问拦截(1576)
  • 5. java LookAndFeel原理 ——Swing UI开发进度(1523)
  • 6. 为了好看,自己做!——Swing UI 开发进度(1344)
  • 7. windows server 2008 安装IIS7碰到的问题(1021)
  • 8. 说说LookAndFeel的工作流程——Swing UI开发进度 (956)
  • 9. 新的一个开始!——Swing UI开发进度 (864)
  • 10. Javascript Remote Object Invoker 3(769)

评论排行榜

  • 1. Javascript Remote Object Invoker 6(5)
  • 2. 使用Filter进行非法访问拦截(4)
  • 3. 关于AlphaComposite的理解——Swing UI开发进度 (3)
  • 4. 2009-2-1 今天开始更新,之后会不断更新 又是一个通宵……(2)
  • 5. 2009-2-6 再也再也不用JBuilder 搞开发了……(2)
  • 6. java LookAndFeel原理 ——Swing UI开发进度(2)
  • 7. 说说LookAndFeel的工作流程——Swing UI开发进度 (2)
  • 8. (转)JDBC与JNDI应用比较(2)
  • 9. windows server 2008 安装IIS7碰到的问题(2)
  • 10. Javascript Remote Object Invoker 5(2)

Powered by: 博客园
模板提供:沪江博客
IT博客 | 首页 | 发新随笔 | 发新文章 | 联系 | | 管理

Javascript Remote Object Invoker

经过反复研究,我不得不自己写一个JsonLib
下面是一点泛型的研究

并且准备搬家了。。。。

http://zcy860511.javaeye.com/blog/585900

posted @ 2010-02-02 23:17 烟灰这名字被人抢了…… 阅读(367) | 评论 (0) | 编辑 收藏
 
Javascript Remote Object Invoker 7

基于v0.1版本的实现,我将对整个架构进行修改,以适应以后的变化,这两天参考了OO的几个原则
发现我犯了很多错误,所以准备重新修改架构,拿出0.2版本,虽然0.1不算真正的成品,但是我会把这个东西完善一下,并在最后一起发送上来,这样也算是反面教材吧

------------------------------------------------------------------------------------------------------------------------------------
我错了,我真的错了,看来拿来主义果然不行,JSON-LIB带给我的便利也致使我进入一个误区,以为他是完美的
JSON-LIB最要命的就是对List这一类东西的处理,我靠!他是找不到非基础类型的,他只会傻呼呼的给你返回一个DynamicObject!只要你想强转,那就等死吧!我总算明白为什么DWR会有一个convert了!
posted @ 2010-02-01 20:40 烟灰这名字被人抢了…… 阅读(336) | 评论 (0) | 编辑 收藏
 
Javascript Remote Object Invoker 6
哈哈,今天很高兴,已经实现调用了,不过客户端一点点动态代码还没做完,嘿嘿,先看下进度吧
OK,先是配置
<remote-beans>

    
<bean id="Test" class="org.javazone.jroi.test.bean.TestRemoteBean"  scope="single">
        
<method name="getByte"/>
        
<method name="getShort"/>
        
<method name="getInteger"/>
        
<method name="getLong"/>
        
<method name="getFloat"/>
        
<method name="getDouble"/>
        
<method name="getString"/>
        
<method name="getBean"/>
    
</bean>
    
</remote-beans>
只是部分代码,没有使用Spring,所以不是很长,指示定义了方法一丢丢(= =||)而已
OK,看下服务端的Java代码
package org.javazone.jroi.test.bean;

public class TestRemoteBean
{

    
public TestRemoteBean()
    {
    }

    
public Bean getBean()
    {
        
return new Bean();
    }

    
public String getString(String string)
    {
        
return returnValue(string);
    }

    
public byte getByte(byte b)
    {
        
return b;
    }

    
public short getShort(short s)
    {
        
return s;
    }

    
public int getInteger(int i)
    {
        
return i;
    }

    
public long getLong(long l)
    {
        
return l;
    }

    
public float getFloat(float f)
    {
        
return f;
    }

    
public double getDouble(double d)
    {
        
return d;
    }

    
private String returnValue(Object object)
    {
        
return object.toString() + " - hashCode : " + hashCode();
    }
}
很简单的调用返回
额,还要贴上Bean的代码
package org.javazone.jroi.test.bean;

public class Bean
{
    
private String name = "my bean name";
    
    
public String getName()
    {
        
return name;
    }
}
OK,下面是客户端代码
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<script src="./jroi.js" ></script>
<script src="./util.js" ></script>
<title>Insert title here</title>
</head>
<body>
<script type="text/javascript">

this.div = null;
function callback(data)
{
    
if (typeof(data) == 'object')
    {
        setValue(JSON.stringify(data), 
this.div);
    }
    
else 
    {
        setValue(data, 
this.div);
    }
}

function test(method, param){
    
var array = new Array();
    array.push(param);
    
var t = document.getElementById('test');
    setValue(param, t);
    
this.div = document.getElementById(method);
    jroi.invoker.invoke(callback, 
"/org.javazone.jroi/jroi/", "Test", method, array);
}
</script>
<div>
    
<div id="getString"></div>
    
<input type="button" onclick="test('getString', 'this is a string');" value="getString"/>
    
<div id="getByte"></div>
    
<input type="button" onclick="test('getByte', 1);" value="getByte"/>
    
<div id="getShort"></div>
    
<input type="button" onclick="test('getShort', 257);" value="getShort"/>
    
<div id="getInteger"></div>
    
<input type="button" onclick="test('getInteger', 1000000);" value="getInteger"/>
    
<div id="getLong"></div>
    
<input type="button" onclick="test('getLong', 123456789);" value="getLong"/>
    
<div id="getFloat"></div>
    
<input type="button" onclick="test('getFloat', 1.2312313);" value="getFloat"/>
    
<div id="getDouble"></div>
    
<input type="button" onclick="test('getDouble', 1.213123123123);" value="getDouble"/>
    
<div id="getBean"></div>
    
<input type="button" onclick="test('getBean');" value="getBean"/>
    
<div id="test" style="border: 1px solid;width: 300px;height: 20px;"></div>
</div>
</body>
</html>
额。上面有一个util这个里面只是简单的将div的值设置为返回值
下面贴张运行结果图

额。。。现在看来这玩意没什么好玩的了。。。。真是。。。
服务器还有很多东西没搞定。。。。特别是验证工作,我是直接try{}catch{Exception e}的。。。。
好了,明天做最后的搭接工作,生成客户端bean调用文件了

总结:
看到了DWR的一些不足后,我发现需要弄一点配置出来,这部分,客户端配置将被保留,以后更新版本也不修改
哎。。。。现在才发现架构师真的不是几年就能学出来的
posted @ 2010-01-30 02:07 烟灰这名字被人抢了…… 阅读(659) | 评论 (5) | 编辑 收藏
 
Javascript Remote Object Invoker 5

OK,今天进入一个新的进度,实现了基本的调用,最后就是扩展,实现AJAX Client部分,这个就不是很困难了
哈哈
看下成果吧
http://localhost:8080/org.javazone.jroi/jroi/1?org.javazone.isInvoke=isInvoke&org.javazone.invoke.id=Test1&org.javazone.invoke.method.name=getName&org.javazone.invoke.parameters=
这个请求字符串有点长,当然是测试用的,无所谓了
OK,看下下面的输出结果
1
就是一个'1',呵呵,用为服务端代码是这样写的

/** *//**
 * 
 
*/

package org.javazone.jroi.test.config;

/** *//**
 * 
@author 张朝雨
 
*/

public class TestBean1
{

    
public TestBean1()
    
{
    }


    
public int getName()
    
{
        
return 1;
    }


}

当然,就只有一个1了。。。。残念。。。
其实上面的参数就是一个协议,只要符合这个协议就可以进行调用。。。当然还有许多安全问题,我没来得及处理,我自己考虑了下,绝对不能让非法的调用弄死调服务器,所以。。。   
private void doInvokeService(WebContext context)
    
{
        
// 为空表示未注册调用服务,不为空表示有服务
        if (invokerService != null)
        
{
            
try
            
{
                InvokedContext invokedContext 
= new InvokedContext(context);

                invokerService.doInvoke(invokedContext);
            }

            
catch (Exception e)// 捕获所有错误,不影响服务器的其他运行
            {
                e.printStackTrace();
            }

        }

    }
我是这样干的。。。。
很恶劣。。当然这部分还没添加log以及错误回复。。。
OK,OK,今天暂时到这里了。。。最近真的发现有点点问题。。。哎。。。类名真难去、log真难写。。。= =||
posted @ 2010-01-28 23:33 烟灰这名字被人抢了…… 阅读(475) | 评论 (2) | 编辑 收藏
 
Javascript Remote Object Invoker 4
啊。。。崩溃了,javascript和java的多态。。DWR不支持,我也没想到什么好的解决方案,不过DWR不支持有参数构造函数一说,貌似我解决了
明天继续进度的发布,今天整理下Log。。。。发现Log多了很成问题
posted @ 2010-01-28 00:58 烟灰这名字被人抢了…… 阅读(332) | 评论 (0) | 编辑 收藏
 
Javascript Remote Object Invoker 3
     摘要: 今天完成了IOC对Spring的集成,不论是从WEB配置中读取还是从自定义中读取这个是该框架配置方式文件正常配置方式 <?xml version="1.0" encoding="UTF-8"?><!DOCTYPE remote-beas PUBLIC"-//JAVAZONE//DTD Javazone Remote&n...  阅读全文
posted @ 2010-01-27 00:51 烟灰这名字被人抢了…… 阅读(769) | 评论 (2) | 编辑 收藏
 
Javascript Remote Object Invoker 2
总算开始动手做这个javascript remote object invoker
因为是独立的框架并且参考了DWR的一些需求,发现DWR无法接受有参数的构造器,这可怎么得了。。。
所以加上了IOC的一丢丢(= =||这个是《爱情公寓》里面的用法)功能
OK,看下用法,这个东西做完之后会发上来
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE remote-beas PUBLIC
"-//JAVAZONE//DTD Javazone Remote Object Invoker//EN"
"http://www.javazone.org/jroi10.dtd">
<remote-beans>

    <bean class="org.javazone.jroi.example.Test" javascript="Test" scope="single">

        <constructor>
            <args index="0" type="java.lang.Integer" value="23" />
        </constructor>

        <method name="test"/>

    </bean>

</remote-beans>
很简单的配置,和Spring很像,呵呵
public class IocTest
{

    public static void main(String[] args)
    {
        ClassLoader loader = Thread.currentThread().getContextClassLoader();
        String file = "org/javazone/jroi/example/jroi.config.xml";
        BeanMetasConstructor constructor = new XMLBeanMetasConstructor(loader
                .getResourceAsStream(file));
        BeanMetas metas = constructor.construct();
        IoContainer container = new BeanMetasContainer(metas);

        container.getBean("Test");
        container.getBean("Test");
        container.getBean("Test");
        container.getBean("Test");
        container.getBean("Test");

    }
}
这个是一个测试的代码
public class Test
{
    public Test(String str)
    {
        System.out.println(str.toString() + " : " + str.getClass().toString());
    }

    public Test(Integer str)
    {
        System.out.println(str.toString() + " : " + str.getClass().toString());
    }

    public Test(OtherBean b)
    {
        System.out.println(hashCode());
        System.out.println(b.hashCode());
        System.out.println();
    }

}
测试用的对象
下面是运行结果
DEBUG [main](XMLBeanMetasConstructor.java:85) - Create Beans
==================================== remote-beans ====================================

***************************************** 1 *****************************************

    javascript:Test
    class:org.javazone.jroi.example.Test
    scope:single

    constructor:
        arguments:
            type:java.lang.Integer
            value:23

    methods:
        method:test

*************************************************************************************

==================================== remote-beans end ====================================
23 : class java.lang.Integer

注意上面最后一排的打印,这个打印是来自于Test类的构造函数,而因为配置里写了Scope="single"所以只创建的一个实例,尽管调用了多次container.getBean("Test");

当然,这里还有一个特点,因为Javascript必须是唯一的,所以和id同出一处,我在考虑要不要把这个javascript属性修改为id
我在考虑下,当然我保留了id用来处理注入
posted @ 2010-01-25 23:48 烟灰这名字被人抢了…… 阅读(482) | 评论 (2) | 编辑 收藏
 
Javascript Remote Object Invoker 1

几天过去了
始终在纠结javascript里面为什么可以new function
不过,收获还是有的,总算是把系统的基础构架搭完了,看标题名就知道我在做什么,呵呵

posted @ 2009-12-29 17:47 烟灰这名字被人抢了…… 阅读(401) | 评论 (0) | 编辑 收藏
 
Mark CoreLib.swc
代替BlazeDS进行远程调用,更加灵活,更加易用,但是在安全性上得不到保证,例如QQ农场就有这个缺陷,所以,我在考虑自己写一个加密或者上网找一个加密算法,将数据加密传输

下面是CreoLib.swc的下载

Corelib.rar

解压即可使用
posted @ 2009-11-30 21:48 烟灰这名字被人抢了…… 阅读(286) | 评论 (0) | 编辑 收藏
 
关于Flex的一些注意事项
因为Java的习惯,包总用.分割,所以在Flex里面我也这样做了,不过这样直接导致无法加载类。。。。。

OK,第二点不同,继续编辑这篇文章
关于HashMap的东西,也可以认为是字典的实现
下面是实现
var dictionary : Object = new Object();
dictionary.label 
= "label1";

trace(dictionary[
"label"]);
另外一种实现

   var dictionary : Object = {label : "label"};

trace(dictionary[label]);
posted @ 2009-11-18 13:17 烟灰这名字被人抢了…… 阅读(491) | 评论 (1) | 编辑 收藏
 
仅列出标题
共4页: 1 2 3 4