使用AJAX实现用户名的唯一性校验(注册界面)-JAVA(新手)
- (1)实现用户名的唯一性校验
所需要准备的:
- Servlet
- 注册界面的JSP
- 接口和实现类
所需要的接口和实现类:
接口: /*
* 用户注册
* 账号的唯一性校验,需要传参(username)
* */
boolean Username(String username);
实现类: @Override
public boolean Username(String username) {
String sql = "select * from user where username = ?";
List<Map<String, Object>> list = DBUtil.excuteQuery(sql, username);
return list.size()>0;
}
所需要的注册的JSP界面:
<body>
<div class="wrap">
<div class="guimeilogo"></div>
<div class="register">
<div class="top">
<h1>新用户注册</h1>
<a href="/shop/views/login.jsp">已有账号</a>
</div>
<div class="mid">
<form action="/shop/register" method="post">
<input type="text" name="username" id="username" placeholder="亲,您的昵称" required="required" />
<div id="showMessage"></div>
<input type="password" name="password" id="password" placeholder="密码" required="required" />
<input type="text" name="email" id="email" placeholder="邮箱" required="required" />
<input type="text" name="telephone" id="telephone" placeholder="手机号" required="required"/>
<div class="sec">
<input type="text" name="code" id="code" placeholder="验证码" required="required" />
<a class="send" onclick="send()"> 发送验证码 </a>
<script>
function send(){
return false;
}
</script>
</div>
<input type="submit" id="submit" value="注册"/>
</form>
</div>
</div>
</div>
<script src="js/jquery-2.1.0.js"></script>
<script>
username.onblur = function () {
<--/工程名/Servlet映射路径-->
$.post("/shop/chexkusername" ,{username:this.value }, function (date) {
if ( date.code == "10010" ){
$("#showMessage").html("对不起,此用户名已经被使用").css("color","red");
} else{
$("#showMessage").html("该用户名可以使用").css("color","blue")
}
});
}
</script>
</body>
</html>
个人理解:
获取Username-使用Post提交-使用if、else判断-如果说状态码等于10010则意味着用户名相重,则提示用户名已经被使用。
反之,如果不等于10010则意味着用户名可以使用。
所需要的Servlet:
@WebServlet("/chexkusername")
public class ChexkUsernameServlet extends HttpServlet {
/*
* 注册时用户名的唯一性校验。
*
* 因为是判断用户名是否重复,则需要传递参数(user表里的username)
* 如果说重复则需要提示用户让用户进行更改。反之则提示用户可以使用。
*
* 所以首先,我们在Servlet中需要干的第一件事就是获取请求参数username
* 第二步就是调用DAO层检验用户名是否唯一。
* 第三步需要设置编码格式,因为是使用post请求,在浏览器中会出现乱码的现象,所以我们要设置一下编码格式。
* 第四步我们需要将检验结果返回给浏览器。
* 然后进行是否被使用的判断,还有可用和不可用的代码块和语句的提示。
*
* 在最后一步将Map转为JSON,因为使用JSON可以更方便的获取到值,而不用再使用共享参数、请求转发等操作。
* */
@Override
protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
// 1、接收请求参数。
String username = req.getParameter("username");
// 2、调用DAO 检验用户名是否唯一。
IUserDAO dao = new UserDAOImpl();
boolean username1 = dao.Username(username);
// 3、设置编码格式。
resp.setContentType("text/json;charset=UTF-8");
// 4、将检验结果返回给浏览器(响应Ajax请求)
PrintWriter writer = resp.getWriter();
Map<Object, Object> Map = new HashMap<>();
//如果输入的用户名和数据库表内的一致则提示用户名已经被使用
if (username1){
//code、message为状态码
Map.put("code","10010");
Map.put("message","用户名已经被使用");
//否则则是不一致则提示登录成功。
} else{
Map.put("code","10086");
Map.put("message","恭喜,用户名可用");
}
//转为JSOn
String s = JSON.toJSONString(Map);
writer.write(s);
writer.close();
}
}
个人理解:
用户点击注册界面,在用户名一栏输入用户名,当鼠标的光标离开输入框时,就去检验用户的用户名是否有重复。
这样可以节省资源,避免用户资源的浪费,因为以前所使用的方法,是在用户点击注册之后才去进行用户名的唯
一性校验,如果错误,则需要返回一个新的界面并且提示用户名重复,即占用了又浪费了用户流量。
所以选择AJAX——>AJAX,允许被浏览器和服务器通信而无需刷新当前页面的技术都被叫做AJAX。
使用AJAX实现用户名的唯一性校验(注册界面)-JAVA(新手)的更多相关文章
- Django ajax 检测用户名是否已被注册
添加一个 register.html 页面 <!DOCTYPE html> <html lang="en"> <head> <meta c ...
- 案例1.用Ajax实现用户名的校验
用Ajax实现用户名的校验 java的验证类 public class UserDao { public boolean checkUserName(String name) { //这里的name是 ...
- SSH网上商城---使用ajax完成用户名是否存在异步校验
小伙伴在上网的时候,需要下载或者观看某些视频资料,更或者是在逛淘宝的时候,我们都需要注册一个用户,当我们填写好各种信息,点击确定的时候,提示用户名已经存在,小编就想,为什么当我们填写完用户名的时候,她 ...
- 基于jQuery实现的Ajax 验证用户名唯一性
基于jQuery实现的Ajax 验证用户名唯一性 前端jsp页面代码 <tr> <th><span class="requiredField"> ...
- ssh整合问题总结--使用struts2+Ajax+jquery验证用户名是否已被注册
在用户模块中的用户注册需求上,通常要进行用户名是否已被注册的验证,今天正好写了这个需求,把详细代码和所遇到的问题贴过来.在使用struts2+ajax时候,通常我们会返回json类型的数据,但是像上面 ...
- 利用jQuery和Ajax实现检测用户名是否已经被注册
这是一个jQuery和Ajax的很基础的应用,是我出去面试时的一个面试题.当时脑子有点懵想了好久才知道该怎么去实现,现在回来再看了下书好好总结一下这个东西. 首先新建一个html文件,只有简单的几行代 ...
- Ajax检测用户名是否已经注册
程序功能 当用户名输入完成(即用户名输入框失去焦点),利用Ajax检测用户名是否已经注册! 实现过程 利用Ajax向CheckUserServlet发送请求,判断该用户名是否可用.这里只是为了演示Aj ...
- Ajax验证用户名是否被注册
Ajax验证用户名是否被注册 var xmlHttp; function createXMLHttpRequest(){ // 创建XMLHttp请求对象 if(window.ActiveXObjec ...
- JS判定注册表单的几个方式 及 Ajax进行用户名存在判定
最近感觉不赶紧把代码逻辑记一下梳理一下,再做的时候就容易进入"逻辑误区". 有个表单,简单点. <!DOCTYPE html> <!-- 注册表单验证,用户名格式 ...
随机推荐
- <JZOJ5944>信标
emmm树形dp?好像是的 搬一个题解证明过来 由于在n>1时答案至少为1,我们枚举一个必须放的根, 所有深度不同的点就被区分开了. 设一个节点有c个儿子, 发现必须在其中至少c−1个儿子的子树 ...
- Golang Interface 解析
转自 https://zhuanlan.zhihu.com/p/27652856 先看一段代码: 123456789101112 func (x interface{}) { if x == nil ...
- Maven基本概念和操作
最近在学Java,找来一个开源项目练手,它是用 Spring Boot 搭建的框架,于是去学 Spring Boot,然而 Spring Boot 需要有 Spring 框架和 Maven 的使用经验 ...
- Windows XP系列全下载(均为MSDN原版)
正版windows xp sp3 下载大全(附:正版密钥) 微软MSDN Windows XP Professional下载 Windows XP Professional 简体中文 (最原始版本,无 ...
- python——pymysql的安装
pymysql是python程序连接mysql数据库的的第三方库,通过运行import pymysql 查看系统中是否有该模块,没有的话需要自行安装. 安装教程如下: 1.下载pymysql安装包,下 ...
- Ness
三年前与三年后. 今年五月到六月,因为某个原因和蒋哥一起开发了个小游戏.虽然比较粗糙,也没有取得什么,但不管怎么说也是心头肉呀--我比较没用,前期因为ACTF在划水,后期因为ICPC在划水,中间信心满 ...
- Python——urllib函数网络文件获取
*/ * Copyright (c) 2016,烟台大学计算机与控制工程学院 * All rights reserved. * 文件名:text.cpp * 作者:常轩 * 微信公众号:Worldhe ...
- C++扬帆远航——4(百钱百鸡)
/* * Copyright (c) 2016,烟台大学计算机与控制工程学院 * All rights reserved. * 文件名:baiji.cpp * 作者:常轩 * 完成日期:2016年3月 ...
- Typora+PicGo+Gitee笔记方案
前言:需要学习的知识太多,从一开始就在寻找一款能让我完全满意的编辑器,然而一直都没有令我满意的.在前两天Typora新版本更新后,总算是拥有了一套我认为很完美的笔记方案:使用Typora编写markd ...
- Nginx之常用基本配置(三)
前面我们聊了下了Nginx作为WEB服务器对客户端请求相关配置,文件操作优化.Nginx访问控制.basic验证,.状态模块状态页.gzip压缩配置:回顾请参考https://www.cnblogs. ...