<!-- 注册 -->
<action name="regist" class="WebMemberInfoAction1">
<result>nz-xc/regist.jsp</result>
</action> <script language="javascript">
var request;
function createRequest() {
try {
request = new XMLHttpRequest();
} catch (trymicrosoft) {
try {
request = new ActiveXObject("Msxml2.XMLHTTP");
} catch (othermicrosoft) {
try {
request = new ActiveXObject("Microsoft.XMLHTTP");
} catch (failed) {
request = false;
}
}
}
if (!request) {
alert("err Happend!");
return null;
}
return request;
}
function checkNameAjax(obj) {
document.getElementById("loadingImg").style.display="block";
request = createRequest();
/*判断选择国家与当前语言是否相同
如果相同就不刷新。不相同刷新
*/
var memberName = obj.value;
var url = "regist!checkName.shtml?memberName="+memberName ;
request.open("GET", url, "true");
request.onreadystatechange = disResult;//隐性的循环
request.send(null);
}
function disResult() {
if (request.readyState == 4) {
if (request.status == 200) {
//一切都OK了,那就该用Javascript去执行你想要的动作了。
document.getElementById("loadingImg").style.display="none";
alert(request.responseText);
} else {
alert('Something Wrong has Happend!');
}
}
}
</script><tr style="width:287px;">
<td width="45px;">姓名:</td>
<td align="left" width="160px;"><input type="text" name="webMember.memberName" id="webMember.memberName" onblur="checkNameAjax(this)"/>
</td>
<td>
<div id="loadingImg" style="background-color: ;float: left;width: 82px;text-align: left;display: none">
<img src="nz-xc/loader.gif" height="20px;" width="20px;"/>
</div>
</td>
</tr>//验证用户名是否存在
public String checkName() throws Exception {
WebMember webMember1 =newsInfoService.findWebMemberByName(memberName);
String mes = "";
if(webMember1!=null){
mes = "用户名已经存在";
// setSuccessMsg("0");//用户名已经存在
}else{
mes = "不存在";
//setSuccessMsg("1");
}
System.out.println("mes===="+mes);
//return ISConstants.IS_OPER_SUCCESS;
HttpServletResponse response = ServletActionContext.getResponse();
PrintWriter out=response.getWriter();
out.write(mes);
out.close();
return null;
}
下边这个是验证经典的带下拉框
前台:index.jsp
<html>
<head>
<title></title>
<!-- 验证景区名称是否添加 -->
<script language="javascript">
var request;
function createRequest() {
try {
request = new XMLHttpRequest();
} catch (trymicrosoft) {
try {
request = new ActiveXObject("Msxml2.XMLHTTP");
} catch (othermicrosoft) {
try {
request = new ActiveXObject("Microsoft.XMLHTTP");
} catch (failed) {
request = false;
}
}
}
if (!request) {
alert("err Happend!");
return null;
}
return request;
}
function getBackInfo() {
request = createRequest();
var scenicname = document.getElementById("scenicname").value;
scenicname= encodeURI(scenicname);
scenicname = encodeURI(scenicname);//注重要两次
if (scenicname==null||scenicname=="") {
alert("请输入景点名称");
return false;
} else {
var url = "scenic.do?ss=checkName&scenicname=" + scenicname;
request.open("GET", url, "true");
request.onreadystatechange = disResult;//隐性的循环
request.send(null);
}
}
function disResult() {
if (request.readyState == 4) {
if (request.status == 200) {
//一切都OK了,那就该用Javascript去执行你想要的动作了。
alert(request.responseText);
alert('done');
} else {
alert('Something Wrong has Happend!');
}
}
}
</script>
<body class="thrColAbsHdr">
<form name="form1" id="form1" action="scenic.do?ss=add">
景区名称:
<input type="text" id="scenicname" class="scenicName" name="scenicName" onblur="getBackInfo();" style="color: #999"/>
</form>
</body>
</html>
action :
public ActionForward checkName(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
String name = request.getParameter("scenicname");
try {
// 转换编码!
name = java.net.URLDecoder.decode(name, "utf-8");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
ScenicDao sdao = new ScenicDao();
String mes = null;
PrintWriter out=response.getWriter();
if(sdao.checkName(name)){
mes = "该景区名称已经存在";
}else{
mes = "可以添加";
}
out.write(mes);
out.close();
// return mapping.findForward("add");
return null; //这里要是返回fordword的话就会报错java.lang.IllegalStateException: Cannot forward after response has been committed 错误,所以要返回null.
}
dao:
// 检查景区名称是否存在
public Boolean checkName(String name) throws Exception {
Connection conn = util.ConnUtil.conn();
Statement stmt = conn.createStatement( ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);
String sql = "select * from scenic where name='" + name + "'";
ResultSet rs = stmt.executeQuery(sql);
if (rs.next()) {
rs.close();
stmt.close();
conn.close();
return true;
} else {
return false;
}
}
配置文件:
<action path="/scenic" parameter="ss" input="/index.jsp" scope="request" type="ScenicAction">
</action>
本文介绍了用户注册过程中的姓名验证以及景区名称的合法性检查,包括JavaScript实现的异步请求和后端逻辑处理。

被折叠的 条评论
为什么被折叠?



