servlet + ajax 简单实例(实现输入校验)

Ajax

AJAX = Asynchronous JavaScript and XML(异步的 JavaScript 和 XML)。
AJAX 最大的优点是在不重新加载整个页面的情况下,可以与服务器交换数据并更新部分网页内容。

首先我们给出jsp页面

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="c"
           uri="http://java.sun.com/jsp/jstl/core" %>
<html>
<head>
    <title>Title</title>
    <script type="text/javascript">
        function createXMlHttpRequest(){
            return new XMLHttpRequest();
        }


        window.onload = function () {
            var userEle = document.getElementById("uesernameEle");
            userEle.onblur = function () {

                var xmlHttp = createXMlHttpRequest();
                xmlHttp.open("POST","<c:url value="/B"/> ",true);
                xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
                xmlHttp.send("username="+userEle.value);
                xmlHttp.onreadystatechange = function () {
                    if(xmlHttp.readyState == 4 && xmlHttp.status == 200){
                        var text = xmlHttp.responseText;
                        var span = document.getElementById("errSpan");
                        if(text == "1"){

                            span.innerHTML = "用户名已经被注册";
                            }else{
                            span.innerHTML = "用户名可用";
                        }
                    }
                }

            };

        }

    </script>
</head>
<body>

    <form action="" method="post">
        用户名: <input type="text" name="username" id="uesernameEle" /> <span id="errSpan"></span>
        <input type="submit" value="提交"/>
    </form>
</body>
</html>

接下来给出servlet代码块

@WebServlet(name = "B", urlPatterns = "/B")
public class Servlet2 extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        request.setCharacterEncoding("utf-8");
        response.setContentType("text/html;charset=utf-8");
        String name = request.getParameter("username");
        if(name.equalsIgnoreCase("a")){
            response.getWriter().print("1");

        }else {
            response.getWriter().print("0");
        }

    }


}

本次校验非常简单,仅仅是对用户名是否为A进行校验,当输入框中输入内容后失去焦点,则调用js函数,对servlet发送请求,进行处理,如果是名字为”A”,则servlet发送响应内容为“1”,否则为“0”。然后在js中,对响应内容进行判断,如果是“1”,则表示用户名已被注册。如果内容为其他(本次只有“1”和“0”),则表示用户名可用,并在”span”标签中显示相应的提示,效果如下:

这里写图片描述

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值