Dwr push技术与Spring MVC的整合

之前的web项目已经是基于Spring mvc框架的,现在需要在此基础上做一个动态网页刷新的功能,选用的是dwr的push技术,服务器端更新,立马在web页面上显示。

1.导入dwr.jar包

2.配置web.xml文件,所有的映射都被spring mvc的控制器进行截取,再由controller进行转发。

<servlet> 
		<servlet-name>testDispatcher</servlet-name>
		<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
		<init-param>
			<param-name>contextConfigLocation</param-name>
			<param-value>/WEB-INF/config.xml</param-value>	
 		</init-param>
		</servlet>

	<servlet-mapping>
		<servlet-name>testDispatcher</servlet-name>
		<url-pattern>*.html</url-pattern>
	</servlet-mapping>
	
	<servlet-mapping>
		<servlet-name>testDispatcher</servlet-name>
		<url-pattern>/dwr/*</url-pattern>
	</servlet-mapping>

  3.在web层的容器中配置dwr的相关信息。

<!-- 扫描注解的包 -->
<context:component-scan base-package="springmvc"></context:component-scan>
<!-- 视图解析器 -->
	<bean
		class="org.springframework.web.servlet.view.InternalResourceViewResolver"
		p:prefix="/view/" p:suffix=".jsp" />
<!-- 通过注解,把URL映射到Controller上,该标签默认注册DefaultAnnotationHandlerMapping和AnnotationMethodHandlerAdapter -->  
	<mvc:annotation-driven />
<!-- 要求DWR将util.js和engine.js映射到dwrController -->  
	<dwr:url-mapping />
<!-- 配置dwr的控制器,如若要使用push,则必须设定activeReverseAjaxEnabled-->  
	<dwr:controller id="dwrController" debug="true">
		<dwr:config-param name="activeReverseAjaxEnabled"
			value="true" />
	</dwr:controller>
<dwr:configuration></dwr:configuration>

4.经过上述配置后,经过spring mvc 的controller所转发的都可以连接到web页面(dwr push),例如

ServerContext serverContext = ServerContextFactory.get();
		Collection<ScriptSession> scriptSessions = serverContext
				.getAllScriptSessions();
		Util util = new Util(scriptSessions);
		ScriptBuffer scriptBuffer = new ScriptBuffer();
		//将object数据传给javascript中的showConvertOneTime()函数
		scriptBuffer.appendScript("showConvertOneTime(").appendData(object)
		.appendScript(");");
		util.addScript(scriptBuffer);


                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值