dwr 简单介绍:
DWR是一个可以允许你去创建AJAX WEB站点的JAVA开源库。它可以让你在浏览器中的Javascript代码调用Web服务器上的Java代码,就像在Java代码就在浏览器中一样。 DWR包含2个主要部分:
1一个运行在服务器端的Java Servlet,它处理请求并且向浏览器发回响应。
2 运行在浏览器端的JavaScript,它发送请求而且还能动态更新网页。
DWR工作原理是通过动态把Java类生成为Javascript。它的代码就像Ajax魔法一样,你感觉调用就像发生在浏览器端,但是实际上代码调用发生在服务器端,DWR负责数据的传递和转换。这种从Java到JavaScript的远程调用功能的方式使DWR用起来有种非常像RMI或者SOAP的常规RPC机制,而且DWR的优点在于不需要任何的网页浏览器插件就能运行在网页上。
两份文档下载,都不用积分。
dwr中文文档下载:http://download.csdn.net/detail/mamba10/4989159请点击
dwr实战下载:http://download.csdn.net/detail/mamba10/4989154请点击
我是使用dwr整合spring,把对象的创建交给spring。
我的步骤:
0:把dwr.jar 放到 在WEB-INF下lib文件加下 ...必须的.
1: java方法。
在manager.java中写方法
//通过用户名查找用户,检查用户是否已经存在 返回1代表存在(不能注册) 返回0代表不存在(可以注册)
public int canUseName(String username );
2: web.xml配置:
添加
<servlet> <servlet-name>dwr-invoker</servlet-name> <servlet-class>org.directwebremoting.servlet.DwrServlet</servlet-class> <init-param> <description> </description> <param-name>debug</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>
3:web.xml同目录新建 dwr.xml文件
内容如下:
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting 2.0//EN" "http://getahead.org/dwr/dwr20.dtd"> <dwr> <allow> <create creator="spring" javascript="manager" > <param name="beanName" value="manager" ></param> </create> </allow> </dwr>
因为用的spring.所以manager需要放到容器中. 我用的注解方式
@Component("manager") @Scope("prototype") public class ManagerImpl implements Manager { .... }
4:添加js文件:
engine.js 和util.js 是需要用到的.
下载地址: http://download.csdn.net/detail/mamba10/4989463
5 修改register.jsp页面和 javascript代码
register.jsp:
姓名:<input type="text" id="username" name="username" onblur="username1();" /> <div id="name" style="display: none;color:red"> (用户名只能由汉字、字母数字组成,且在6-20位之间)</div> <div id="exist" style="display: none;color:red"> (用户名已经存在)</div> <div id="ok" style="display: none;color:green"> (用户名可以注册)</div> <br />
javascript: javascript 中 直接使用 manager.canUseName( u,callback );
多一个回调函数的参数 callback。
function username1() { var u = $("#username").val(); if (u.length<6||u.length>20) { $("#name").show(); $("#exist").hide(); $("#ok").hide(); return false; } var regu = "^[0-9a-zA-Z\u4e00-\u9fa5]+$"; var re = new RegExp(regu); if (!re.test(u)) { $("#name").show(); $("#exist").hide(); $("#ok").hide(); return false; } manager.canUseName( u,callback); $("#name").hide(); return true; } function callback(data){ if(data == 0 ){ $("#exist").hide(); $("#ok").show(); } if(data == 1){ $("#ok").hide(); $("#exist").show(); } }原文链接:https://www.f2er.com/ajax/166844.html