• AJAX:校验用户名是否被注册


    1. ajax是什么?
    * asynchronous javascript and xml:异步的js和xml
    * 它能使用js访问服务器,而且是异步访问!
    * 服务器给客户端的响应一般是整个页面,一个html完整页面!但在ajax中因为是局部刷新,那么服务器就不用再响应整个页面!而只是数据!
    > json:它是js提供的数据交互格式,它在ajax中最受欢迎!

    2. 异步交互和同步交互
    * 同步:
    > 发一个请求,就要等待服务器的响应结束,然后才能发第二个请求!中间这段时间就是一个字“卡”
    > 刷新的是整个页面!
    * 异步:
    > 发一个请求后,无需等待服务器的响应,然后就可以发第二个请求!
    > 可以使用js接收服务器的响应,然后使用js来局部刷新!

    3. ajax应用场景
    * 百度的搜索框
    * 用户注册时(校验用户名是否被注册过)

    4. ajax的优缺点
    优点:
    * 异步交互:增强了用户的体验!
    * 性能:因为服务器无需再响应整个页面,只需要响应部份内容,所以服务器的压力减轻了!

    缺点:
    * ajax不能应用在所有场景!
    * ajax无端的增多了对服务器的访问次数,给服务器带来了压力!

    JSP:

    <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
    <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>


    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
    <head>
    <title>My JSP 'ajax3.jsp' starting page</title>

    <meta http-equiv="pragma" content="no-cache">
    <meta http-equiv="cache-control" content="no-cache">
    <meta http-equiv="expires" content="0">
    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    <meta http-equiv="description" content="This is my page">
    <!--
    <link rel="stylesheet" type="text/css" href="styles.css">
    -->
    <script type="text/javascript">
    //创建异步对象
    function createXMLHttpRequest() {
    try {
    return new XMLHttpRequest();//大多数浏览器
    } catch (e) {
    try {
    return ActvieXObject("Msxml2.XMLHTTP");//IE6.0
    } catch (e) {
    try {
    return ActvieXObject("Microsoft.XMLHTTP");//IE5.5及更早版本
    } catch (e) {
    alert("哥们儿,您用的是什么浏览器啊?");
    throw e;
    }
    }
    }
    }


    window.onload = function() {
    // 获取文本框,给它的失去焦点事件注册监听
    var userEle = document.getElementById("usernameEle");
    userEle.onblur = function() {
    //1.得到异步对象
    var xmlHttp = createXMLHttpRequest();
    //2.打开连接
    xmlHttp.open("POST", "<c:url value='/ValidateUsernameServlet'/>", true);
    //3.设置请求头:Content-Type
    xmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
    //4.发送请求,给出请求体
    xmlHttp.send("username=" + userEle.value);

    //5.给xmlHttp的onreadystatechange事件注册监听
    xmlHttp.onreadystatechange = function() {
    if(xmlHttp.readyState == 4 && xmlHttp.status == 200) {//双重判断
    //获取服务器的响应,判断是否为1
    // 是:获取span,添加内容:“用户名已被注册”
    var text = xmlHttp.responseText;
    var span = document.getElementById("errorSpan");
    if(text == "1") {
    //得到span元素
    span.innerHTML = "用户名已被注册!";
    } else {
    span.innerHTML = "";
    }
    }
    };
    };
    };
    </script>
    </head>

    <body>
    <h1>用户名是否被注册</h1>
    <form action="" method="post">
    用户名:<input type="text" name="username" id="usernameEle"/><span id="errorSpan"></span><br/>
    密 码:<input type="password" name="password"/><br/>
    <input type="submit" value="注册"/>
    </form>
    </body>
    </html>

    SERVLET:

    public void doPost(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
    request.setCharacterEncoding("utf-8");
    response.setContentType("text/html;charset=utf-8");

    /*
    * 1. 获取参数username
    * 2. 判断是否为itcast
    * 3. 如果是:响应1
    * 4. 如果不是:响应0
    */
    String username = request.getParameter("username");
    if(username.equalsIgnoreCase("WTY")) {
    response.getWriter().print("1");
    } else {
    response.getWriter().print("0");
    }
    }

  • 相关阅读:
    在jQuery EasyUI中实现对DataGrid进行编辑
    ASP生成指定范围随机数的公式
    DIV+CSS牛人也得看的15个CSS
    jQuery EasyUI Tabs关闭Tab时不能完全释放内存解决方法
    Easyui的DateBox日期格式化
    HTML语法大全
    DNN之模块建设PA包制作
    JavaScript精华收集典藏
    三层架构浅析
    welcome to my blog
  • 原文地址:https://www.cnblogs.com/oycq9999/p/10334198.html
Copyright © 2020-2023  润新知