毕业设计(十)---用DWR实现 代替AJAX 用户注册检测用户名是否已经存在



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" οnblur="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();
}

}








  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值