DWR的使用-JAVA后端主动通知WEB前端

添加dwr相关jar包

<dependency>
	<groupId>org.directwebremoting</groupId>
	<artifactId>dwr</artifactId>
	<version>3.0.2-RELEASE</version>
</dependency>


添加dwr相关配置

 1-web.xml的配置  

 2-dwr.xml的配置

web.xml的配置

<servlet>  
    <servlet-name>dwr-invoker</servlet-name>  
    <servlet-class>  
        org.directwebremoting.servlet.DwrServlet  
    </servlet-class>  
    <init-param>
        <param-name>debug</param-name>
        <param-value>false</param-value>
    </init-param>
    <init-param>  
        <param-name>crossDomainSessionSecurity</param-name>  
           <param-value>false</param-value>  
        </init-param>  
    <init-param>  
      <param-name>allowScriptTagRemoting</param-name>  
      <param-value>true</param-value>  
    </init-param>  
    <init-param>  
        <param-name>activeReverseAjaxEnabled</param-name>  
        <param-value>true</param-value>  
    </init-param>  
    <init-param>  
       <param-name>initApplicationScopeCreatorsAtStartup</param-name>  
       <param-value>true</param-value>  
    </init-param>  
</servlet> 
<servlet-mapping>
    <servlet-name>dwr-invoker</servlet-name>
    <url-pattern>/dwr/*</url-pattern>
</servlet-mapping> 

dwr.xml的配置

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting 3.0//EN" "http://getahead.org/dwr/dwr30.dtd">
<dwr>
	<allow>
		<create creator="new" javascript="dwr">
			<param name="class" value="类路径" />
			<include method="方法名"/>
		</create>
	</allow>
</dwr> 

JAVA代码

通知前端js:
public void notifyWebJS(HttpServletRequest request, HttpServletResponse response) {
	DwrUtil t =  new DwrUtil();
	List<String> args = new ArrayList<String>();
	args.add("args");
	t.invokeJavascriptFunction("webJS",args);
}

DwrUtil工具类:

public void invokeJavascriptFunction (String _funcName, List _args){
	final String funcName = _funcName;
	final List args = _args;
	
	Browser.withAllSessions(new Runnable(){ 
		private ScriptBuffer script = new ScriptBuffer(); 
		public void run(){ 
			//拼接javascript
			script = script.appendScript(funcName+"(");
			for(int i=0; i<args.size(); i++){
				if(i != 0){
					script = script.appendScript(",");
				}
				script = script.appendData(args.get(i));
			}
			script.appendScript(")"); 
			Collection<ScriptSession> sessions = Browser.getTargetSessions(); 
			for (ScriptSession scriptSession : sessions){ 
				scriptSession.addScript(script); 
			} 
		} 
	});
}

前端处理

在页面中要引入的三个js:engine.js、util.js、dwr.js

这三个js可以自动生成。

项目启动,访问 http://***/dwr/index.html 可生成。

访问此路径的时候,要先把web.xml  dwr的初始化参数debug改为true。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值