2.ajax+servlet实现注册时用户名验证
效果:

精灵图(来源:从百度注册中download下来的):

userVerify.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
<style type="text/css">
*{
margin:0;
padding:0;
}
input{
height:24px;
}
span{
display:none;
float: right;
position: relative;
width: 250px;
top: 5px;
left: 5px;
height: 16px;
line-height: 14px;
padding-left: 20px;
background:url(img/reg_icons.png) -80px 0 no-repeat;
}
</style> </head>
<body>
<table>
<tr>
<td>用户名:</td>
<td><input type="text" name="uname" id="uname" onblur="checkUserName()"><span id="tip"></span></td>
</tr>
<tr>
<td colspan="2"><input type="button" value="注册"></td>
</tr>
</table>
<script type="text/javascript">
function checkUserName(){
var uname = document.getElementById("uname").value;
var xmlHttp;
if(window.XMLHttpRequest){
xmlHttp = new XMLHttpRequest();
}else{
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
}
xmlHttp.onreadystatechange = function(){
//判断返回状态
if(xmlHttp.readyState == 4 && xmlHttp.status == 200){
document.getElementById("tip").style.display = "block";
var dataObj = eval("("+xmlHttp.responseText+")");
if(dataObj.exist == "success"){
document.getElementById("tip").innerText = "该用户可用!";
document.getElementById("tip").style.color = "#5BC92E";
document.getElementById("tip").style.backgroundPosition = "-80px 0";
}else if(dataObj.exist == "error"){
document.getElementById("tip").innerText = "请输入用户名!";
document.getElementById("tip").style.color = "#fc4343";
document.getElementById("tip").style.backgroundPosition = "-80px -24px";
}else{
document.getElementById("tip").innerText = "该用户已存在!";
document.getElementById("tip").style.color = "#fc4343";
document.getElementById("tip").style.backgroundPosition = "-80px -24px"; } } } xmlHttp.open("get","checkUserName?action=checkUserName&uname="+uname,true);
xmlHttp.send();
}
</script>
</body>
</html>
CheckUserNameAjaxServlet.java
package com.xxc.ajax; import java.io.IOException;
import java.io.PrintWriter; import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import net.sf.json.JSONObject; public class CheckUserNameAjaxServlet extends HttpServlet{ /**
*
*/
private static final long serialVersionUID = 1L;
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
this.doPost(req, resp);
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
resp.setContentType("text/html;charset=utf-8");
String action = req.getParameter("action");
if("checkUserName".equals(action)) {
this.checkUserName(req, resp);
}
} public void checkUserName(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { PrintWriter out = resp.getWriter();
String uname = req.getParameter("uname");
JSONObject resultJson = new JSONObject();//注意:使用此对象需要导入包,下面会介绍
if(uname.trim()==null || "".equals(uname.trim())){
resultJson.put("exist", "error");//用户名为空
}else if("xxc".equals(uname)) {
resultJson.put("exist", true);//用户名已存在
}else {
resultJson.put("exist", "success");//用户名不存在
}
out.println(resultJson);
out.flush();
out.close();
} }
web.xml
<servlet>
<servlet-name>CheckUserNameAjaxServlet</servlet-name>
<servlet-class>com.xxc.ajax.CheckUserNameAjaxServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>CheckUserNameAjaxServlet</servlet-name>
<url-pattern>/checkUserName</url-pattern>
</servlet-mapping>
实现ajax 的所需的json包(版本不一定是我所列的):

