您的位置:首页 > 编程语言 > PHP开发

Atitit.ati dwr的原理and设计 attilax 总结 java php 版本

2015-08-20 15:28 761 查看
Atitit.ati dwr的原理and设计 attilax 总结 java php 版本


1. dwr的优点相对于ajax来说。。
1
2. DWR工作原理
1
3. Dwr的架构
2
4. 自定义dwr还是native dwr
2
5. ApiHandler的标准化method
2
6. Invok.. Dwr.exe()
2
7. api.jsp
3
8. prj.Wxb distribu api.jsp
3
9. ----------code
4
10. ApiHandler
4
11. iocx
5
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:1466519819@qq.com
转载请注明来源: 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

<%@page import="com.attilax.api.HandlerChain"%>
<%@ page contentType="text/html; charset=utf-8" language="java" import="java.sql.*" %>
<%@page import="com.attilax.api.HandlerChain"%>
<%@page import="com.attilax.api.ApiHandler"%>
<%@page import="aaaCfg.IocX"%>
<%
if(request.getParameter("method")!=null)

{

}

%>
<%
ApiHandler ax = IocX.getBean(ApiHandler.class);

%>

<%=ax.handleReq_dsl(request)%>

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<DBX>() {

@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 版本
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: