案例1.用Ajax实现用户名的校验
用Ajax实现用户名的校验
java的验证类
public class UserDao {
public boolean checkUserName(String name) { //这里的name是网页上用户输入的用户名
Connection conn = JdbcUtil.getConnection(); //实现和和数据库的连接,这个方法这里没有写,只要知道这是用来连接数据库的
PreparedStatement ps = null;
ResultSet rs = null;
boolean flag = false;
String sql = "select * from ajaxuser where username=?";
try {
ps = conn.prepareStatement(sql);
ps.setString(1, name);
rs = ps.executeQuery();
if (rs.next()) { //如果数据库中有下一个,那就说明数据库中已经有相同的用户名了,那就返回true
flag = true;
}
} catch (SQLException e) {
e.printStackTrace();
}
return flag; //没有重名返回false
}
}
MyServlet类主要通过Ajax是得到网页上的用户名,在把用户名放入到上面的方法中,在把得到的结果返回到界面
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/xml;charset=UTF-8"); //采用XML输出
PrintWriter out =response.getWriter(); //同样是write写出
String username=request.getParameter("username"); //得到表单输入的用户名
UserDao dao=new UserDao();
boolean flag =dao.checkUserName(username); //把表单中输入的用户名和数据库中进行核对
StringBuilder sb =new StringBuilder(); //因为是输出为xml格式,所以要输出下面这种格式
//<response><a>0</a></response> <response><a>1</a></response>
sb.append("<response>");
sb.append("<a>");
if(flag){
sb.append("1"); //说明如果存在在自定义标签a中value值为1
}else{
sb.append("0"); //没有为0
}
sb.append("</a>");
sb.append("</response>");
String xml=sb.toString(); //完成拼接后转为String类型
out.write(xml); //再把这一整个xml格式输出
out.flush(); //立即执行
out.close();
}
Jsp界面是用来显示在客户端
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<html>
<script type="text/javascript">
var XMLHttpReq; function createXMLHttpRequest() { //这是固定膜拜,因为浏览器有很多种所以判断,这个方法是得到XMLHttpRequest对象
if (window.XMLHttpRequest) { XMLHttpReq = new XMLHttpRequest();
} else if (window.ActiveXObject()) { try {
XMLHttpReq = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
XMLHttpReq = new ActiveXObject("Microsoft.XMLHTTP");
}
}
}
function back(){
alert(XMLHttpReq.readyState);
if(XMLHttpReq.readyState==4){ //判断对象状态是否完成
if(XMLHttpReq.status==200){
//这里相当于得到servlet输出的<response><a>0</a></response>这个标签
var xmlData=XMLHttpReq.responseXML;
var un=document.getElementById("un");
//得到a标签的第一个子标签,也就是文本标签的value值
var flag =xmlData.getElementsByTagName("a")[0].firstChild.nodeValue; //就是得到0或者1
if(flag==1){
un.innerHTML="该邮箱已被注册,请重新输入...."; //这就是span的作用了,用来回显
}else if(flag==0){
un.innerHTML="恭喜该邮箱可以使用..";
}} }}
function checkUserName(){
var username=document.getElementById("username").value; //得到客户端输入的name
var url="MyServlet?username="+username;
createXMLHttpRequest();
1 XMLHttpReq.onreadystatechange=back; //这里back可以没有括号也可以有,每当change改变一次都会调用back方法
XMLHttpReq.open("GET",url,true);
XMLHttpReq.send(null); //上面的back方法就已经执行了,其实是没有多大区别,这主要是readyState方法的特点,每一次值改变都会触发onreadystate change方法,放在上面和下面唯一区别就是放在下面back方法多执行一次,但也没有关系,因为back方法了只有一个判断,只有最后一次readyState=4时,
才为true,所以没有关系具体的自己理解
}
</script>
<body>
<form action="" > //这里可以不写因为上面url写了
用户名:<input type="text" name="username" id="username" onblur="checkUserName()"><span id ="un"></span><br/> //这里的span标签主要是用来回显 用的很机智
密码:<input type="password" name="password" ><br/>
<input type="submit" value="注册">
</form>
</body>
</html> 总结:这个以后应该会经常用到,没什么技术难点,自己多看多理解
案例1.用Ajax实现用户名的校验的更多相关文章
- SSH网上商城---使用ajax完成用户名是否存在异步校验
小伙伴在上网的时候,需要下载或者观看某些视频资料,更或者是在逛淘宝的时候,我们都需要注册一个用户,当我们填写好各种信息,点击确定的时候,提示用户名已经存在,小编就想,为什么当我们填写完用户名的时候,她 ...
- 使用ajax验证用户名重复
继上次的用户注册登录案例之后,对其中的部分功能再做进一步改进.上一版中用户提交表单后才对用户名进行校验,虽然做了回显,但还是感觉功能弱了些.为了能有更好用户体验,不是在用户提交表单后才给提示,而是在用 ...
- 11月10日上午ajax基础知识、用ajax做登录页面、用ajax验证用户名是否可用、ajax动态调用数据库
1.ajax的基础知识 ajax是结合了jquery.php等几种技术延伸出来的综合运用的技术,不是新的内容.ajax也是写在<script>标签里面的. 如果使用ajax一定是要有1个处 ...
- 利用jQuery实现的Ajax 验证用户名是否存在
异步刷新实现方式有多种,也可以借助JS的多种框架,下面是使用jQuery框架实现的AJAX 验证用户名是否存在 jQuery.ajax概述 HTTP 请求加载远程数据. 通过jQuery 底层 AJA ...
- asp.net ajax 检测用户名是否可用代码
原文 asp.net ajax 检测用户名是否可用代码 .net ajax 检测用户名是否可用代码 <script type="text/网页特效" src="c ...
- asp.net ajax检查用户名是否存在代码
原文 asp.net ajax检查用户名是否存在代码 用户注册时,我们经常需要检查用户名是否存在,本文就是实现无刷新验证用户名 打开开发环境VS 2005,新建项目(或打开现有项目),新建一个Web ...
- ajax基础知识、用ajax做登录页面、用ajax验证用户名是否可用、ajax动态调用数据库
1.ajax的基础知识 ajax是结合了jquery.php等几种技术延伸出来的综合运用的技术,不是新的内容.ajax也是写在<script>标签里面的. 如果使用ajax一定是要有1个处 ...
- Ajax检测用户名是否已经注册
程序功能 当用户名输入完成(即用户名输入框失去焦点),利用Ajax检测用户名是否已经注册! 实现过程 利用Ajax向CheckUserServlet发送请求,判断该用户名是否可用.这里只是为了演示Aj ...
- Ajax验证用户名是否被注册
Ajax验证用户名是否被注册 var xmlHttp; function createXMLHttpRequest(){ // 创建XMLHttp请求对象 if(window.ActiveXObjec ...
随机推荐
- Maximal Rectangle
很不好想的一道题,参考:http://blog.csdn.net/doc_sgl/article/details/11832965 分为两步:把原矩阵转为直方图,再用largest rectangle ...
- JSPatch热更新的利器.
如果用一句话来描述JSPatch,就是利用系统自带的JavaScriptCore.framework配合RunTime机制,进行实时的代码下载与运行.. 而且使用也很简单,启动,加载JS,运行... ...
- 在CentOS 7 中 安装 VSFTP
在线安装:yum install -y vsftpd 使用yum 进行卸载:yum -y remove vsftpd 编辑配置:vi /etc/vsftpd/vsftpd.conf 查看FTP进程是否 ...
- 让“是男人就下到100层”在Android平台上跑起来
原工程:https://github.com/jeekun/DownFloors 移植后的代码:HelloCpp.zip 移植后的APK:HelloCpp.apk 说明:(cocos2d-x版本是“ ...
- java 深入技术八(内省)
1. javabean的软件设计思想 2.内省:封装了java反射,提供直接操作属性的Setter和getter方法的方法 3.核心API:BeanInfo java 的描述信息,Introspect ...
- Java获取用户ip
/** * 获取客户端ip地址(可以穿透代理) * * @param request * @return */ public static String getRemoteAddr(HttpServl ...
- bat命令总结
1.复制文件 copy cd.dll %windir%\system32 2.复制文件夹 /s 复制目录和子目录,除了空的. /e复制目录和子目录,包括空的. xcopy %dir%\template ...
- C#递归、动态规划计算斐波那契数列
//递归 public static long recurFib(int num) { if (num < 2) ...
- Docker和Docker-compose安装教程以及docker-elk,docker-storm安装教程
此安装教程仅供我自己安装配置时查看,其他的人不可以偷看!!! 安装Docker 1. Update package information, ensure that APT works with th ...
- 【Java EE 学习 72 上】【数据采集系统第四天】【增加调查logo】【文件上传】【动态错误页指定】【上传限制】【国际化】
增加logo的技术点:文件上传,国际化 文件上传的功能在struts2中是使用文件上传拦截器完成的. 1.首先需要在页面上添加一个文件上传的超链接. 点击该超链接能够跳转到文件上传页面.我给该表单页面 ...