使用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> <!-- 注册表单验证,用户名格式 ...
随机推荐
- fiddler模拟返回响应数据
通过find查找修改指定内容 选择find a file 保存后重新发起请求
- gitlab两种连接方式:ssh和http对比
共同点: 都可以使用git clone 地址 .将项目下载到本地. 不同点: 当将本地修改上传到远程服务器时,http需要输入用户名密码,ssh. 1.ssh方式: 这是一种相对安全的方式这要求将本地 ...
- 吴裕雄--天生自然python学习笔记:Beautiful Soup 4.2.0模块
Beautiful Soup 是一个可以从HTML或XML文件中提取数据的Python库.它能够通过你喜欢的转换器实现惯用的文档导航,查找,修改文档的方式.Beautiful Soup会帮你节省数小时 ...
- Proto3:C++ API概览
包名 说明 google::protobuf Protocol Buffer运行时库核心组件. google::protobuf::io I/O操作辅助类. google::protobuf::uti ...
- [PyTorch入门]之从示例中学习PyTorch
Learning PyTorch with examples 来自这里. 本教程通过自包含的示例来介绍PyTorch的基本概念. PyTorch的核心是两个主要功能: 可在GPU上运行的,类似于num ...
- CC03 iOS推送机制浅析
• ios推送机制 可以通俗的把APNS理解为iOS系统为每个app提供的长连接通道 苹果限制了每个app在后台存活的时间,最重要的目的是为了省电,其次优化内存这些.如果彻彻底底的将app杀死了,服务 ...
- Particle Filter Algorithm
目录 问题提出 算法研究现状 算法原理 问题提出 在现实科研问题中,其中有很多都是非线性的.要想求得问题的解,就需要非线性的算法.所谓非线性滤波,就是基于带有噪声的观测值,估计非线性系统动态变化的状态 ...
- PHP时区转换(默认中国时区<Asia/Shanghai>转意大利时区<Europe/Rome>)
<?php function changeTimeZone($date_time, $format = 'Y-m-d H:i:s', $to = 'Europe/Rome', $from = ' ...
- 7-49 求前n项的阶乘之和 (15 分)
从键盘输入一个整数n,求前n项的阶乘之和,1+2!+3!+...+n!的和 输入格式: 输入一个大于1的整数.例如:输入20. 输出格式: 输出一个整数.例如:2561327494111820313. ...
- 002-DOM事件实例-实现一个可以拖拽的登陆窗口
前言:这是跟着慕课网一个老师的视频做的,这几天在重新的梳理自己,写完这个例子要系统的学一下jQuery,我司现在用的还是比较多,毕竟用了它不用考虑IE兼容性,可以让开发更有效率. 1.项目需求及基本的 ...