Atitit.ati dwr的原理and设计 attilax 小结 java php 版本
Atitit.ati dwr的原理and设计 attilax 总结 java php 版本
1. dwr的优点相对于ajax来说。。1
2. DWR工作原理1
3. Dwr的架构2
4. 自定义dwr还是native dwr2
5. ApiHandler的标准化method2
6. Invok.. Dwr.exe()2
7. api.jsp3
8. prj.Wxb distribu api.jsp3
9. ----------code4
10. ApiHandler4
11. iocx5
12. 参考5
1. dwr的优点相对于ajax来说。。
dwr是构建在ajax上的。。更加的dsl化。。
大大简化了编写ajax的工作量。
2. DWR工作原理
是通过动态把Java类生成为Javascript。它的代码就像Ajax一样,你感觉调用就像发生在浏览器端,但是实际上代码调用发生在服务器端,DWR负责数据的传递和转换。这种从Java 到JavaScript的远程调用功能的方式使DWR用起来有种非常像RMI或者SOAP的常规RPC机制,而且DWR的优点在于不需要任何的网页浏览器插件就能运行在网页上。
Java从根本上讲是同步机制,然 AJAX却是异步的。所以你调用远程方法时,当数据已经从网络上返回的时候,你要提供有反调 (callback) 功能的DWR。
DWR在客户端放置了一个 engine.js作为客户端的引擎,在Server端放置了一个dwr.jar作为服务器端的引擎。
然后,可以以RPC的方式来描述
作者:: 老哇的爪子 Attilax 艾龙, EMAIL:[email protected]
转载请注明来源: http://blog.csdn.net/attilax
3. Dwr的架构
Dwr>>ajax>>>api.jsp
4. 自定义dwr还是native dwr
Native dwr要修正配置文件了.麻烦的..自定义dwr好使用的..
5. ApiHandler的标准化method
Sql
Select... $meta{“table”,orderby}, f1,f2
Update/insert/merger ....$meta{“table”} ,f1----f12
Delete....$meta{“table”} ,f1----f12 (where)
6. Invok.. Dwr.exe()
var mp={"method":"sql","param":"select * from wxb_news where news_id="+UrlParm.parm('news_id')};
dwrC.exec(mp,function($data){
jo=str2json($data);
arr=jo;
$("#table1_tmpl").tmpl(arr).appendTo('#table1');
$("#table1_tmpl").hide();
},$app_path);
7. api.jsp
* localhost:8080/wxb/api.jsp?method=sql?m=select * from wxb_news
8. prj.Wxb distribu api.jsp
html; charset=utf-8" language="java" import="java.sql.*" %>
if(request.getParameter("method")!=null)
{
}
%>
ApiHandler ax = IocX.getBean(ApiHandler.class);
%>
9. ----------code
10. ApiHandler
@Inject
DBX dbx;
public ApiHandler() {
this.reg("sql", new Handler() {
@Override
public Object handleReq(Object arg) throws Exception {
// attilax 老哇的爪子 l_43_u o87
HttpServletRequest req=(HttpServletRequest) arg;
List li = dbx.findBySql(req.getParameter("param"));
return core.toJsonStrO88(li);
}
});
public String handleReq_dsl(HttpServletRequest req) {
String meth=req.getParameter("method");
Handler hd=(Handler) mp.get(meth);
try {
return (String) hd.handleReq(req);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return meth;
}
11. iocx
bd.bind(DBX.class).toProvider(new Provider
@Override
public DBX get() {
DataSource ds = (DataSource) SpringUtil
.getBean("dataSource");
try {
return new DbutilX(ds.getConnection());
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
});
12. 参考
atitit.php中的dwr 设计模式 - attilax的专栏 - 博客频道 - CSDN.NET.html
Atitit.dwr3 不能显示错误详细信息的解决方案,控件显示错误详细信息的解决方案 java .net php - attilax的专栏 - 博客频道 - CSDN.NET.html
Atitit.ati dwr的原理and设计 attilax 总结 java php 版本
版权声明:本文为博主原创文章,未经博主允许不得转载。
相关文章
相关视频
专题推荐
-
独孤九贱-php全栈开发教程
全栈 170W+
主讲:Peter-Zhu 轻松幽默、简短易学,非常适合PHP学习入门
-
玉女心经-web前端开发教程
入门 80W+
主讲:灭绝师太 由浅入深、明快简洁,非常适合前端学习入门
-
天龙八部-实战开发教程
实战 120W+
主讲:西门大官人 思路清晰、严谨规范,适合有一定web编程基础学习
网友评论
文明上网理性发言,请遵守 新闻评论服务协议
我要评论