首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > Web前端 >

dwr反向调用及跟调用页面中的通信

2012-11-22 
dwr反向调用及和调用页面中的通信import org.directwebremoting.AjaxFilter import org.directwebremotin

dwr反向调用及和调用页面中的通信

import org.directwebremoting.AjaxFilter;
import org.directwebremoting.AjaxFilterChain;
import org.directwebremoting.ScriptBuffer;
import org.directwebremoting.ScriptSession;
import org.directwebremoting.WebContext;
import org.directwebremoting.WebContextFactory;
import org.directwebremoting.proxy.dwr.Util;

public class DwrRequestFilter implements AjaxFilter {
????? //参数说明 arg0调用的类的全限类名;arg1调用的方法名;arg2调用该方法出入的参数
????? //arg3同servlet拦截器中FilterChain作用
????? @Override
?????? public Object doFilter(Object arg0, Method arg1, Object[] arg2,AjaxFilterChain arg3) throws Exception {
?????????? //得到上下文
?????????? WebContext wc = WebContextFactory.get();


?????????? //通过上下文得到ScriptSession,该对象可调用页面中的javascript
?????????? ScriptSession s = wc.getScriptSession();


?????????? //将ScriptSession对象包装为Util,该对象有dwr来调用
?????????? Util u = new Util(s);


????????? //可从上下文中得到request、response、session对象
????????? HttpSession session = wc.getSession();
????????? HttpServletRequest request = wc.getHttpServletRequest();
????????? HttpServletResponse response = wc.getHttpServletResponse();


????????? //调用业务逻辑?
?????????//......

???????? //调用页面中函数名为logOut函数
???????? u.addScript(new ScriptBuffer("logOut()"));

?

???????? //正常提交请求,如果不想提交只需return null即可
???????? return arg3.doFilter(arg0, arg1, arg2);
???? }

}


dwr.xml文件中只需加入
<filter class="DwrRequestFilter"/>就可拦截到所有的dwr请求

?该方法测试版本为dwr3.0

热点排行
Bad Request.