JavaWeb22案例
#头条创作挑战赛#12.3 案例
需求:在完成用户注册时,当用户名输入框失去焦点时,校验用户名是否在数据库已存在
12.3.1 分析前端完成的逻辑 给用户名输入框绑定光标失去焦点事件 onblur 发送 ajax请求,携带username参数 处理响应:是否显示提示信息 后端完成的逻辑 接收用户名 调用service查询User。此案例是为了演示前后端异步交互,所以此处不做业务逻辑处理,直接将返回结果定为 true 返回标记
整体流程如下:
12.3.2 后端实现 package web.servlet; /** * @Author 晨默 * @Date 2022/9/12 22:51 */ import javax.servlet.*; import javax.servlet.http.*; import javax.servlet.annotation.*; import java.io.IOException; @WebServlet(name = "SelectUserServlet", value = "/SelectUserServlet") public class SelectUserServlet extends HttpServlet { @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // 1. 接受用户名 String username = request.getParameter("username"); // 2. 调用service查询user对象,直接给flag赋值为true,表明用户名占用 boolean flag = true; // 3. 响应标记 response.getWriter().write(""+flag); } @Override protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { this.doGet(request, response); } }12.3.3 前端实现
在 register.html 页面的 body 结束标签前编写 script 标签,在该标签中实现如下逻辑 1. 第一步:给用户名输入框绑定光标失去焦点事件onblur // 1. 给用户输入框绑定 失去焦点事件 document.getElementById("username").onblur = function(){ }2. 第二步:发送ajax**请求,携带username参数**
在 第一步 绑定的匿名函数中书写发送 ajax 请求的代码 // 2.1 创建核心对象 let xhttp; if(window.XMLHttpRequest){ xhttp = new XMLHttpRequest(); }else{ xhttp = new ActiveXObject("Microsoft.XMLHTTP"); } // 2.2 发送请求 xhttp.open("GET","http://localhost:5050/AjaxDemo_war/SelectUserServlet?username="+username); xhttp.send(); // 2.3 获取响应 xhttp.onreadystatechange = function(){ if(this.readyState === 4 && this.status === 200){ } }
由于发送的是 GET 请求,所以需要在 URL 后拼接从输入框获取的用户名数据。而在 第一步 绑定的匿名函数中通过以下代码可以获取用户名数据 // 获取用户名的值 var username = this.value; // this:给谁绑定的事件,this就代表谁
而携带数据需要将 URL 修改为: xhttp.open("GET", "http://localhost:8080/ajax-demo/selectUserServlet?username="+username);3. 第三步:处理响应:是否显示提示信息
当 this.readyState == 4 && this.status == 200 条件满足时,说明已经成功响应数据了。
此时需要判断响应的数据是否是 "true" 字符串,如果是说明用户名已经占用给出错误提示;如果不是说明用户名未被占用清除错误提示。代码如下 // 判断 if(this.responseText === "true"){ // 用户名存在,显示提示信息 document.getElementById("username_err").style.display = ""; }else{ // 用户名不存在,清除提示信息 document.getElementById("username_err").style.display = "none"; }
综上所述,所有代码为: 欢迎注册 欢迎注册
已有帐号? 登录
效果如下:
周王朝第一辅助,孔子都是他的忠实粉丝为什么孔圣人会成为他的小迷弟?中国的历史发展悠久,封建王朝也一直绵延了数千年。诞生的真正的伟人,其实并不多,而孔子,却被称为文圣。孔子创立了儒家学派,儒家思想在封建王朝时代,长期占
河南嵩山龙门就裁判问题提起申诉,黑哨面前中国足球没有受益者申诉也没用!但是申诉是一个态度!在这场不正常的吹罚中,无论是河南还是成都,都没有从中获益。以两队的实力,成都与河南,谁胜谁负,都是正常。河南球迷之所以对此大为不满,一位球迷的话可以
百科全书地名由来5简介同学们好,欢迎来到百科全书。今天我们要讲的是地名由来。中南海是北京的一个地名,也是著名的风景区。自从新中国成立以后,这里就成为了党中央和国务院所在地,因此,中南海也就成为了国家政权
他是在位和享年最长的帝王之一,后妃宫女竟然达到18000名汉武帝刘彻生于公元前156年,母王氏,汉景帝中子。西汉第七位皇帝。年四岁立为胶东王。七岁为皇太子,母为皇后。十六岁即位。其母王氏在怀孕时,汉景帝尚为太子。王氏梦见太阳进入她的怀中,
超宽带UWB无线定位技术,飞睿智能厘米级测距定位,室内定位应用超宽带UWB技术从各个行业的不同应用领域已逐步走进消费者市场,并主要瞄准智能终端和电子应用。典型用例包括无钥匙进入精准定位和安全支付。这要求设备能够根据距离移动方向以及与其他设备的
马鹿跃入自来水厂游隼受伤落入厂区奉贤警方接连救助保护动物新民晚报讯(记者李一能通讯员毕迎春)马鹿跃入自来水厂恣意奔跑小鸟受伤掉入厂区无法飞起民警接到求助后妥善处置,原来两只动物均是珍稀保护动物。奉贤警方供图(下同)2022年12月3日下
普京真的会发动核打击吗?普京称核战争风险正在上升由于前几日乌克兰一改之前的作战方案,新增了无人机突袭俄罗斯本土的打法,所以才有了普京最新的表态!乌克兰分多批次无人机空袭,导致俄罗斯本土至少有3个军用机场受
2022年江苏省安全员A证试题及模拟考试题库来源安全生产模拟考试一点通公众号小程序2022年江苏省安全员A证理论题库为江苏省安全员A证培训试题上机考试练习题!2022年江苏省安全员A证试题及模拟考试依据江苏省安全员A证新
湖南铁道职院推动党的二十大精神入脑入心走深走实湖南铁道职业技术学院召开会议学习宣传贯彻党的二十大精神。红网时刻新闻12月7日讯(记者潘锦通讯员徐敏刘澎钰)近日,湖南铁道职业技术学院召开会议学习宣传贯彻党的二十大精神,学校党委书
清物十志文人之物的世界读书者说关于传统文人,在我们的想象中总会有一种闲雅自然的印象。当下的人们对于传统文人生活充满了好奇与艳羡,并希望能够从中汲取生活的智慧。而在这个充满韵味的文人生活中,各种被文人精心
比武亮剑,江苏省退役军人事务系统岗位练兵比武决赛在南京举行现代快报讯(记者卢河燕)12月7日下午,2022年度江苏省退役军人事务系统岗位练兵比武决赛在南京举办。现代快报记者了解到,经过激烈角逐,镇江市退役军人事务局在决赛获得团体一等奖,苏