使用ajax实现邮箱验证---前台输入完成,光标离开输入框后,将输入内容拿到后台验证是否存在,如果存在就提醒已经存在

|--要求

|--实现方式:

1、前台使用使用函数检测输入内容,并使用jQuery的ajax异步将检测到的内容发送到后台对比

2、如果输入内容在数据库内已经存在,就提醒已经存在

|--代码

 1 package cn.exercise.dao;
 2
 3 import cn.exercise.util.ConfigManager;
 4
 5 import java.sql.*;
 6
 7 public class BaseDao {
 8     //引入ps对象,conn对象,rs对象
 9     private PreparedStatement ps = null;
10     private Connection conn = null;
11     private ResultSet rs = null;
12
13     //引入连接数据库需要的配置信息
14     public final String driver = ConfigManager.getInstance().getString("jdbc.driver");
15     public final String url = ConfigManager.getInstance().getString("jdbc.url");
16     public final String user = ConfigManager.getInstance().getString("jdbc.userName");
17     public final String pwd = ConfigManager.getInstance().getString("jdbc.password");
18
19     /**
20      * 获取数据库连接
21      *
22      * @return
23      */
24     public Connection getConn() {
25         try {
26             Class.forName(driver);
27             conn = DriverManager.getConnection(url, user, pwd);
28         } catch (ClassNotFoundException e) {
29             e.printStackTrace();
30         } catch (SQLException e) {
31             e.printStackTrace();
32         }
33         return conn;
34     }
35
36     /**
37      * 查询方法
38      *
39      * @param sql
40      * @param obj
41      * @return
42      */
43     public ResultSet executeQuery(String sql, Object... obj) {
44         getConn();
45         try {
46             ps = conn.prepareStatement(sql);
47             for (int i = 0; i < obj.length; i++) {
48                 ps.setObject((i + 1), obj[i]);
49             }
50             rs = ps.executeQuery();
51         } catch (SQLException e) {
52             e.printStackTrace();
53         }
54         return rs;
55     }
56
57
58     /**
59      * 更新数据库的方法
60      *
61      * @param sql
62      * @param obj
63      * @return
64      */
65     public int executeUpdate(String sql, Object... obj) {
66         getConn();
67         int result = 0;
68         try {
69             ps = conn.prepareStatement(sql);
70             for (int i = 0; i < obj.length; i++) {
71                 ps.setObject((i + 1), i);
72             }
73             result = ps.executeUpdate();
74         } catch (SQLException e) {
75             e.printStackTrace();
76         }
77
78         return result;
79     }
80
81     public void closeAll() {
82         try {
83             if (rs != null) {
84                 rs.close();
85             }
86             if (ps != null) {
87                 ps.close();
88             }
89             if (conn != null) {
90                 conn.close();
91             }
92         } catch (SQLException e) {
93             e.printStackTrace();
94         }
95     }
96
97
98
99 }

BaseDao--访问数据库的基类

 1 package cn.exercise.dao;
 2
 3 import cn.exercise.pojo.JsonAnalysis;
 4 import cn.exercise.pojo.User;
 5 import com.sun.org.apache.xpath.internal.objects.XObject;
 6
 7 import java.sql.ResultSet;
 8 import java.sql.SQLException;
 9
10 public class UserDaoImpl extends BaseDao implements UserDao {
11     ResultSet rs = null;
12     JsonAnalysis jsonAnalysis = null;
13
14     @Override
15     public JsonAnalysis getUserByEmail(String uemail) {
16         //SELECT * from jsonanalysis WHERE uemail=?
17         String sql = "SELECT * from jsonanalysis WHERE uemail=?";
18         Object obj = (Object) uemail;
19         rs = executeQuery(sql, uemail);
20 //        System.out.println(rs);
21
22         try {
23             if (rs.next()) {
24                 jsonAnalysis = new JsonAnalysis();
25 //                System.out.println(rs.getInt("uid")+rs.getString("uname")+rs.getString("uemail"));
26                 jsonAnalysis.setUid(rs.getInt("uid"));
27                 jsonAnalysis.setUname(rs.getString("uname"));
28                 jsonAnalysis.setUemail(rs.getString("uemail"));
29             }
30         } catch (SQLException e) {
31             e.printStackTrace();
32         }
33 //        System.out.println(jsonAnalysis);
34         return jsonAnalysis;
35     }
36
37
38 //    public static void main(String[] args) {
39 //        UserDao user = new UserDaoImpl();
40 //        System.out.println(user.getUserByEmail("[email protected]"));
41 //    }
42 }

