Atitit.atidwr的原理and设计attilax总结javaPHP版本
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还是nativedwr
Nativedwr要修正配置文件了.麻烦的..自定义dwr好使用的..
5.ApiHandler的标准化method
Select...$Meta{“table”,orderby},f1,f2Update/insert/merger....$Meta{},f1----f12Delete....$Meta{
6.Invok..Dwr.exe()
varmp={"method":"sql","param":"select*fromwxb_newswherenews_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*fromwxb_news
8.prj.Wxbdistribuapi.jsp
<%@pageimport="com.attilax.api.HandlerChain"%>
<%@pagecontentType="text/html;charset=utf-8"language="java"import="java.sql.*"%>
<%@pageimport="com.attilax.api.HandlerChain"%>
<%@pageimport="com.attilax.api.ApiHandler"%>
<%@pageimport="aaaCfg.IocX"%>
<%
if(request.getParameter("method")!=null)
{
}
%>
<%
ApiHandlerax=IocX.getBean(ApiHandler.class);
%>
<%=ax.handleReq_dsl(request)%>
9.----------code
10.ApiHandler
@Inject
DBXdbx;
publicApiHandler(){
this.reg("sql",newHandler(){
@Override
ObjecthandleReq(Objectarg)throwsException{
//attilax老哇的爪子l_43_uo87
HttpServletRequestreq=(HttpServletRequest);
Listli=.findBysql(.getParameter("param"));
returncore.toJsonStrO88();
}
});
StringhandleReq_dsl(HttpServletRequest){
Stringmeth="method");
Handlerhd=(Handler)mp.get(try{
(String).handleReq(}catch(Exceptione//TODOAuto-generatedcatchblock
.printStackTrace();
}
11.iocx
bd.bind(DBX.class).toProvider(Provider<DBX>(){
DBXget(){
DataSourceds=(DataSource)SpringUtil
.getBean"dataSource"DbutilX(.getConnection());
(sqlExceptionnull});
12.参考
atitit.PHP中的dwr设计模式-attilax的专栏-博客频道-CSDN.NET.html
Atitit.dwr3不能显示错误详细信息的解决方案,控件显示错误详细信息的解决方案java.netPHP-attilax的专栏-博客频道-CSDN.NET.html
Atitit.atidwr的原理and设计attilax总结javaPHP版本