- 浏览: 175079 次
- 性别:
- 来自: 成都
-
文章分类
最新评论
-
gwill_21:
dwr.xml找不到怎么办,难道要自己手写dwr.xml?痛苦 ...
DWR框架 —— 用户注册验证 -
recoba7:
MLDN魔乐科技 Oracle学习笔记 (5) -
lanni2460:
呵呵 尽管现在才看到这个 但是我真的觉得 李老师 讲的很好呢 ...
严重声明,那些恶意诋毁MLDN及李兴华老师的其他培训机构统统走开 -
chian_xxp:
只要把功能实现了,代码结构合理了,代码性能提高了,该注意的注意 ...
业务、业务、业务。。。 -
wzpbb:
密码多少啊??? 给一下啊
MLDN 魔乐科技 Oracle 学习笔记(2)
DWR是Java调用AJAX的框架,通过将Java的对象中的方法映射成为js中对应的对象和方法,从而使调用js的方法同时会调用Java中的对应方法,并将返回的结果处理成为js对象或数组,返回给回调函数来处理。
DWR可以很容易的与Spring框架结合,但DWR对于hibernate的关系映射不支持。
1、建立项目
2、加入SSH支持
(1)加入Spring支持
(2)加入Hibernate支持
(3)修改Spring配置文件
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"> <property name="driverClassName" value="com.mysql.jdbc.Driver"> </property> <property name="url" value="jdbc:mysql://localhost:3306/info_users"> </property> <property name="username" value="root"></property> <property name="password" value="mysqladmin"></property> </bean> <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> <property name="dataSource"> <ref bean="dataSource"></ref> </property> <property name="hibernateProperties"> <props> <prop key="hibernate.dialect"> org.hibernate.dialect.MySQLDialect </prop> <prop key="hibernate.show_sql"> true </prop> </props> </property> </bean></beans> |
(4)加入Struts支持
(5)在struts-config.xml中加入Spring的插件配置
<controller processorClass="org.springframework.web.struts.DelegatingRequestProcessor"> </controller> <message-resources parameter="mldn.lin.struts.ApplicationResources" /> <plug-in className="org.springframework.web.struts.ContextLoaderPlugIn"> <set-property property="contextConfigLocation" value="/WEB-INF/classes/applicationContext.xml" /> </plug-in> |
(6)加入日志文件
加到src下
3、处理jar包
(1)删除冲突jar包
删除asm-2.2.3.jar、ehcache-1.1.jar
(2)加入数据库公共连接池支持jar包
加入commons-pool.jar支持jar包
4、加入DWR支持
将dwr.jar拷贝到项目的lib下,将dwr.xml拷贝到项目的WEB-INF下
5、加入dwr的Servlet配置
在web.xml中加入dwr的Servlet配置
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.4" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> <servlet> <servlet-name>dwr-invoker</servlet-name> <servlet-class> org.directwebremoting.servlet.DwrServlet </servlet-class> <init-param> <param-name>debug</param-name> <param-value>true</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet>
<servlet-mapping> <servlet-name>dwr-invoker</servlet-name> <url-pattern>/dwr
public class Users implements java.io.Serializable {
// Fields
private String userid;
private String realName;
private String password;
private String photo;
// Constructors
public Users() { }
public Users(String userid, String realName, String password, String photo) { this.userid = userid; this.realName = realName; this.password = password; this.photo = photo; }
// Property accessors
public String getUserid() { return this.userid; }
public void setUserid(String userid) { this.userid = userid; }
public String getRealName() { return this.realName; }
public void setRealName(String realName) { this.realName = realName; }
public String getPassword() { return this.password; }
public void setPassword(String password) { this.password = password; }
public String getPhoto() { return this.photo; }
public void setPhoto(String photo) { this.photo = photo; }
} |
<?xml version="1.0" encoding="utf-8"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> <!-- Mapping file autogenerated by MyEclipse Persistence Tools --> <hibernate-mapping> <class name="mldn.lin.pojo.Users" table="users" catalog="info_users"> <id name="userid" type="java.lang.String"> <column name="userid" length="20" /> <generator class="assigned" /> </id> <property name="realName" type="java.lang.String"> <column name="real_name" length="20" not-null="true" /> </property> <property name="password" type="java.lang.String"> <column name="password" length="10" not-null="true" /> </property> <property name="photo" type="java.lang.String"> <column name="photo" length="50" not-null="true" /> </property> </class> </hibernate-mapping>
|
7、编写DAO及其实现类
package mldn.lin.dao;
public interface UsersDAO { public boolean checkUserid(String userid) throws Exception; } |
package mldn.lin.dao.impl;
import mldn.lin.dao.UsersDAO; import mldn.lin.pojo.Users;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
public class UserDAOImpl extends HibernateDaoSupport implements UsersDAO {
public boolean checkUserid(String userid) throws Exception { // TODO Auto-generated method stub Users users = (Users) this.getHibernateTemplate().get(Users.class, userid); return users != null ; } }
|
8、配置实现类到Spring中
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"> <property name="driverClassName" value="com.mysql.jdbc.Driver"> </property> <property name="url" value="jdbc:mysql://localhost:3306/info_users"> </property> <property name="username" value="root"></property> <property name="password" value="mysqladmin"></property> </bean> <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> <property name="dataSource"> <ref bean="dataSource"></ref> </property> <property name="hibernateProperties"> <props> <prop key="hibernate.dialect"> org.hibernate.dialect.MySQLDialect </prop> <prop key="hibernate.show_sql"> true </prop> </props> </property> <property name="mappingResources"> <list> <value>mldn/lin/pojo/Areaplus.hbm.xml</value> <value>mldn/lin/pojo/Area.hbm.xml</value> <value>mldn/lin/pojo/Users.hbm.xml</value></list> </property></bean> <bean id="hibernateTemplate" class="org.springframework.orm.hibernate3.HibernateTemplate"> <property name="sessionFactory"> <ref bean="sessionFactory"></ref> </property> </bean> <bean id="usersdaoimpl" class="mldn.lin.dao.impl.UsersDAOImpl"> <property name="hibernateTemplate"> <ref bean="hibernateTemplate"></ref> </property> </bean> </beans> |
9、建立ActionForm和Action
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN" "http://struts.apache.org/dtds/struts-config_1_2.dtd">
<struts-config> <data-sources /> <form-beans > <form-bean name="registForm" type="mldn.lin.struts.form.RegistForm" />
</form-beans>
<global-exceptions /> <global-forwards /> <action-mappings > <action attribute="registForm" input="/regist.jsp" name="registForm" parameter="status" path="/regist" scope="request" type="mldn.lin.struts.action.RegistAction" />
</action-mappings>
<message-resources parameter="mldn.lin.struts.ApplicationResources" /> </struts-config>
|
package mldn.lin.struts.form;
import javax.servlet.http.HttpServletRequest; import mldn.lin.pojo.Users; import org.apache.struts.action.ActionErrors; import org.apache.struts.action.ActionForm; import org.apache.struts.action.ActionMapping;
public class RegistForm extends ActionForm {
private Users users=new Users();
private String photo;
private String status;
public ActionErrors validate(ActionMapping mapping, HttpServletRequest request) { // TODO Auto-generated method stub return null; }
public void reset(ActionMapping mapping, HttpServletRequest request) { // TODO Auto-generated method stub }
public Users getUsers() { return users; }
public void setUsers(Users users) { this.users = users; }
public String getPhoto() { return photo; }
public void setPhoto(String photo) { this.photo = photo; }
public String getStatus() { return status; }
public void setStatus(String status) { this.status = status; } } |
package mldn.lin.struts.action;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse;
import mldn.lin.dao.UsersDAO; import mldn.lin.struts.form.RegistForm;
import org.apache.struts.action.ActionForm; import org.apache.struts.action.ActionForward; import org.apache.struts.action.ActionMapping; import org.apache.struts.actions.DispatchAction;
public class RegistAction extends DispatchAction { private UsersDAO usersdao;
public void setUsersdao(UsersDAO usersdao) { this.usersdao = usersdao; }
public ActionForward regist(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) { RegistForm registForm = (RegistForm) form;// TODO Auto-generated method stub return null; } } |
10、编写前台页面
<%@ page language="java" pageEncoding="GBK"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>首页</title> </head>
<body> <center> <a href="regist.jsp">注册</a> </center> </body> </html> |
<%@ page language="java" pageEncoding="GBK"%>
<%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean" %> <%@ taglib uri="http://struts.apache.org/tags-html" prefix="html" %> <%@ taglib uri="http://struts.apache.org/tags-logic" prefix="logic" %> <%@ taglib uri="http://struts.apache.org/tags-tiles" prefix="tiles" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html:html lang="true"> <head> <html:base />
<title>regist.jsp</title>
<meta http-equiv="pragma" content="no-cache"> <meta http-equiv="cache-control" content="no-cache"> <meta http-equiv="expires" content="0"> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="This is my page"> <!-- <link rel="stylesheet" type="text/css" href="styles.css"> -->
</head>
<body> <center> <html:form action=" regist.do " method="post" focus="users.userid"> <table border="0"> <tr> <td>用户ID:</td> <td><html:text property="users.userid" /></td> </tr> <tr> <td>真实姓名:</td> <td><html:text property="users.realName" /></td> </tr> <tr> <td>密码:</td> <td><html:password property="users.password" /></td> </tr> <tr> <td>头像:</td> <td><html:file property="photo" /></td> </tr> <tr> <td colspan="2" align="center"><html:submit value="注册"/></td> </tr> </table> </html:form> </center> </body> </html:html>
|
11、配置Action
在Spring管理中
<bean name="/regist" class="mldn.lin.struts.action.RegistAction"> <property name="usersdao"> <ref bean="usersdaoimpl"></ref> </property> </bean> |
12、将UsersDAOImpl.java映射为JS的文件和对象
修改dwr.xml
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting 2.0//EN" "http://www.getahead.ltd.uk/dwr/dwr20.dtd"> <dwr> <allow> <!-- 每一个<create>表示一个Java对象映射成为的一个js javascrpit:表示映射后的js的文件名和对象名 creator:表示Java对象的创建方式 |- new:表示直接使用new对象的方式创建 |- spring:表示对象使用spring方式创建 scope:表示映射的js所保存的属性范围 --> <create javascript="usersdao" creator="spring" scope="session"> <!-- <param>用来配置所映射的Java对象 name:表示配置的java对象的方式,与creator配合使用 |- class;如果为new的方式创建,则必须将 包.类名称 传入 |- beanName:如果为spring方式创建,则需要将对应的bean的id传入 value:依据选择的name进行填写 --> <param name="beanName" value="usersdaoimpl"></param> </create>
<!--<convert match="" converter="bean"></convert> --> </allow> </dwr> |
13、将js文件导入到页面
<%@ page language="java" pageEncoding="GBK"%>
<%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean" %> <%@ taglib uri="http://struts.apache.org/tags-html" prefix="html" %> <%@ taglib uri="http://struts.apache.org/tags-logic" prefix="logic" %> <%@ taglib uri="http://struts.apache.org/tags-tiles" prefix="tiles" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html:html lang="true"> <head> <html:base />
<title>regist.jsp</title>
<meta http-equiv="pragma" content="no-cache"> <meta http-equiv="cache-control" content="no-cache"> <meta http-equiv="expires" content="0"> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="This is my page"> <!-- <link rel="stylesheet" type="text/css" href="styles.css"> --> <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 type="text/javascript" src="${pageContext.request.contextPath }/dwr/interface/usersdao.js"></script> </head>
<body> <center> <html:form action="" method="post" focus="users.userid"> <table border="0"> <tr> <td>用户ID:</td> <td><html:text property="users.userid" /></td> </tr> <tr> <td>真实姓名:</td> <td><html:text property="users.realName" /></td> </tr> <tr> <td>密码:</td> <td><html:password property="users.password" /></td> </tr> <tr> <td>头像:</td> <td><html:file property="photo" /></td> </tr> <tr> <td colspan="2" align="center"><html:submit value="注册"/></td> </tr> </table> </html:form> </center> </body> </html:html>
|
其中engine.js和util.js是dwr.jar中提供的支持js,依据Servlet配置映射到/dwr/下,而userdao.js是配置好的映射js,同样会在/dwr/,只不过所有的这种映射js在dwr中规定必须在interface虚拟目录下。
14、编写js方法调用usersdao对象的验证方法
<script type="text/javascript"> function checkUserid(userid){ usersdao.checkUserid(userid,checkUseridCallback); } </script> |
<tr> <td>用户ID:</td> <td><html:text property="users.userid" onblur="checkUserid(this.value);" /></td> </tr> |
js方法中usersdao调用的checkUserid 方法为UsersDAO中的方法,必须与那个同名;
而标记为checkUserid的方法则只是页面上的方法,随意取名即可;
15、编写回调方法
<script type="text/javascript"> function checkUserid(userid){ usersdao.checkUserid(userid,checkUseridCallback); } function checkUseridCallback(returnValue){ if(returnValue){ document.getElementById("checkMessage").innerHTML="<font color='red' size='-1'>用户名已存在</font>"; }else{ document.getElementById("checkMessage").innerHTML="<font color='blue' size='-1'>用户名可用</font>"; } } </script> |
<tr> <td>用户ID:</td> <td><html:text property="users.userid" onblur="checkUserid(this.value);" /><span id="checkMessage"></span></td> </tr> |
16、启动服务测试
异常:
13:48:58,671 ERROR SpringCreator:75 - DWR can't find a spring config. See following info logs for solutions 13:48:58,687 ERROR SpringCreator:83 - Error java.lang.InstantiationException: DWR can't find a spring config. See the logs for solutions |
启动服务后出现错误,要求配置Spring监听,该监听用来给dwr提供spring配置文件的路径
17、配置监听
在web.xml中配置
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.4" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> <context-param> <param-name>contextConfigLocation</param-name> <param-value> /WEB-INF/classes/applicationContext.xml </param-value> </context-param>
<listener> <listener-class> org.springframework.web.context.ContextLoaderListener </listener-class> </listener>
<servlet> <servlet-name>dwr-invoker</servlet-name> <servlet-class> org.directwebremoting.servlet.DwrServlet </servlet-class> <init-param> <param-name>debug</param-name> <param-value>true</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet>
<servlet-mapping> <servlet-name>dwr-invoker</servlet-name> <url-pattern>/dwr/*</url-pattern> </servlet-mapping>
<servlet> <servlet-name>action</servlet-name> <servlet-class>org.apache.struts.action.ActionServlet</servlet-class> <init-param> <param-name>config</param-name> <param-value>/WEB-INF/struts-config.xml</param-value> </init-param> <init-param> <param-name>debug</param-name> <param-value>3</param-value> </init-param> <init-param> <param-name>detail</param-name> <param-value>3</param-value> </init-param> <load-on-startup>0</load-on-startup> </servlet> <servlet-mapping> <servlet-name>action</servlet-name> <url-pattern>*.do</url-pattern> </servlet-mapping> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> </web-app>
|
18、测试
OK
发表评论
-
继续努力的工作
2009-06-23 22:09 1011计划内任务 任务编号 任 ... -
今天来了一拨新的学生
2009-06-22 22:09 1019今天MLDN开新班了,一帮新的朋友过来学习了,看见了好多 ... -
项目开发,不断的项目开发...贸易通,果然够贸易
2009-06-21 09:50 1030项目开发啦,做项目,每天还要被老师拽到前面去讲去做,这 ... -
SSH2的开发
2009-06-17 19:58 1079今天继续记录项目的开发进度,每天都在努力的进步中,离找工作 ... -
新的项目 —— 贸易通
2009-06-16 19:34 842SSH2做个开发有啥难的,看本小姐自己的功力好了,轻松,容易啊 ... -
Struts 2.0 其他特性
2009-06-15 21:30 1094Struts 2.0算是学完了,自己也总结了很多的内容,包括和 ... -
Struts 2.0新技术哦
2009-06-14 22:52 1464一、Struts2.0的概述 Strut ... -
MLDN培训感想
2009-06-09 21:42 1201今天不太想写一些技 ... -
今天感慨良多
2009-06-07 21:05 926今天,好象很难得的可以自己给自己放松一天,来MLDN学 ... -
AJAX学习笔记
2009-06-04 21:14 3099AJAX这门技术我想都应该听说过了吧,别的我不说了,支持本小姐 ... -
有了技术我不怕不怕啦
2009-06-04 19:56 955技术学会了,项目就会做了,业务搞明白了,项目就更容易了,只 ... -
MLDn学习笔记 —— JDBC
2009-05-13 20:36 1479JDBC是JAVA基础的最后一个部分,也是我认为最简单的一个部 ... -
MLDN学习笔记 —— Annotation
2009-05-12 20:25 1190Annotation作为JDK 1.5最重要的新特性,结合了枚 ... -
java新特性 —— 枚举
2009-05-11 21:11 1242枚举是JDK 1。5之后提供的新特性,希望此份笔记对大家有用啊 ... -
MLDn学习笔记 —— JDK新特性(枚举)
2009-05-09 22:06 1216枚举是JDK 1.5之后提供的新功能,而且在JDK 1.5之后 ... -
java学习笔记 - 反射机制,头大的难
2009-05-07 21:12 1177反射机制虽然在开发中使用较少,但是作为JAVA最重要的特性,必 ... -
最核心的部分 —— 类集
2009-05-06 20:38 1023类集是JAVA中对数据结构的很好实现,本身也是最重要的,老师说 ... -
mldn学习笔记 — 网络编程
2009-05-05 19:29 1280这份笔记讲解了tcp和udp的程序设计,虽然网络编程不怎么使用 ... -
Java IO操作(下)的笔记 给大家分享
2009-05-04 19:23 878给大家分享学习笔记,支持的给我留言吧! -
mldn学习笔记 —— IO(上)
2009-05-03 16:04 1271IO是整个java中的难点,个人如果自学的话,则肯定有很大的难 ...
相关推荐
本文通过一个具体的示例——无限级树型菜单的实现,展示了如何使用DWR框架简化AJAX应用的开发过程。该示例主要涉及以下几个步骤: 1. **服务器端Java类设计**:首先需要定义服务器端的Java类,这些类包含了将被...
Java+dwr 框架实现聊天室 Java+dwr框架实现聊天室是使用Java语言和dwr框架实现的服务器推技术,实现了实时通信的聊天室功能。下面将详细介绍该技术的实现过程和相关知识点。 一、dwr 框架简介 dwr(Direct Web ...
**DWR(Direct Web Remoting)框架学习指南** ...通过学习和实践DWR框架,开发者可以创建更加动态、响应式的Web应用,提升用户的交互体验。理解DWR的工作原理以及如何配置和使用,对于开发人员来说是非常有价值的技能。
总的来说,Ajax和DWR框架的结合使用,可以显著提升Web应用的用户体验,减少不必要的页面刷新,提高数据处理效率。同时,通过DWR与主流Java框架的集成,开发者可以更方便地在大型项目中引入Ajax技术,而不必重构大量...
2. **安全性考虑**:DWR允许前端直接访问后端方法,需要注意权限验证和输入过滤。 3. **性能优化**:合理设计接口,减少不必要的网络传输。 #### 五、总结 通过上述步骤,我们可以实现SSH与DWR框架的有效整合。...
2. `dwr框架进行验证和javascript验证`:这可能是项目的主目录,包含DWR配置文件、Java服务端代码、JavaScript客户端代码以及可能的测试或演示页面。 总的来说,这个项目为你提供了一个使用eWebEditor和DWR构建的...
DWR(Direct Web Remoting...总的来说,DWR框架提供了一种高效、简便的方式来实现前端与后端的交互,极大地提高了Web应用的用户体验。通过理解这些知识点,并结合提供的实例,开发者能够快速上手并有效地利用DWR框架。
2. **表单验证**:在用户输入数据时,可以立即在客户端进行验证,如果不符合要求,立即给出反馈,提高用户体验。 3. **富客户端应用**:DWR可以使Web应用拥有类似桌面应用的交互体验,例如拖放操作、实时编辑等。 ...
dwr框架的源文件dwr框架的源文件dwr框架的源文件dwr框架的源文件
1. **DWR Engine**:这是DWR的核心,负责处理所有AJAX请求,包括安全验证、方法调用、异常处理等。它通过JavaScript API与客户端交互,并将请求转发给相应的Java服务。 2. **Servlet**:DWR提供了一个Servlet,用于...
框架结构dwr 框架结构dwr 框架结构dwr 框架结构dwr 框架结构dwr 框架结构dwr 框架结构dwr 框架结构dwr 框架结构dwr 框架结构dwr 框架结构dwr 框架结构dwr 框架结构dwr 框架结构dwr
(参考:http://www.cnblogs.com/cyjch/archive/2012/02/16/2353758.html) DWR框架简单Demo,主要是用户注册的例子。 感谢原博主的分享!(附上我测试成功的Demo)
dwr 框架dwr 框架dwr 框架dwr 框架dwr 框架dwr 框架
在"dwr验证注册用户"这个场景中,DWR被用来实现在用户注册过程中实时检查用户名是否已经被占用,从而提高用户体验。 首先,我们需要理解DWR的工作原理。DWR的核心概念是“远程对象”(Remote Objects),它允许...
DWR(Direct Web Remoting)框架是一个强大的开源工具,专门设计用于简化Web应用程序中的AJAX(Asynchronous JavaScript and XML)开发。DWR的核心理念是提供一种机制,使得JavaScript可以直接调用后端Java方法,...
### DWR框架学习总结 #### 一、DWR框架简介 DWR(Direct Web Remoting)是一个开源项目,遵循Apache许可证发布。它提供了一种简便的方法来实现远程调用服务器端Java方法的能力,并且能够在客户端JavaScript中直接...
**DWR(Direct Web Remoting)框架实现无刷新分页技术详解** DWR(Direct Web Remoting)是一种...通过对这些文件的分析和学习,我们可以更深入地理解DWR框架如何应用于无刷新分页技术,进一步提升Web应用的用户体验。
是自己学习期间DWR框架的简单的一些实例和操作。里面有三层写的异步刷新分页 还有DWR操作的14个小实例,以及提高能力的DWR的API和API的技术文档,贡献大家,希望大家能够用的上,也欢迎学习交流,里面有本人的QQ。
DWR(Direct Web Remoting)框架是一个开源的Java技术,它允许Web应用程序在客户端JavaScript和服务器端Java之间进行实时通信,极大地增强了Web应用的交互性和动态性。DWR的核心功能在于提供了一种简单的方式来调用...