您的位置:首页 > Web前端

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

2018-02-08 17:15 337 查看

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