资源描述
应用DWR框架实现验证用户注册时的用户名称是否重名的应用示例.docx
《应用DWR框架实现验证用户注册时的用户名称是否重名的应用示例.docx》由会员分享,可在线阅读,更多相关《应用DWR框架实现验证用户注册时的用户名称是否重名的应用示例.docx(33页珍藏版)》请在冰豆网上搜索。
应用DWR框架实现验证用户注册时的用户名称是否重名的应用示例
1.1应用DWR框架实现验证用户注册时的用户名称是否重名的应用示例
1.1.1构建出示例项目系统的表示层相关JSP页面
1、在示例项目系统中添加一个包含有注册表单的JSP页面
在Web应用中添加一个包含有注册表单的JSP页面,本页面的文件名称为userRegister.jsp。
如下为在MyEclipse开发工具中创建userRegister.jsp页面文件的局部截图:
2、编辑userRegister.jsp页面文件以添加一个实现注册的表单
在userRegister.jsp页面文件中添加一个实现注册的表单,并对用户在注册表单中所输入的用户的名称进行实时检查。
(1)userRegister.jsp页面文件最终的代码示例
<%@pagelanguage="java"pageEncoding="GB18030"%>
<%@tagliburi="http:
//struts.apache.org/tags-bean"prefix="bean"%>
<%@tagliburi="http:
//struts.apache.org/tags-html"prefix="html"%>
<%@tagliburi="http:
//struts.apache.org/tags-logic"prefix="logic"%>
<%@tagliburi="http:
//struts.apache.org/tags-tiles"prefix="tiles"%>
<%
StringwebContext=request.getContextPath();
%>
DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.01Transitional//EN">
htmllang="true">
base/>
userRegister.jsp
/webapp.js'>
--
-->
formaction="/register.do"method="post">
hiddenproperty="action"value="2"/>
用户名称:
textproperty="userName"
onblur="checkUserNameValid(this.value)"
style="background:
#FFFFFF"/>
#FF9900;display:
none">
用户密码:
passwordproperty="userPassWord"/>
submitproperty="submitButton"value="提交"disabled="true"/>
form>
html>
(2)userRegister.jsp页面文件的预览示例图
3、在示例项目中的webapp.js程序文件中添加下面的功能方法
functioncheckUserNameValid(inputedUserName){
userInfoManageBean.checkUserNameValid(inputedUserName,
checkUserNameValidCallBackFun);
}
checkUserNameValidCallBackFun=function(returnCheckUserNameBoolean){
if(!
returnCheckUserNameBoolean){
document.getElementById("userName").style.background="#FFFFFF";
$("showStr").style.display="none";//$=document.getElementById
$("submitButton").disabled=false;
}
else{
$("showStr").style.display="";
$("userName").style.background="#FF0000";
$("showStr").innerText="您所输入的用户名称已经存在了!
";
$("submitButton").disabled=true;
}
}
1.1.2在示例项目中添加与Struts框架表单相关的ActionForm组件
1、在示例项目中添加一个ActionForm组件,如下为创建的示例图
2、设置ActionForm组件的程序类名称
程序类名称为com.px1987.dwrexampl.actionform.RegisterActionForm,程序包为registerActionForm,org.apache.struts.action.ActionForm。
如下为创建RegisterActionForm程序类的示例图:
3、在RegisterActionForm程序类中添加两个成员属性userPassWord和userName
(1)如下为创建两个成员属性userPassWord和userName的示例图
(2)两个成员属性userPassWord和userName的定义
privateStringuserName;
privateStringuserPassWord;
Stringaction=null;
(3)RegisterActionForm程序最终的代码示例
packagecom.px1987.dwrexampl.actionform;
importjavax.servlet.http.HttpServletRequest;
importorg.apache.struts.action.ActionErrors;
importorg.apache.struts.action.ActionForm;
importorg.apache.struts.action.ActionMapping;
publicclassRegisterActionFormextendsActionForm{
privateStringuserName;
privateStringuserPassWord;
Stringaction=null;
publicActionErrorsvalidate(ActionMappingmapping,
HttpServletRequestrequest){
returnnull;
}
publicvoidreset(ActionMappingmapping,HttpServletRequestrequest){
}
publicStringgetUserName(){
returnuserName;
}
publicvoidsetUserName(StringuserName){
this.userName=userName;
}
publicStringgetUserPassWord(){
returnuserPassWord;
}
publicvoidsetUserPassWord(StringuserPassWord){
this.userPassWord=userPassWord;
}
publicStringgetAction(){
returnaction;
}
publicvoidsetAction(Stringaction){
this.action=action;
}
}
1.1.3在示例项目中添加一个Action程序类以实现对该表单进行响应和处理
1、在示例项目中添加一个Action程序类
Action程序类名称为RegisterAction,Type名称为com.px1987.dwrexampl.action.RegisterAction。
如下为创建RegisterAction程序类的示例图:
2、设置请求的路径为/register
3、MyEclipse开发工具将创建出该Action程序类的初始代码
4、编程该RegisterAction类程序代码,最终的示例程序代码如下
packagecom.px1987.dwrexampl.action;
importjavax.servlet.http.HttpServletRequest;
importjavax.servlet.http.HttpServletResponse;
importorg.apache.struts.action.Action;
importorg.apache.struts.action.ActionForm;
importorg.apache.struts.action.ActionForward;
importorg.apache.struts.action.ActionMapping;
importcom.px1987.dwrexampl.actionform.RegisterActionForm;
importjava.io.*;
publicclassRegisterActionextendsAction{
publicActionForwardexecute(ActionMappingmapping,ActionFormform,
HttpServletRequestrequest,HttpServletResponseresponse){
RegisterActionFormregisterActionForm=(RegisterActionForm)form;
returnmapping.findForward("registerSuccess");
}
}
1.1.4添加示例项目中与表示层相关的各个JSP页面文件
1、添加JSP页面文件registerSuccess.jsp
(1)如下为创建JSP页面文件registerSuccess.jsp的局部截图
(2)JSP页面文件registerSuccess.jsp的最终代码示例
<%@pagelanguage="java"pageEncoding="GB18030"%>
<%@tagliburi="http:
//struts.apache.org/tags-bean"prefix="bean"%>
<%@tagliburi="http:
//struts.apache.org/tags-html"prefix="html"%>
<%@tagliburi="http:
//struts.apache.org/tags-logic"prefix="logic"%>
<%@tagliburi="http:
//struts.apache.org/tags-tiles"prefix="tiles"%>
DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.01Transitional//EN">
htmllang="true">
base/>
registerSuccess.jsp
--
-->
您的同步的注册请求被正确地处理了!
html>
2、在该JSP页面文件中添加跳转的目标registerSuccess
(1)如下为创建跳转的目标registerSuccess的局部截图
(2)最终产生的配置定义标签的示例
1.1.5在项目中添加业务功能处理相关的接口和功能实现类
1、添加一个实现对用户名称等信息进行检查的业务接口
(1)添加一个实现对用户名称等信息进行检查的业务接口
业务组件接口名称为UserInfoManageInterface,程序包名称为com.px1987.dwrexampl.model。
如下为创建UserInfoManageInterface接口的局部截图:
(2)在UserInfoManageInterface接口中定义出如下的功能方法
packagecom.px1987.dwrexampl.model;
publicinterfaceUserInfoManageInterface{
publicbooleancheckUserNameValid(StringuserName);
}
2、添加一个实现对用户名称等信息进行检查的业务接口的实现类组件
(1)实现类的出为UserInfoManageBean,程序包名称为com.px1987.dwrexampl.model,如下为创建UserInfoManageBean实现类的局部截图:
(2)编程UserInfoManageBean实现类的功能实现方法
packagecom.px1987.dwrexampl.model;
publicclassUserInfoManageBeanimplementsUserInfoManageInterface{
publicUserInfoManageBean(){
}
publicbooleancheckUserNameValid(StringuserName){
booleanokOrNot=false;
//下面的代码在实际项目中应该改变为对数据库系统的访问
if(userName.equals("yang")){
okOrNot=true;
}
else{
okOrNot=false;
}
returnokOrNot;
}
}
1.1.6公开UserInfoManageBean业务实现类中的各个功能方法
1、在示例项目的dwr-timeBean.xml配置文件中添加如下的配置定义内容
(1)dwr-timeBean.xml配置文件中的配置代码示例
(2)配置结果的示例图
2、dwr-timeBean.xml配置文件的完整代码示例
xmlversion="1.0"encoding="UTF-8"?
>
DOCTYPEdwrPUBLIC"-//GetAheadLimited//DTDDirectWebRemoting2.0//EN""http:
//www.getahead.ltd.uk/dwr//dwr20.dtd">
value="com.px1987.dwrexampl.model.UserInfoManageBean"/>
3、查看示例项目中所发布的各个业务功能类所对应的*.js文件
(1)继续部署本示例项目,如下为示例图
(2)在浏览器的URL地址栏中输入http:
//localhost:
8080/DWRWebTest/dwr/index.html则进入DWR框架的在线测试页面
(3)然后点击DWR框架的在线测试页面中的“userInfoManageBean”的超链接,将出现下面的内容
从而获得在页面中对该JavaBean进行远程引用时的*.js文件名称
src='/DWRWebTest/dwr/interface/userInfoManageBean.js'>
(4)也可以对示例项目中的相关业务组件中的功能方法进行在线测试
或者
4、在示例项目的JSP页面文件userRegister.jsp中包含上面的各个*.js文件
<%@pagelanguage="java"pageEncoding="GB18030"%>
<%@tagliburi="http:
//struts.apache.org/tags-bean"prefix="bean"%>
<%@tagliburi="http:
//struts.apache.org/tags-html"prefix="html"%>
<%@tagliburi="http:
//struts.apache.org/tags-logic"prefix="logic"%>
<%@tagliburi="http:
//struts.apache.org/tags-tiles"prefix="tiles"%>
<%
StringwebContext=request.getContextPath();
%>
DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.01Transitional//EN">
htmllang="true">
base/>
userRegister.jsp
src='<%=webContext%>/dwr/interface/userInfoManageBean.js'>
/dwr/engine.js'>
/dwr/util.js'>
/webapp.js'>
--
-->
formaction="/register.do"method="post">
hiddenproperty="action"value="2"/>
用户名称:
textproperty="userName"
onblur="checkUserNameValid(this.value)"styl