JAVA的CALLBACK通过接口来实现。
例:
1.class A,class B
2.class A实现接口operate
3.class B拥有一个参数为operate接口类型的函数test(operate o)
4.class A运行时调用class B中test函数,以自身传入参数
5.class B已取得A,就可以随时回调A所实现的operate接口中的方法
来源:http://topic.csdn.net/t/20020210/19/527607.html中最后一个人的回帖
Callback机制通常用于两个类之间的协作,如下图
A-----将自己作为参数----->B
A<-----调用A的方法----->B
posted @
2008-01-17 12:28 Paul Lin 阅读(2773) |
评论 (0) |
编辑 收藏
摘要: Oracle中如何插入特殊字符:& 和 '
阅读全文
posted @
2008-01-16 14:59 Paul Lin 阅读(48353) |
评论 (4) |
编辑 收藏
一、Forward与Redirect与<a href >的路径区别
forward的路径如果是以"/"开头,则表示相对Web应用的context, 如果不是则表示相对于当前请求
redirect的路径如果是以"/"开头,则表示相对于主机, 如果不是则表示相对于当前请求
<a href>的路径如果是"/"开头,则表示相对于主机,如果不是则表示相对于当前请求
二、Forward与Redirect对HTML链接的影响
最近在写一个JSP页面时,碰到一个奇怪的问题,有一个页面(forward_from.jsp)根据一个随机数选择“转发”或“重定向”到第二个页面(forward_result.jsp),在第二个页面有一个返回的链接:<a href = "../forward_from.jsp">。
测试时发现如果第一个页面是“重定向”到第二个页面的,则当用户点击第二个页面的返回链接时一切正常,当如果是以“转发”的方式访问第二个页面,当用户点击返回链接会出现“404: File not found”的错误。
·页面结构
当从forward_from.jsp“重定向”到forward_result.jsp时,浏览器的地址栏的URL是:
http://localhost:8081/j2eeTestProject/pages/forward/forward_result.jsp
当从forward_from.jsp“转发”到forward_result.jsp时,浏览器的地址栏的URL是:
http://localhost:8081/j2eeTestProject/pages/forward_from.jsp
当从forward_from.jsp“重定向”到forward_result.jsp时,forward_result.jsp页面的返回链接<a href = "../forward_from.jsp">是:
http://localhost:8081/j2eeTestProject/pages/forward_from.jsp
当从forward_from.jsp“转发”到forward_result.jsp时,forward_result.jsp页面的返回链接<a href ="../forward_from.jsp">是:
http://localhost:8081/j2eeTestProject/forward_from.jsp
从上面的浏览器URL和页面的链接写法我们就可以看出问题所在,因为<a href = "../forward_result.jsp">参考的是Web浏览器中地址栏的URL,当“转发”时因为浏览器的URL地址保持不变,所以“../”就被浏览器解析成:/j2eeTestProject/,而“重发”时因为浏览器的URL地址是真正页面的地址(/pages/forward/forward_result.jsp),所以../被浏览器解析成:/j2eeTestProject/pages/。而这个路径显然是不存在的。
总结:以后在JSP中尽量不要使用"../"这样的写法,我们可以使用request.getServletContext()或request.getServletPath()来定位到Web应用的根目录或当前的请求对象。
posted @
2008-01-15 23:28 Paul Lin 阅读(811) |
评论 (0) |
编辑 收藏
摘要: 从上面的四种方式来看,方式二最简单也最常用,方式三最灵活,方式一和四有相同的地方就是都继承了其中的某一个类,这样就限制了适配器的子类不能再继承其它的功能父类了,不同的地方是方式一使用委托的方式来完成类B的功能,而方式四则自己实现了接口的方法。
阅读全文
posted @
2008-01-14 17:50 Paul Lin 阅读(1430) |
评论 (0) |
编辑 收藏
摘要: Proxy类具有几个特点
·Proxy类一般都实现或继承了后台对象接口或抽象类,在其中实现了后台对象接口的方法,这样外界和代理类打交道的客户端看到的是和后台对象一样的接口。根本不知道自己在和代理对象打交道。
·Proxy类一般都含有一个后台对象作为其成员,因为代理类需要在其实现接口的方法中调用后台对象的真正方法来实现业务逻辑。
·Proxy类一般都需要包含一个能够验证用户请求是否合法的对象,如上例中的ForumPermisssions类,作为转发或拒绝用户请求的判断依据
阅读全文
posted @
2008-01-14 17:40 Paul Lin 阅读(1489) |
评论 (0) |
编辑 收藏
摘要: MVC和Command模式的一个结合,用于完成小型的Web控制
阅读全文
posted @
2008-01-09 17:30 Paul Lin 阅读(2609) |
评论 (6) |
编辑 收藏
今晚查找Strust2的时候无意中发现一个国外的很不错的网站,虽然页面看起来有点惨不忍睹,但内容非常丰富且实用。地址如下:
http://www.roseindia.net/
里面关于Struts2, Hibernate3,Spring2的教程非常多,采用的都是Step-by-Step的方式,很适合初学者
posted @
2008-01-08 22:46 Paul Lin 阅读(338) |
评论 (0) |
编辑 收藏
摘要: 项目需求分析的过程:
·这个功能到底是什么?
·这个功能由谁来做,功能操作的对象是谁?
·这个功能操作的前置条件是什么?
·这个功能操作的后续流程是什么?
阅读全文
posted @
2008-01-06 16:52 Paul Lin 阅读(463) |
评论 (0) |
编辑 收藏
摘要: 在多线程环境下,我们无法保证一个方法能够持续运行到结束,其他线程的方法才开始运行。因而可能存在这样一种情形:两个线程几乎同时尝试初始化单例类。假设第一个方法发现单例为空,而第二个方法在此刻开始运行,它也会发现该单例为空。接下来,这两个方法都将对该单例进行初始化
阅读全文
posted @
2008-01-03 22:31 Paul Lin 阅读(1193) |
评论 (0) |
编辑 收藏
摘要: 使用Builder模式的最佳场合应该是:对象的构建过程长或复杂、构建对象所需的全部参数无法在一开始就完全获得,必须通过一步步的交互过程来获取。例如:通过Web页面的输入或用户选择来构建所需对象
阅读全文
posted @
2008-01-02 23:51 Paul Lin 阅读(1605) |
评论 (2) |
编辑 收藏