• (1)实现用户名的唯一性校验

所需要准备的:

  1. Servlet
  2. 注册界面的JSP
  3. 接口和实现类

所需要的接口和实现类:

接口: 

/*
* 用户注册
* 账号的唯一性校验,需要传参(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(新手)的更多相关文章

  1. Django ajax 检测用户名是否已被注册

    添加一个 register.html 页面 <!DOCTYPE html> <html lang="en"> <head> <meta c ...

  2. 案例1.用Ajax实现用户名的校验

    用Ajax实现用户名的校验 java的验证类 public class UserDao { public boolean checkUserName(String name) { //这里的name是 ...

  3. SSH网上商城---使用ajax完成用户名是否存在异步校验

    小伙伴在上网的时候,需要下载或者观看某些视频资料,更或者是在逛淘宝的时候,我们都需要注册一个用户,当我们填写好各种信息,点击确定的时候,提示用户名已经存在,小编就想,为什么当我们填写完用户名的时候,她 ...

  4. 基于jQuery实现的Ajax 验证用户名唯一性

    基于jQuery实现的Ajax 验证用户名唯一性 前端jsp页面代码 <tr> <th><span class="requiredField"> ...

  5. ssh整合问题总结--使用struts2+Ajax+jquery验证用户名是否已被注册

    在用户模块中的用户注册需求上,通常要进行用户名是否已被注册的验证,今天正好写了这个需求,把详细代码和所遇到的问题贴过来.在使用struts2+ajax时候,通常我们会返回json类型的数据,但是像上面 ...

  6. 利用jQuery和Ajax实现检测用户名是否已经被注册

    这是一个jQuery和Ajax的很基础的应用,是我出去面试时的一个面试题.当时脑子有点懵想了好久才知道该怎么去实现,现在回来再看了下书好好总结一下这个东西. 首先新建一个html文件,只有简单的几行代 ...

  7. Ajax检测用户名是否已经注册

    程序功能 当用户名输入完成(即用户名输入框失去焦点),利用Ajax检测用户名是否已经注册! 实现过程 利用Ajax向CheckUserServlet发送请求,判断该用户名是否可用.这里只是为了演示Aj ...

  8. Ajax验证用户名是否被注册

    Ajax验证用户名是否被注册 var xmlHttp; function createXMLHttpRequest(){ // 创建XMLHttp请求对象 if(window.ActiveXObjec ...

  9. JS判定注册表单的几个方式 及 Ajax进行用户名存在判定

    最近感觉不赶紧把代码逻辑记一下梳理一下,再做的时候就容易进入"逻辑误区". 有个表单,简单点. <!DOCTYPE html> <!-- 注册表单验证,用户名格式 ...

随机推荐

  1. html中的select下拉框

    <select name="effective"> <option value="">请选择</option> <op ...

  2. Java并发 - (无锁)篇6

    , 摘录自葛一鸣与郭超的 [Java高并发程序设计]. 本文主要介绍了死锁的概念与一些相关的基础类, 摘录自葛一鸣与郭超的 [Java高并发程序设计]. 无锁是一种乐观的策略, 它假设对资源的访问是没 ...

  3. Apple store,奢华背后的辛酸

    store,奢华背后的辛酸" title="Apple store,奢华背后的辛酸">    2000年的时候,乔布斯提出了要建造苹果直营店,也就是Apple st ...

  4. JAVA如何判断两个字符串是否相等

    ==比较引用,equals 比较值 1.java中字符串的比较:== 我们经常习惯性的写上if(str1==str2),这种写法在java中可能会带来问题 example1: String a=&qu ...

  5. C2C的道德边界:沦为从假运单到假病条的供假渠道

    你可能刚开始学会不去看网购平台上商品回评中的虚假好评,却又要开始应对同事在朋友圈等平台买来的虚开病假条带来的困扰.最近各大媒体包括党报热传的网购病假条事件,再度将人们的目光集中在这个C2C模式之上.从 ...

  6. AndroidImageSlider

    最核心的类是SliderLayout,他继承自相对布局,包含了可以左右滑动的SliderView,以及页面指示器PagerIndicator.这两部分都可以自定义. AndroidImageSlide ...

  7. Pandorabox固件路由器上申请Let's Encrypt证书,为内网里的多个web服务提供SSL支持

    对于家中宽带有公网IP的用户,有时我们需要将路由器内部网络的某些web服务通过端口转发暴露到外网(例如NAS远程访问),但HTTP是明文传输,有被监听的风险:如果在NAS上使用自签名证书,再端口转发, ...

  8. marquee用到的属性

      一.marquee标签的几个重要属性: 1.direction:滚动方向(包括4个值:up.down.left.right) 说明:up:从下向上滚动:down:从上向下滚动:left:从右向左滚 ...

  9. Leetcode1353_最多可以参加的会议数目

    题目地址 给定n个会议时间区间,会议不用全程参加,问最多能参加的数目. 时间区间按左端点排序,扫一遍,每一天把当天开始的区间结束时间加入,同时把这一天之前结束的区间删掉,然后贪心从最小堆取出结束时间的 ...

  10. TypeScript声明文件

    为什么需要声明? 声明的本质是告知编译器一个标识符的类型信息.同时,在使用第三方库时,我们需要引用它的声明文件,才能获得对应的代码补全.接口提示等功能. 声明在TypeScript中至关重要,只有通过 ...