servlet-js中使用ajax函数做同步请求Servlet连接数据库进行验证

问题描述

js中使用ajax函数做同步请求Servlet连接数据库进行验证

这是一个js表单验证,验证email的部分,我想达到的目的是在输入email信息结束后进行验证,前两个条件直接自身进行验证,效果已经实现了,后面的那个我想用ajax的效果进行同步验证,防止email重复,但是效果一直出不来,不知道是否是ajax函数参数设置有问题什么的,或者eclipse出bug什么的,请问有人帮忙看一下的么?
email输入部分代码:

Email:
id="email" class="input" value="" />

js代码如下:
function validateEmail() {
$("#emailError").css("display", "none");
var bool = true;
var val = $("#email").val();
if(!val) {
$("#emailError").text("Email不能为空!");
$("#emailError").css("display", "");
bool = false;
} else if(!/^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+((.[a-zA-Z0-9_-]{2,3}){1,2})$/.test(val)) {
$("#emailError").text("错误的Email格式!");
$("#emailError").css("display", "");

bool = false;
} else {
$.ajax({
url:"/goods/UserServlet",
data:{method:"ajaxValidateEmail",email:value},
type:"POST",
dataType:"json",
async:false,
cache:false,
success:function(result){
if(!result){
$("#emailError").text("该邮箱已经被注册了");
$("#emailError").css("display", "");
bool = false;
}
}
});
}
return bool;
}

请求的Servlet的函数如下:
public void ajaxValidateEmail(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String email = request.getParameter("email");
boolean emailPass = userService.ajaxValidateEmail(email);
response.getWriter().print(emailPass);
}

service部分:
public boolean ajaxValidateEmail(String email){
return userDao.ajaxValidateLoginname(email);
}

数据库层代码:
public boolean ajaxValidateEmail(String email){
String sql = "select count(1) from t_user where email=?";
try {
Number number = (Number)queryRunner.query(sql, new ScalarHandler(), email);
return number.intValue() == 0;
} catch (SQLException e) {
throw new RuntimeException(e);
}
}

解决方案

 $.ajax({
url:"/goods/UserServlet",
data:{method:"ajaxValidateEmail",email:value},
type:"POST",
dataType:"text",//这样改一下
async:false,
cache:false,
success:function(result){
//打印一下result试试看是什么结果
console.log(result);//chrome 按f12,看Console选项卡,可以看到结果.
if(!result){
$("#emailError").text("该邮箱已经被注册了");
$("#emailError").css("display", "");
bool = false;
}
}
});
时间: 2024-09-26 10:49:47

servlet-js中使用ajax函数做同步请求Servlet连接数据库进行验证的相关文章

JS中关于事件处理函数名后面是否带括号的问题_javascript技巧

今天总结一个关于事件处理程序的小细节.首先回顾一下事件处理的一些概念. JS中的事件处理(事件绑定)就是让某种或某些事件触发某些活动.有两种常见的形式,分别是DOM Level 0 和DOM Level 2.这两种方式最大的区别就在于DOM 0级事件处理只能用于事件冒泡,而DOM 2级事件处理却可以通过设置第三个参数来分别支持事件冒泡和事件捕获. DOM 0级事件处理一般是直接把一个函数分配给一个事件处理程序,既可以在元素中直接分配一个事件处理程序,如方式一所示;也可以在脚本中把函数分配给事件处

JS中Date日期函数中的参数使用介绍

本文为大家详细介绍下JS中Date日期函数中的参数在实际使用中的介绍,感兴趣的朋友不要错过 要创建一个一个日期对象,可以使用以下的方式:   代码如下: var now=new Date()    当然,函数中没有传递任何参数,表示此对象now自动获取了当前的时间.    如果想要创建一个自定义时间的对象,则要对Date()进行参数的传递.而这个参数,必须是毫秒数(UTC时间1970年1月1日午夜起至自定义时间为止的毫秒数).    我们可以使用Date.parse()和Date.UTC()来获

js中通过ajax无法获取json文件中的数据

问题描述 js中通过ajax无法获取json文件中的数据 在下小白,最近在学习js 就写了一段很简单的代码 但是发现居然还有问题 就是一个很简单的index-test.html页面中有一段js代码,里面用了ajax获取在同一目录下的 json文件中的数据,然后测试一下,但是运行发现没有结果 又不太会用浏览器调试 所以请教各位大侠 多谢多谢! 部署完项目 开启服务器后 在浏览器中输入URL,点击按钮 毫无反应... 多谢大家! 解决方案 ajax获取json格式数据js读取json文件片段中的数据

js中的getObject()函数

问题描述 js中的getObject()函数 var leftList = getObject("leftList");这个括号里面的是select的id 这句话是什么意思,得到的是什么东西?求解 解决方案 js拾遗: 函数字面量GetObject函数js string 函数大全 解决方案二: select这个dom对象.getObject应该是document.getElementById的简写

JS中使用Array函数shift和pop创建可忽略参数的例子_javascript技巧

在 JS Array 中支持两个方法,shift() 和 pop(),分别是指从一个数据中的最前面和最后面删除一个值,并返删除值.看一个示例就明白了: 复制代码 代码如下: var arr = ['s','o','f','i','s','h']; arr.shift(); // 返回 's'arr; // 目前是 ['o','f','i','s','h']arr.pop() // 返回 'h'arr // 目前是 ['o','f','i','s'] 在很多 JS 框架中可以很常见的是,一个方法提

在(ASP/PHP/JSP/html/js)中禁止ajax缓存的方法集锦_AJAX相关

ajax缓存有好处,但也有坏处,缓存有时候会导致误操作,影响用户体验,若你的WEB项目不需要ajax缓存功能,可按下述方法来禁止ajax缓存. 一.在ASP中禁止ajax缓存: '放在ASP网页最开头部分  Response.expires=0 Response.addHeader("pragma","no-cache") Response.addHeader("Cache-Control","no-cache, must-revali

关于js中的Replace函数的简单疑问!

问题描述 function(s, c) { return s.replace(/{(w+)}/g, function(m, p) { return c[p]; })} 上面这个函数是什么意思啊? 解决方案 Javascript中的replace函数的第二个参数可以是函数.如果是函数,将会用该函数的返回值进行替换./{(w+)}/g 匹配所有 花括号中间的文字.比如a{b}c这样会匹配出b.你的代码中的那个c多半是个map或对象.说到这你可能明白了吧,是个参数替换的方法.下面是示例,看得清楚些.f

js中截取字符串函数

网页特效中截取字符串函数 function substrdemo(){ var s, ss; // 声明变量. var s = "the rain in spain falls mainly in the plain."; ss = s.substr(12, 5); // 获取子字符串. return(ss); // 返回 "spain". } b = a.substring(start, end); start 表示起始位置,如果其实位置是第一个就填 0 end表

js中的eval()函数把含有转义字符的字符串转换成Object对象的方法_javascript技巧

在项目中遇到一个问题:在前端需要把后台返回的json字符串转换成一个js中的json对象,可是从后台返回的字符串中含有转义字符:\", 在网上查到方法如下,可以处理这种情况: var page = eval("("+data+")");