DWR使用总结
发布时间:2020-12-15 22:11:29 所属栏目:百科 来源:网络整理
导读:1、DWR 简介 DWR ( direct web remoting ):是一种改善 JAVA 与 WEB 页面之间交互的 AJAX 开源框架,帮助 JAVA 程序更好的与页面进行交互。 2、DWR推送方式 (1) 被动推送 浏览器向服务器发送请求,服务器再根据请求将相应的数据返回给浏览器。 (2) 主
1、DWR简介DWR(direct web remoting):是一种改善JAVA与WEB页面之间交互的AJAX开源框架,帮助JAVA程序更好的与页面进行交互。 2、DWR推送方式(1) 被动推送浏览器向服务器发送请求,服务器再根据请求将相应的数据返回给浏览器。 (2)主动推送浏览器与服务器建立连接后,服务器保存这次连接,如果服务器有新的内容需要传到浏览器,则通过这个连接返回。 3、DWR配置过程 3.1导入JAR包dwr.jar,如果用到spring,还需要导入spring的JAR包 3.2配置web.xml<servlet> <servlet-name>dwr</servlet-name> <servlet-class>org.directwebremoting.servlet.DwrServlet</servlet-class> <init-param> <param-name>debug</param-name> <param-value>true</param-value> </init-param> <init-param> <param-name>disconnectedTime</param-name> <param-value>100</param-value> </init-param> <init-param> <param-name>maxWaitAfterWrite</param-name> <param-value>500</param-value> </init-param> <load-on-startup>4</load-on-startup> </servlet> <servlet-mapping> <servlet-name>dwr</servlet-name> <url-pattern>/dwr/*</url-pattern> </servlet-mapping> 3.3配置dwr.xml <dwr> <allow> <convert converter="bean" match="com.dwr.UserBean"/> <create creator="new" javascript="userAdapter"> <param name="class" value="com.dwr.UserAdapter"/> </create> <create creator="spring" javascript="userAdapter2"> <param name="beanName" value="userAdapter2"></param> </create> </allow> </dwr> 业务类在DWR的配置方式有两种: 一种是直接创建业务类,creator的值是new;另一种是使用spring的bean,creator的值是spring 如果要使用到用户自定义的BEAN,只需要在dwr.xml加上 <convert converter="bean" match="com.dwr.UserBean"/> 则可。 3.4主体类public class UserBean implements Serializable { private static final long serialVersionUID = 1L; private String username; private String password; public String getUsername() { returnusername; } public void setUsername(String username) { this.username = username; } public String getPassword() { returnpassword; } public void setPassword(String password) { this.password = password; } }
public class UserAdapter { public UserBean getUser(String username){ UserBean userBean = new UserBean(); userBean.setUsername("li"); userBean.setPassword("111"); return userBean; } /** * 向页面/Sample/dwr_test.jsp中的方法pushBySession推送数据。 */ public void testPush(){ ScriptBuffer scriptBuffer =new ScriptBuffer(); scriptBuffer.appendScript("try{"); scriptBuffer.appendScript("if(pushBySession){"); scriptBuffer.appendScript("pushBySession"); scriptBuffer.appendScript("("); scriptBuffer.appendData("result"); scriptBuffer.appendScript(")}"); scriptBuffer.appendScript("} catch(e){}"); Collection<ScriptSession> sessions =WebContextFactory.get().getScriptSessionsByPage("/Sample/dwr_test.jsp"); if (sessions ==null) { return; } for (ScriptSession scriptSession : sessions) { if (scriptSession !=null) { scriptSession.addScript(scriptBuffer); } } } public static void main(String[] args){ new UserAdapter().testPush(); } 3.5页面配置 dwr_test.jsp
<!-- DWR --> <script type="text/javascript" src="${pageContext.request.contextPath}/dwr/interface/userAdapter.js"></script> <script type="text/javascript" src="${pageContext.request.contextPath}/dwr/engine.js"></script> <script type="text/javascript" src="${pageContext.request.contextPath}/dwr/util.js"></script> <script> function getUser(){ userAdapter.getUser('me',function(userBean){ alert("username="+userBean.username+",password="+userBean.password); }); } function pushBySession(value){ alert("pushBySession value:"+value); } </script> (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |