怎样通过Ajax访问mySql?用上jQuery也可以!
这里做的是一个修改密码的东东
password是原先的密码,就是想判断输入的password是否和旧密码一致
我是想通过Ajax检测password是否和该用户密码一致怎样通过Ajax访问mySql数据库呢?<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%><html><script   language="javascript">  
   
  //用script在提交之前判断密码的正确性  
  function   isValid()  
  {  
  if   (((document.theform.newPwd.value.length<3)||(document.theform.newPwd.value.length>8))&&(document.theform.newPwd.value!=""))  
                  {  
                  alert("密码必须是3-8位的字母或数字!");  
  return   false;  
  }  
  else   if   (document.theform.newPwd.value!=document.theform.newPwd2.value)  
  {  
  alert("两次输入的密码不同!");  
  return   false;  
  }  
  else   if   (document.theform.newPwd.value=="")  
  {  
  alert("用户密码不能为空!");  
  return   false;  
      }  
  else   return   true;  
  }  
  </script>     
  <body><%//防止没有登陆就进入登陆后的页面
if(session.getAttribute("name")==null){
%>
<jsp:forward page="index.jsp" /> 
<%
} %>
   
   <h2>Welcome to Reset password!!</h2>You are 
<%=session.getAttribute("name")%>    
<br><form action="servlet/resetInfo" method="post" name="theform" onSubmit="return  isValid();"><table><tr><td>password</td><td><input type="text" name="pwd"></td></tr>
<tr><td>new password</td><td><input type="text" name="newPwd"></td></tr>
<tr><td>Confirm password</td><td><input type="text" name="newPwd2"></td></tr><tr><td><input type="submit" value=SUBMIT ></td></tr></table></form><%--
http://localhost:8080/J5/index.jsp
  --%></body>
</html>

解决方案 »

  1.   

    用 AJAX 直接跟模型层通信就可以。模型层负责访问 MYSQL。
    楼主可以去我的资源里看看,有个 AJAX 版的 jsp 下拉条级联源代码,注释的很详细。
    原理都是一样的,参考下。
      

  2.   

    我知道了reg_checkName.jsp<%@ page language="java" import="java.util.*,model.*" pageEncoding="utf-8"%><html>  <body><form action="servlet/regInfo" method="post"> 
     
    <table>
    <tr>
    <td>Name</td>
    <td><input type="text" name="name" onBlur="validate()" id="userid"/></td>
    <td><span style="font-size: 12px;font-weight: bold" id="usermsg"></span></td>
    </tr><tr>
    <td>password</td>
    <td><input type="text" name="pwd" ></td>
    </tr><tr>
    <td><td><input type="submit" value="SUBMIT"/></td>
    </tr></table>
    </form>
    <script>
        var req;
        function validate() {
            var idField = document.getElementById("userid");
            var url = "AjaxReg.jsp?id=" + escape(idField.value);
            if(window.XMLHttpRequest) {
                req = new XMLHttpRequest();
            } else if (window.ActiveXObject) {
                req = new ActiveXObject("Microsoft.XMLHTTP");
            }
            req.open("GET", url, true);
            req.onreadystatechange = callback;
            req.send(null);
        }
        
        function callback() {
            if(req.readyState == 4) {
                if(req.status == 200) {
                    //alert(req.responseText);
                    var msg = req.responseXML.getElementsByTagName("msg")[0];
                    //alert(msg);
                    setMsg(msg.childNodes[0].nodeValue);
                }
            }
        }
        
        function setMsg(msg) {
            //alert(msg);
            mdiv = document.getElementById("usermsg");//userMsg是信息提示
            if(msg == "no") {
                mdiv.innerHTML = "";
            }if(msg=="yes"){
                mdiv.innerHTML = "<font>用户名重复</font>";
            }
        }
        </script>  </body>
    </html>
    AjaxJsp.jsp=============<%@ page language="java" import="java.util.*,model.*" pageEncoding="utf-8"%><html>  
      <body>
        <%
    response.setContentType("text/xml");
    response.setHeader("Cache-Control", "no-store"); //HTTP1.1
    response.setHeader("Pragma", "no-cache"); //HTTP1.0
    response.setDateHeader("Expires", 0); //prevents catching at proxy server
    String id=request.getParameter("id");
    System.out.print("name : "+id+"\n");//id = java.net.URLDecoder.decode(id,"UTF-8"); 
    Dao dao=new Dao();//new你的users查询完了返回就OK了
    Info info=dao.getName(id);//id就是Name
    String name=info.getName();
        if(name==null){
            out.write("<msg>no</msg>");
        }
        else {
            out.write("<msg>yes</msg>");        
        }
    //check the database%>
      </body>
    </html>
      

  3.   

    ajax 是无法直接访问数据库的 也是在页面调用 servlet ,有servlet实现的具体的MySQL操作。