jsp + ajax实现验证用户名

publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletEx... public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
request.setCharacterEncoding("GBK");
String fname = request.getParameter("fname");
BookstoreManager bookstoreManager = new BookstoreManager();
request.setCharacterEncoding("GBK");
boolean valid = bookstoreManager.findByBookName(fname);
PrintWriter out = response.getWriter();
out.println(valid);
out.flush();
out.close();
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request, response);
}

jsp

<script type="text/javascript">

function checkBookExists(){
var fname = document.getElementById("fileName");
if(fname.value.length==""){
alert("书名不能为空!");
fname.focus();
return false;
}else{
doAjax();
}

}

function createXMLHttpRequest(){
//创建XMLHttpRequest对象

if(window.XMLHttpRequest){
//针对FireFox,Mozillar,Opera,Safari,IE7,IE8
xmlhttp = new XMLHttpRequest();

//对某些特定版本的mozillar浏览器的bug进行修正
if(xmlhttp.overrideMineType){
xmlhttp.overrideMineType("text/xml");
}
}else if(window.ActiveXObject){
//针对IE5,IE5.5,IE6

//两个可以用于创建XMLHTTPRequest对象的控件名称。保存在一个JS数组中。
var activexName = ["MSXML2.XMLHTTP","Microsoft.XMLHTTP"];
for(var i = 0; i<activeName.length; i++){
//取出一个控件名进行创建,如果成功就终止循环
try{
xmlhttp = new ActiveXObject(activexName[i]);
break;
}catch(e){}
}

}
if(xmlhttp){
return xmlhttp;
}else{
alert("XMLHttpRequest对象创建失败!");
}
}

var xmlHttp;
//提交请求数据
function doAjax(){

var fname = document.getElementById("fileName").value;
xmlHttp = createXMLHttpRequest();
alert(xmlHttp);
if(xmlHttp!=null){
xmlHttp.onreadystatechange=processRequest;
xmlHttp.open("GET","BookstoreCheckServlet?fname="+fname,true);
xmlHttp.send(null);

}else{
alert("adfs");
}
}

function processRequest(){
if(xmlHttp.readyState == 4){

if(xmlHttp.status ==200){
var b = xmlHttp.responseText.trim();
if(b=="true"){

document.getElementById("bookname").innerHTML="书名可以使用";
}else{
document.getElementById("bookname").innerHTML="书名已经被使用";
}
}else{
alert("请求处理返回的数据有错误!");
alert(xmlHttp.status);
}
}
}
</script>

调试的时候 弹出 alert("请求处理返回的数据有错误!");
求求大家帮帮我 实在是弄的我无语了
展开
 我来答
百度网友46b235f5b2
2012-04-08 · TA获得超过1397个赞
知道小有建树答主
回答量:676
采纳率:100%
帮助的人:633万
展开全部
用jquery的ajax吧,很简单的,先下载jquery的js文件,引入到jsp页面,然后:
function checkBookExists(){
var fname = document.getElementById("fileName");
if(fname.value.length==""){
alert("书名不能为空!");
fname.focus();
return false;
}else{
$.post('BookstoreCheckServlet',{fname:fname},function(msg){
if(msg=="true"){
$("#bookname").html="书名可以使用";
}else{
$("#bookname").html="书名已经被使用";
}
});
}

}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
燃烧这青春
2012-04-08 · TA获得超过1734个赞
知道大有可为答主
回答量:3901
采纳率:0%
帮助的人:2437万
展开全部
alert("请求处理返回的数据有错误!");
说明xmlHttp.status !=200,在servlet的doGet方法里打个断点,看看请求有没有到servlet里,如果没有,就看看servlet的配置和servlet的地址对不对。如果请求到servlet里了,那可能就是后天执行时报错了。其实看看xmlHttp.status 是多少就知道了。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2012-04-08
展开全部
你后台打印下valid的值试试,是true还是false
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式