zoukankan      html  css  js  c++  java
  • ajax验证用户名是否存在

    jsp页面

    <head>

    <script type="text/javascript" src="js/register.js"></script>

    </head>

    <table>

    <td>用户名:</td>
    <td> <input type="text" name="r_name" id="r_name" onblur="CheckUserName()">
    <span id="span01"></span>
    </td>

    </table>

    js文件夹下的register.js

    //创建对象
    function ajaxFunction(){
    var xmlHttp;
    try{
    // 适用于IE7+, Firefox, Chrome, Opera, Safari
    xmlHttp=new XMLHttpRequest();
    }
    catch(e){
    try{
    //Internet Explorer
    xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
    }
    catch(e){
    try{
    // 适用于IE6, IE5
    xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
    }
    catch(e){
    xmlHttp=false;
    }
    }
    }
    return xmlHttp;
    }

    var flag=ture;
    function CheckUserName(){
    //获取jsp页面输入的值
    var name=document.getElementById("r_name").value;
    if(name==""||name==null){
    document.getElementById("span01").innerHTML="<font color='red'>用户名不能为空!</font>"
    flag=false;
    }else{
    //1.创建对象
    var request=ajaxFunction();
    //2.发送请求
    request.open("POST","/StudyWeb/CheckUserNameServlet",true);//true表示异步提交
    //注册状态改变监听,获取服务器传送过来的数据
    request.onreadystatechange=function(){
    //readyState==4表示请求已经完成,且响应已就绪。status==200表示“OK”
    if(request.readyState==4 && request.status==200){
    var data=request.responseText;//获取CheckUserNameServlet中response中存储的值
    if(data == 1){
    document.getElementById("span01").innerHTML="<font color='red'>用户名已存在!</font>"
    flag=false;
    }else{
    document.getElementById("span01").innerHTML="<font color='green'>√</font>"
    flag=true;
    }
    }
    }
    //如果是post方式带数据,那么这里要添加头,说明提交的数据类型是一个经过url编码的form表单数据
    request.setRequestHeader("Content-type","application/x-www-form-urlencoded;charset=UTF-8");
    //带数据过去,在send方法里填写表单数据
    request.send("name="+name);
    }
    return flag;
    }

    后台StudyWeb项目下的CheckUserNameServlet

    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    //获取ajax发送过来的name值
    String r_name=request.getParameter("name");
    try {
    //检验是否存在该用户名
    boolean isExist=userService.CheckUserName(r_name);
    System.out.println("isExist"+isExist);
    //通知页面,到底有没有
    if(isExist){
    response.getWriter().println(1);//存在用户名
    }else{
    response.getWriter().println(2);//不存在该用户
    }
    } catch (Exception e) {
    e.printStackTrace();
    }
    }

    UserDaoImpl中方法的实现

    public boolean CheckUserName(String u_name) {
    boolean flag=false;
    String sql="select u_id,u_name,u_password,u_email,u_phone from user where u_name=?";
    conn=super.getConnection();
    try {
    pstmt=conn.prepareStatement(sql);
    pstmt.setString(1,u_name);
    rs=pstmt.executeQuery();

    //如果存在我输入的用户名和数据库表中已有的用户名相同时
    if(rs.next()){

    flag=true;
    }
    } catch (SQLException e) {

    e.printStackTrace();
    }finally{
    super.closeAll(conn, pstmt, stmt, rs);
    }
    return flag;
    }

  • 相关阅读:
    atitit.nfc 身份证 银行卡 芯片卡 解决方案 attilax总结
    atitit.php 流行框架 前三甲为:Laravel、Phalcon、Symfony2 attilax 总结
    Atitit.执行cmd 命令行 php
    Atitit. 图像处理jpg图片的压缩 清理垃圾图片 java版本
    atitit。企业组织与软件工程的策略 战略 趋势 原则 attilax 大总结
    atitit. 管理哲学 大毁灭 如何防止企业的自我毁灭
    Atitit.java的浏览器插件技术 Applet japplet attilax总结
    Atitit.jquery 版本新特性attilax总结
    Atitit. 软件开发中的管理哲学一个伟大的事业必然是过程导向为主 过程导向 vs 结果导向
    (转)获取手机的IMEI号
  • 原文地址:https://www.cnblogs.com/97chen629/p/10669030.html
Copyright © 2011-2022 走看看