ajax实现无刷新检测解决方法
阅读
- JScript code
<script language="javascript"> var http_request = false; function createRequest(url) { //初始化对象并发出XMLHttpRequest请求 http_request = false; if (window.XMLHttpRequest) { // Mozilla或其他除IE以外的浏览器 http_request = new XMLHttpRequest(); if (http_request.overrideMimeType) { http_request.overrideMimeType("text/xml"); } } else if (window.ActiveXObject) { // IE浏览器 try { http_request = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { try { http_request = new ActiveXObject("Microsoft.XMLHTTP"); } catch (e) {} } } if (!http_request) { alert("不能创建XMLHTTP实例!"); return false; } http_request.onreadystatechange = alertContents; //指定响应方法 //发出HTTP请求 http_request.open("GET", url, true); http_request.send(null); } function alertContents() { //处理服务器返回的信息 if (http_request.readyState == 4) { if (http_request.status == 200||http_request.status==0) { alert(http_request.responseText); } else { alert('您请求的页面发生错误!'); } } } function checkName() { var username = form1.username.value; if(username=="") { window.alert("请添写用户名!"); form1.username.focus(); return false; } else { createRequest('checkName.jsp?username='+username); } } </script>
- HTML code
<td width="293" id="td1"><input type="text" id="username" name="username"/> <input type="button" value="检测用户名" onClick="checkName()"></td>
通过Onclick调用函数,转入checkName.jsp文件,如下:
- SQL code
<%//request.setCharacterEncoding("GB2312"); String username=request.getParameter("username"); try{ Class.forName("com.mysql.jdbc.Driver"); }catch (ClassNotFoundException e) { e.printStackTrace(); } // try{ Connection conn=DriverManager.getConnection("jdbc:mysql://localhost/hrm","root","root"); /* }catch (SQLException e) { e.printStackTrace(); }*/ Statement stmt=conn.createStatement(); String sql="select * from userinfo where userName='"+username+"'"; ResultSet rs=stmt.executeQuery(sql); if (rs.next()){ out.println("很报歉!用户名"+username+"已经被注册!"); }else{ out.println("祝贺您!用户名"+username+"没有被注册!"); } rs.close(); conn.close(); stmt.close();%>
为什么不管我输入什么,都提示没有被注册,我输入的东西数据库有,我用servlet检测时就是正确的,但是用这个不知道为什么不对
------解决方案--------------------
你在jsp里面打印一个username 很有可能是一个空串 你的createRequest传入的url不要在括号里面做拼接 拼接好再传进去
------解决方案--------------------
把SQL打印出來,然后丢到数据库执行
------解决方案--------------------
你应该先按照1楼说的 先打印 String username=request.getParameter("username");
这个 username 有可能是空值 还有可能是乱码 如果都不是那你就 打印sql语句 到数据库执行下就知道是代码的问题还是数据哭的问题了 如果数据库的sql是对的 那就可能是链接数据库时候的编码跟数据库不一致导致查询出错 你可以用characterEncoding=数据库编码 eg: con = DriverManager.getConnection("jdbc:mysql:///db?characterEncoding=utf-8", "root", "123456"); 先找到问题的所在 希望对你有帮住
------解决方案--------------------
阅读
上一篇:关于提交表单参数个数确定·struts1.x该怎么去接收 下一篇:返回列表