来源:自学PHP网 时间:2014-10-28 17:28 作者: 阅读:次
[导读] 使用ajax对注册名进行验证判断它是否在数据库中存在,具体的实现如下,感性的朋友可以参考下,希望对大家有所帮助...
这个是我在网上看到的一个有错的ajax 我改正确了,却找不到那个帖子了。
用servlet验证: 复制代码 代码如下: package Servlet; import java.io.*; import java.sql.*; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.*; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServlet; public class CheckServlet extends HttpServlet { static HttpServletRequest request = null; static HttpServletResponse response = null; public static void main(String[] args) throws Exception, IOException{ CheckServlet c = new CheckServlet(); c.doPost(request, response); } public static final String DBDRIVER = "com.mysql.jdbc.Driver"; public static final String DBURL = "jdbc:mysql://localhost:3306/spring"; public static final String DBUSER = "root"; public static final String DBPASS = "liangke"; public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { this.doPost(request, response); } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.setCharacterEncoding("gbk"); response.setContentType("text/html"); Connection conn = null; PreparedStatement pstmt = null; ResultSet rs = null; PrintWriter out = response.getWriter(); String userid = request.getParameter("userid");// 接受验证的用户名 try { Class.forName(DBDRIVER); conn = DriverManager.getConnection(DBURL, DBUSER, DBPASS); String sql = " select * from user where username=?"; pstmt = conn.prepareStatement(sql); pstmt.setString(1, userid); rs = pstmt.executeQuery(); StringBuffer jsonStr=new StringBuffer(); jsonStr.append("[{flag:'"); if(rs.next()){ jsonStr.append("true',alertTest:'aaa'}]"); out.println(jsonStr.toString()); }else{ jsonStr.append("false',alertTest:'bbb'}]"); out.println(jsonStr.toString()); } out.close(); } catch (Exception e) { e.printStackTrace(); } finally { try { conn.close(); } catch (SQLException e) { e.printStackTrace(); } } } } 前台显示页面: 复制代码 代码如下: <%@ page language="java" pageEncoding="utf-8"%> <%@ page import="java.sql.*"%> <%@ page import="java.util.*"%> <!doctype html> <html lang="en"> <body> <script> //onload 当页面加载的时候会调用这个方法initPage window.onload = initPage; function initPage() { alert("ee"); document.getElementById("userid").onblur = checkUserid;//引用函数方法。 onblur 事件在用户离开输入框时执行 JavaScript 代码 } //创建请求对象 function createRequest() { try { request = new XMLHttpRequest(); } catch (tryMS) { try { request = new ActiveXObject("Msxml2.XMLHTTP"); } catch (otherMS) { try { request = new ActiveXObject("Microsoft.XMLHTTP"); } catch (failed) { request = null; } } } return request; } //检查用户名是否重复 function checkUserid(){ alert("dd"); request=createRequest(); var theName = document.getElementById("userid").value; request.open("POST","CheckServlet?userid="+theName,true); request.onreadystatechange=checkUseridCallback; request.send(null); document.getElementById("msg").innerHTML="正在验证..."; } //回调函数 function checkUseridCallback(){ if(request.readyState==4){ if(request.status==200){ var v = request.responseText; var value1= eval(v)[0]; if( value1.flag=="true"){ document.getElementById("msg").innerHTML="用户ID重复"; }else{ document.getElementById("msg").innerHTML="此用户ID可以注册"; } } } } </script> <form action="check.jsp" method="POST"> 用户ID: <input type="text" id="userid" name="userid"> <span id="msg"></span> <br> 姓名 <input type="text" name="name"> </form> </body> </html> |
自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习
京ICP备14009008号-1@版权所有www.zixuephp.com
网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com