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"; }
综上所述,所有代码为: 欢迎注册 欢迎注册
已有帐号? 登录
效果如下:
兰州的衰落,是产业的衰落,更主要是企业的衰落关于兰州衰落的话题网上讨论有很多,关于衰落的原因也是众说纷纭,各执一词。个人认为兰州的衰落,是产业的衰落,更主要是企业的衰落要说衰落,说明这个城市曾经辉煌过,兰州也确实辉煌过。兰州
1945年日本投降,麦克阿瑟问天皇你为何不切腹?天皇说了4个字1931年,日本制造九一八事变,拉开了他们企图侵占中国的春秋大梦。1945年,在中国人民的不懈努力和反抗下,硬生生摧毁了日本荒诞的梦境。十四年的战争,给中国带来了深重的灾难,无数百
作为最重要的古代制度之一的户籍制度是如何经年累月之演变的?自二零一九年越南废除了户籍制度后,世界上存在户籍制度的国家仅有中国,朝鲜和贝宁,这一制度之所以存在是因为它扔适应时代的发展。户籍制度发源于中国古代的封建王朝,最早可以追溯到春秋战国
1941年的北平老照片日本鬼子在北平郊外农田里热火朝天地种水稻这是一组拍摄于1941年日据时期的北平的老照片,这组老照片主要展示了当时日本人在北平的生活场景,尤其是日本人在北平城郊开辟试验田,种植水稻的场景。1941年的北平街头,两个穿着蓝底
拼酒时常喊的五魁首八匹马究竟是什么意思?看完涨知识了中国坐拥上下五千年的文明历史,单单是酒文化便已经是万古千秋,自古无论是红白喜事,或者是亲朋小聚,都少不了酒水的身影。不过干喝没劲,总要找些乐子助助兴,于是就有了即席作歌当筵歌诗的风
银发守护安全课走进广州社区今天才知道,之前看到的很多理财广告原来都是诈骗啊!66岁的王阿姨在上完银发守护安全课后发出这样的感慨。2月28日,在广州市越秀区大东街社工服务站,四十余名社区老人一起上了银发守护安
苹果将颠覆的血糖监测市场,现状如何?苹果的一条无创连续血糖监测技术获得突破的消息,为什么让全球市场为之震动?简单说,它解决糖尿病人的两个最大痛点1无需扎手取血或植入传感器,达到无介入无痛检测2可以连续监测血糖。要知道
国乒再出征!中国小将,顶峰相见!WTT世界乒联宣布WTT澳门冠军赛将于4月17日至23日在澳门塔石体育馆打响本届赛事设有男子女子单打各32个席位汇集世界最顶尖的男女各30名运动员和2名外卡选手每个成员协会最多可派
高州电商显担当,李叔滞销的10万斤木瓜卖出去了!你好,我在石板镇种了120亩木瓜,这一批木瓜的产量10万多斤,品质非常好。但是往年上门收购的收购商到现在还没过来,如果再不摘这些木瓜就会烂在地里了,损失将近20万元,想请你们帮帮忙
kafka内存设计的艺术kafka之所以能够做到高吞吐,究其原因是因为生产者发送消息使用的是攒批发送的方式。这样做的好处还有可以减少网络上的资源消耗。在新版的KafkaProducer中,设计了一个内存缓
青大附院成功完成国内首例机器人辅助双肺移植手术近日,青大附院胸外科矫文捷教授团队成功完成世界首例达芬奇机器人辅助双肺移植手术,患者于今日康复出院。患者张女士患有肺间质性纤维化终末期肺疾病,已保守治疗十余年,胸闷憋气逐渐加重,到