ajax表单验证后台用户名是否存在
来源:互联网 发布:iphone电脑同步软件 编辑:程序博客网 时间:2024/05/18 22:40
package ajaxservlet;import java.io.IOException;import java.io.PrintWriter;import java.sql.Connection;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;import javax.servlet.RequestDispatcher;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import db.DBconnection;public class AjaxServlet extends HttpServlet {//private static final long serialVersionUID = 1L;public void destroy() {try {DBconnection.connectionClose();} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}}public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {response.setContentType("text/html;charset=utf-8");response.setHeader("Cache-Control","no-cache");PrintWriter out=response.getWriter();String name=request.getParameter("username");String pass=request.getParameter("userpass");String pass2=request.getParameter("userpass2");String a=request.getParameter("a");String b=request.getParameter("b");System.out.println(name+" "+pass);System.out.println("a "+a);System.out.println("b "+b);request.setAttribute("name",name);System.out.println(name);try {if(checkName(name)){System.out.println(checkName(name));System.out.println("checkname="+name);out.write("用户名已经存在,请重新输入!");System.out.println("xxxxxxxxxxxxxxxxx");request.setAttribute("error.message","用户名已经存在");}else{out.write("此用户名合法");}} catch (SQLException e) {// TODO Auto-generated catch blockout.close();e.printStackTrace();}}public boolean checkName(String name) throws SQLException //检查用户名是否存在{boolean flag=false;Connection conn=DBconnection.getConnection();System.out.println("conn="+conn);/*String sql="select * from a_user where username='"+name+"'";System.out.println("name="+name);Statement state=conn.createStatement();ResultSet rs=state.executeQuery(sql);*/String sql="select * from a_user where username=?";PreparedStatement pstate=conn.prepareStatement(sql);pstate.setString(1,name);ResultSet rs=pstate.executeQuery();//System.out.println(rs.getInt(0));//System.out.println(rs.getString("username"));while(rs.next()){System.out.println("rs.getString(username)="+rs.getString("username"));flag=true;}return flag;}public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {//response.setContentType("text/html");this.doGet(request, response);}public void init() throws ServletException {}}
[html] view plaincopyprint?
-
[html] view plaincopyprint?
- //以下是ajax部分
- var xmlhttp;
-
- function ajaxfun()
- {
-
- if (window.XMLHttpRequest)
- {// code for IE7+, Firefox, Chrome, Opera, Safari
- xmlhttp=new XMLHttpRequest();
- }
- else
- {// code for IE6, IE5
- xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
- }
- return xmlhttp;
- }
-
- window.onload=function()
- {
-
- document.getElementById("username1").onblur=function()
- {
- var name=document.getElementsByName("username")[0].value;
- xmlhttp=ajaxfun();
- xmlhttp.onreadystatechange=check;
- //xmlhttp.open("get","http://localhost:8080/ajaxtest/AjaxServlet?username="+name+"&time="+new Date().toTimeString(),true);
- //以下是get方法传值
- /*xmlhttp.open("get","./AjaxServlet?username="+name+"&time="+new Date().toTimeString(),true);
- xmlhttp.send(null);*/
-
- /*
- * 如果需要像 HTML 表单那样使用 POST 传递数据,请使用 setRequestHeader() 来添加 HTTP 头。
- * 然后在 send() 方法中规定您希望发送的数据:
- */
- xmlhttp.open("post","./AjaxServlet?username="+name+"&time="+new Date().toTimeString(),true);
- xmlhttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded")
- xmlhttp.send("a=100&b=222");
-
- }
-
- }
- function check()
- {
- alert(xmlhttp.status);
- if(xmlhttp.readyState==4 && xmlhttp.status==200)
- {
- alert(xmlhttp.status);
- document.getElementById("span").innerHTML=xmlhttp.responseText;
- }
- }
//以下是ajax部分var xmlhttp;function ajaxfun(){if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari xmlhttp=new XMLHttpRequest(); }else {// code for IE6, IE5 xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); }return xmlhttp;}window.onload=function(){document.getElementById("username1").onblur=function(){var name=document.getElementsByName("username")[0].value;xmlhttp=ajaxfun();xmlhttp.onreadystatechange=check;//xmlhttp.open("get","http://localhost:8080/ajaxtest/AjaxServlet?username="+name+"&time="+new Date().toTimeString(),true);//以下是get方法传值/*xmlhttp.open("get","./AjaxServlet?username="+name+"&time="+new Date().toTimeString(),true);xmlhttp.send(null);*//* * 如果需要像 HTML 表单那样使用 POST 传递数据,请使用 setRequestHeader() 来添加 HTTP 头。 * 然后在 send() 方法中规定您希望发送的数据: */xmlhttp.open("post","./AjaxServlet?username="+name+"&time="+new Date().toTimeString(),true);xmlhttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded")xmlhttp.send("a=100&b=222");}}function check(){alert(xmlhttp.status);if(xmlhttp.readyState==4 && xmlhttp.status==200){alert(xmlhttp.status);document.getElementById("span").innerHTML=xmlhttp.responseText;}}
[html] view plaincopyprint?
- //jsp中的body部分
- <body>
- <%--<form action="/ajaxtest/RegisteServlet" method="get">
- <form action="" method="get" enctype="application/x-www-form-urlencoded">
- --%>
- <form action="/ajaxtest/RegisteServlet" method="get">
- 用户名:<input type="text" name="username" id="username1"/><span id="span"></span><br>
- 密码:<input type="password" name="userpass"/><br>
- 确认密码:<input type="password" name="userpass2"/><br>
- <input type="submit" value="提交"/>
-
- <input type="button" name="username" id="username1" value="点击"/>
- </form>
- </body>