实体类Dao ---负责具体查询

 1 package cn.exercise.service;
 2
 3 import cn.exercise.dao.UserDao;
 4 import cn.exercise.dao.UserDaoImpl;
 5 import cn.exercise.pojo.JsonAnalysis;
 6
 7 public class JsonAnalysisServiceImpl implements JsonAnalysisService {
 8     @Override
 9     public boolean existByEmail(String uemail) {
10         boolean flag = false;
11         UserDao userDao = new UserDaoImpl();
12         JsonAnalysis user = userDao.getUserByEmail(uemail);
13         if (user != null) {
14             flag = true;
15         } else {
16             flag = false;
17         }
18         return flag;
19     }
20
21 //    public static void main(String[] args) {
22 //        JsonAnalysisServiceImpl j=new JsonAnalysisServiceImpl();
23 //        System.out.println(j.existByEmail("[email protected]"));
24 //    }
25 }

业务层的实现类---用于判定是否查到了信息

 1 package cn.exercise.web.serlet;
 2
 3 import cn.exercise.service.JsonAnalysisServiceImpl;
 4
 5 import javax.servlet.ServletException;
 6 import javax.servlet.annotation.WebServlet;
 7 import javax.servlet.http.HttpServlet;
 8 import javax.servlet.http.HttpServletRequest;
 9 import javax.servlet.http.HttpServletResponse;
10 import java.io.IOException;
11 import java.io.PrintWriter;
12
13 //@WebServlet(name = "AjaxServlet", urlPatterns = "/email")
14 @WebServlet("/email")
15 public class AjaxServlet extends HttpServlet {
16     protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
17 //        this.doGet(request, response);
18         doGet(request, response);
19     }
20
21     protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
22         System.out.println("测试是否有接到请求");
23         response.setContentType("text/html;charset=UTF-8");
24         String uemail = request.getParameter("uemail");
25         String uname = request.getParameter("uname");
26         String pwd = request.getParameter("pwd");
27         JsonAnalysisServiceImpl jasi = new JsonAnalysisServiceImpl();
28
29         String reback = "";
30         if (jasi.existByEmail(uemail)) {
31             reback = "该邮箱已经注册,请换个邮箱注册";
32         } else {
33             reback = "该邮箱未注册,可以使用";
34         }
35         PrintWriter writer = response.getWriter();
36         writer.println(reback);
37     }
38 }

Servlet类---负责控制业务

 前端

 1 <%--
 2   Created by IntelliJ IDEA.
 3   User: Administrator
 4   Date: 2019/10/17
 5   Time: 9:09
 6   To change this template use File | Settings | File Templates.
 7 --%>
 8 <%@ page contentType="text/html;charset=UTF-8" language="java" %>
 9 <html>
10 <head>
11     <title>邮箱验证</title>
12     <script src="js/jquery-1.12.4.js"></script>
13     <script>
14        function test() {
15            var a = document.getElementById("input").value;
16            // alert(a);
17            $.ajax({
18                "url": "email",
19                "type": "get",
20                "data": "uemail="+a,
21                "dataType":"text",
22                "success":function (data) {
23                    document.getElementById("a").innerText=data;
24                },
25                "error":function () {
26                    alert("请联系管理员");
27                }
28            })
29        }
30     </script>
31 </head>
32 <body>
33 <form action="/email" method="get">
34     <table>
35         <tr>
36             <td>注册邮箱:</td>
37             <td><input type="email" name="uemail" onblur="test()" id="input"></td>
38             <td id="a">*</td>
39         </tr>
40         <tr>
41             <td>用&nbsp;户&nbsp;名:</td>
42             <td><input type="text" name="uname"></td>
43             <td>*</td>
44         </tr>
45         <tr>
46             <td>密&nbsp;&nbsp;&nbsp;码:</td>
47             <td><input type="text" name="pwd"></td>
48             <td>*</td>
49         </tr>
50         <tr align="center">
51             <td colspan="3"><input type="submit" value="提交"></td>
52         </tr>
53     </table>
54 </form>
55
56 </body>
57 </html>

Jsp--负责展示效果

|--过程中的错误

1、jsp访问servlet路径不对-----将jsp从一个目录里面取出来之后OK

2、resources文件夹没能被JDBC的ConfigManager读取到----右击resources文件夹,选择Make directory as --> resuorce root

3、servlet命名不规范,将"/email.do"写成“/Email.do”之后,服务器报错

4、将过滤器设置成了Servlet......导致服务器无法运行

