使用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> <!-- 注册表单验证,用户名格式 ...
随机推荐
- 用Hutton32玩转数字电路(一):逻辑门
最近看到有人用Minecraft里面的红石电路制作出了计算器,还有一篇神文:<基于Minecraft实现的计算机工程>,视频在此,好像还能算浮点数.三角函数.我对红石不是太了解,那能不能用 ...
- 复合文字(Compound Literals)
复合文字(Compound Literals) 阅读代码时发现了这行 1 setsockopt(sock,SOL_SOCKET,SO_REUSEADDR,&(int){1},sizeof(in ...
- Hexo之旅(四):文章编写技巧
hexo 编写文章可以使用以下命令创建hexo new "文件名" #创建的文章会在_pots目录下文章的后缀名是以md命名的文件格式,遵循markdown语法,所以编写文章可以使 ...
- Leetcode 981. Time Based Key-Value Store(二分查找)
题目来源:https://leetcode.com/problems/time-based-key-value-store/description/ 标记难度:Medium 提交次数:1/1 代码效率 ...
- 启动tomcat报错 Unable to process Jar entry [module-info.class] from Jar...[xxx.xx.jar!\] for annotations
Java Web 项目tomcat启动报错module-info.class 从git 上面拉下的项目,运行报错. jdk.maven配置正常 tomcat启动遇见的问题: Unable to pro ...
- dubbo与trivial超时机制的深入思考
说在前面 trivial是根据之前设计的RPC框架而来的(还在增进当中),其中较为不同的一个点为,在客户端去掉了业务线程池,因为既然都要等待,不必要再加一层. 进入正题 有在网上看到这样的信息,“之前 ...
- sql服务器第5级事务日志管理的阶梯:完全恢复模式下的日志管理
sql服务器第5级事务日志管理的阶梯:完全恢复模式下的日志管理 原文链接http://www.sqlservercentral.com/articles/Stairway+Series/73785/ ...
- YiGo环境搭建
软件环境 操作系统:Windows 2000+,Mac OS,AIX,RedHat linux,HP-UX等 JDK/JRE:Oracle JDK/JRE 1.8+,IBM J9 VM 1.8+,Op ...
- python 实现各种进度条
1. 时间进度条 class Tiao(object): def __init__(self): self.obj1 = datetime.timedelta(seconds=1) self.var ...
- Golang 使用Protocol Buffer 案例
目录 1. 前言 2. Protobuf 简介 2.1 Protobuf 优点 2.2 Protobuf 缺点 2.3 Protobuf Golang 安装使用 3. Protobuf 通讯案例 3. ...