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 方式异步加 ...
随机推荐
- crontab学习笔记
一.crond与crontab简介 在Linux系统中,循环运行的例行性计划任务,是由 cron (crond) 这个系统服务来控制的,而crontab命令则被用来提交和管理用户的需要周期性执行的任务 ...
- xdebug 一直报错 upstream timed out (110: Connection timed out) while reading response header from upstream
本地主机(Windows环境192.168.66.1)访问虚拟机(192.168.66.139)里面的搭建的php环境(系统centos6.5版本,php版本是5.5.30 ,xdebug 2.4.0 ...
- 图解Git
转载自http://marklodato.github.io/visual-git-guide/index-zh-cn.html#diff 图解Git 其他语言: Deutsch English Es ...
- JVM垃圾回收算法及回收器详解
引言 本文主要讲述JVM中几种常见的垃圾回收算法和相关的垃圾回收器,以及常见的和GC相关的性能调优参数. GC Roots 我们先来了解一下在Java中是如何判断一个对象的生死的,有些语言比如Pyth ...
- ubuntu启动流程和要读取相关文件
当前系统环境为:linux mint mate 17.1(基于ubuntu14.04的衍生版) 查阅资料后总结如下: 首先: /etc/rc.d链接目标为:/etc /etc/rc*.d文件夹中的脚本 ...
- HDU 4586 Play the Dice (数学,概率,等比公式,极限)
题意:给你一个n面的骰子每个面有一个值,然后其中有不同值代表你能获得的钱,然后有m个特殊的面,当你骰到这一面的时候可以获得一个新的机会 问你能得到钱的期望. 析: 骰第一次 sum/n 骰第二 ...
- Win10 安装配置Android sdk及adb环境变量
今天在新买的win10系统笔记本上安装配置adb,开始觉得挺简单的事,公司win7电脑上有现成的,但实际过程中……没想的那么简单了!好了,废话少说,直接正题. 研究了好一会下,总算搞定,总结如下: 1 ...
- 用 Inkscape 做 SVG 给 TPath
FireMonkey 里的 TPathData 支持 SVG 的基本绘图指令,因此可以运用 Inkscape 软件,提取 SVG 的绘图内容,请见图片说明: INKSCAPE https://inks ...
- [LeetCode 题解] Combination Sum
前言 [LeetCode 题解]系列传送门: http://www.cnblogs.com/double-win/category/573499.html 1.题目描述 Given a se ...
- 给刚玩Hadoop的朋友一些建议
随着两会中间央视新闻天天说大数据,很多人纷纷开始关注大数据和Hadoop以及数据挖掘和数据可视化了,我现在创业,遇到很多传统数据行业往Hadoop上面去转型的公司和个人,提了很多问题,大多数问题还都是 ...