原文地址:https://www.cnblogs.com/twuxian/p/11695538.html

时间: 2024-10-13 14:35:19

使用ajax实现邮箱验证---前台输入完成,光标离开输入框后,将输入内容拿到后台验证是否存在,如果存在就提醒已经存在的相关文章

.Net MVC 前台验证跟后台验证

前台验证: 首先你得有一个参数类,参数类代码如下 验证标记总结 [DisplayName("邮箱:")]        [Required(ErrorMessage = "请输入您的邮箱")]        [RegularExpression(@"^(\w-*\.*)[email protected](\w-?)+(\.\w{2,})+$",ErrorMessage ="请输入正确的邮箱")]        public s

jsrsasign 前台签名,Java后台验证前台签名

rsa  具体是什么  这个就不在多说.算法实现啊应用啊 已经有很多了.今天记录下 这种特殊的需求,前台签名,后台验证 Java后台产生 密匙对 pom.xml 添加BC 依赖 <dependency> <groupId>org.bouncycastle</groupId> <artifactId>bcprov-jdk15on</artifactId> <version>1.51</version> </depend

Struts2快速后台验证 使用

为了和前台基于JavaScript的开源验证框架RapidValidation使用统一的验证规则, 最大限度的减少重复的后台验证代码, 使用方式简便, 扩展方便. https://blog.csdn.net/autojoke/article/details/5192534 本框架依赖于: Struts 2 Java 5或者更高版本 GET/POST协议(支持带文件上传的表单, 依赖于Commons-Upload组件) 整合步骤1. 将文件struts2-quickvalidation-plugi

后台验证及struts2表单验证里field-validator type值的含义?

http://lovehui0228.iteye.com/blog/592808   后台验证 int 整数:double 实数:date 日期:expression  两数的关系比较: email Email地址:urlvisitorconversion regex 正则表达式验证:required 是否为空:requiredstring 必须字符:stringlength 输入字符长度限制;答案补充 url web地址 visitor 访问 conversion 转换 <validators

c#后台验证

#region 后台验证 panda /// 验证电话号码的主要代码如下: public bool IsTelephone(string str_telephone) { return System.Text.RegularExpressions.Regex.IsMatch(str_telephone, @"^(\d{3,4}-)?\d{6,8}$"); } ///验证手机号码的主要代码如下: public bool IsHandset(string str_handset) { re

文本框限制输入类型&lt;input&gt;的输入框

最近在开发完一个项目后,又测试人员测试bug,然后我根据他们测试出来的bug一个一个的改,然后就遇到了一个问题,文本框是用来搜索,但是,比如这个文本框是用来搜索年龄的区间,输入条件的时候,如果输入了非数字的字符就不能输入.像这样的问题,其实可以通过正则表达式来做的,我们开发的项目中是已经有相应的正则表达式的验证,但是这个框架里做起来不那么容易,于是就用了这个方法,这个方法也许不是最好的,但是能解决目前的问题. 1.只能输入和粘贴汉字 <input onkeyup="value=value.

Java 后台验证的工具类

Java 后台验证的工具类 public class ValidationUtil {         //手机号     public static String mobile = "^((13[0-9])|(14[0-9])|(15[0-9])|(16[0-9])|(17[0-9])|(18[0-9])|(19[0-9]))\\d{8}$";       //不允许为空     public static String blank = ".*[^ ].*";  

在浏览器中输入URL按下回车键后发生了什么

在浏览器中输入URL按下回车键后发生了什么 [1]解析URL[2]DNS查询,解析域名,将域名解析为IP地址[3]ARP广播,根据IP地址来解析MAC地址[4]分别从应用层到传输层.网络层和数据链路层分别加入各个层的头部封装为包[5]进行三次握手后,客户端与服务器建立连接[6]客服务器向客户端返回数据,浏览器接收到数据[7]浏览器开始渲染页面 补充:浏览器渲染页面详解 [1]由从服务器接收到的html形成DOM[2]样式被加载和解析,形成css对象模型CSSOM[3]DOM和CSSOM创建一个渲

JavaScript控制输入框中只能输入中文、数字和英文

1.问题背景 遇到这样一个问题:有一个输入框,要求只能输入中文.数字和英文(即过滤特殊字符串) 2.JS代码 function  checkUsername() { //正则表达式 var reg = new RegExp("^[a-zA-Z\d\u4E00-\u9FA5]+$"); //获取输入框中的值 var username = document.getElementById("username").value.trim(); //判断输入框中有内容 if(u