2.ajax+servlet实现注册时用户名验证的更多相关文章
- 用AJAX实现页面登陆以及注册用户名验证
AJAX即“Asynchronous Javascript And XML”(异步JavaScript和XML),是指一种创建交互式网页应用的网页开发技术. AJAX 是一种用于创建快 ...
- PHP+Ajax 异步通讯注册验证
HTML代码 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www. ...
- ajax基础语法、ajax做登录、ajax做用户名验证是否可用、ajax做关键字查询动态显示、ajax做用表格显示数据并增加操作列
AJAX: AJAX 是一种用于创建快速动态网页的技术. 通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新.这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新. ...
- 关于ajax用户名验证和jquery实现简单表单验证
首先来说用户名验证: 前台: <tr> <td class="tableleft">教师编号</td> <td><input ...
- Myeclipse+AJAX+Servlet
最近刚开始学AJAX的知识,这里介绍一个简单的Myeclipse+AJAX+Servlet项目. 此项目包含3个文件:index.jsp.check.java.还有一个需要配置的文件是:web.xml ...
- Django项目:CRM(客户关系管理系统)--51--42PerfectCRM实现AJAX全局账号注册
#urls.py """PerfectCRM URL Configuration The `urlpatterns` list routes URLs to views. ...
- 利用Form组件和ajax实现的注册
一.注册相关的知识点 1.Form组件 我们一般写Form的时候都是把它写在views视图里面,那么他和我们的视图函数也不影响,我们可以吧它单另拿出来,在应用下面建一个forms.py的文件来存放 2 ...
- apply-register-acl 参数允许FreeSWITCH分机注册/拨打不验证密码
今天调试 发现 注册的分机 的 `Auth-User` 居然是 `unknown` !!! 怎么回事? 仔细对比检查 发现, internal profile 指定了 `apply-register- ...
- 通过 jsp+ajax+servlet+webservice 远程访问天气预报服务
通过 jsp+ajax+servlet+webservice 远程访问天气预报服务 - webservice 客户端访问的方式 1. java代码来访问 2. ajax 方式异步加 ...
随机推荐
- 电脑破解wifi密码(至少连过1次的才可以)
电脑破解wifi密码(至少连过1次的才可以) 连过的wifi密码忘记了怎么办? 只要你电脑连过的都能破解. cmd输入以下内容查看电脑连接过的wifi名字. netsh wlan show profi ...
- 白盒测试实践-任务进度-Day01
12-05 任务安排 小组成员 华同学.郭同学.覃同学.刘同学.穆同学.沈同学 任务划分 任务1:依据白盒测试方法设计测试用例 说明:我们小组就不使用测试管理工具了,直接用excel文件的形式记录,具 ...
- Android Touch 事件总结
---恢复内容开始--- 1.Touch事件传递机制 过程有点儿类似于栈, ViewGroup的子类有都继承它的以下3个方法: public boolean dispatchTouchEvent(Mo ...
- SNP芯片的原理
Illumina的SNP芯片原理 Illumina的SNP生物芯片的优势在于: 第1,它的检测通量很大,一次可以检测几十万到几百万个SNP位点 第2,它的检测准确性很高,它的准确性可以达到99.9%以 ...
- ServletRequest面试题
使用request获得请求行:String getmethod():获得请求的资源:String getcontextpath():----web应用名称request是一个域对象request完成请 ...
- sublime 3插件安装记录
安装sublime 3的package control管理器: 从菜单 View - Show Console 或者 ctrl + ~ 快捷键,调出 console.将以下 Python 代码粘贴进去 ...
- OBD Problem Vehicles
This page contains a list of vehicles that are known to be non-compliant with OBD-II in one way or a ...
- springboot+swagger集成
一.swagger介绍 Swagger 是一款RESTFUL接口的文档在线自动生成+功能测试功能软件.本文简单介绍了在项目中集成swagger的方法和一些常见问题.如果想深入分析项目源码,了解更多内容 ...
- MySQL闪退
把配置文档的如图位置打开
- HDU 6153 A Secret (KMP)
题意:给定两个串,求其中一个串 s 的每个后缀在另一个串 t 中出现的次数. 析:首先先把两个串进行反转,这样后缀就成了前缀.然后求出 s 的失配函数,然后在 t 上跑一遍,如果发现不匹配了或者是已经 ...