Ajax入门----检测用户ID是否存在

        来公司快打了三个月的酱油,最近领导让学习Ajax说以后的项目会用到,所以就边学习边写关于Ajax的博客,希望和大家交流学习,有不正确的地方请大家指正。下面贴一段今天刚写的入门级的代码,说一下自己在写代码过程中出现的错误。

注册页面:

 regist.html

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<script language="JavaScript">
	var xmlHttp;					//Ajax核心对象名称
	var flag;						//定义标志位
	function createXMLHttp(){		//创建XMLHttpRequest核心对象
		if(window.XMLHttpRequest){	//判断当前使用的浏览器类型
			xmlHttp=new XMLHttpRequest();//表示使用的是火狐内核的浏览器
		}else{
			xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");//表示使用的是IE内核的浏览器
		}
	}
	function checkUserid(userid){
		<span style="color:#FF0000;">createXMLHttp();				//建立xmlHttp核心对象</span>
		//设置一个请求,通过地址重写的方式将userid传递到jsp中
		xmlHttp.open("POST","CheckServlet?userid="+userid);
		//设置请求完成之后处理的回调函数
		xmlHttp.onreadystatechange=checkUseridCallback;
		xmlHttp.send(null);				//发送请求,不传递任何参数
		document.getElementById("msg").innerHTML="正在验证...";
	}
	function checkUseridCallback(){		//定义回调函数
		if(xmlHttp.readyState==4){		//数据返回完毕
			if(xmlHttp.status==200){	//HTTP操作正常
				var text=xmlHttp.responseText;//接受返回的内容
				if(text=="true"){
					flag=false;			//无法提交表单
					document.getElementById("msg").innerHTML="用户ID重复,无法使用!";
				}else{
					flag=true;			//可以提交表单
					document.getElementById("msg").innerHTML="此用户ID可以注册!";
				}
			}
		}
	}
	function checkForm(){
		return flag;
	}
</script>
<form action="CheckServlet" method="post" οnsubmit="return checkForm()">
	用户ID:<input type="text" name="userid" οnblur="checkUserid(this.value)"><span id="msg"></span><br>
	姓  名<input type="text" name="name"><br>
	密  码<input type="password" name="password"><br>
	<input type="submit" value="注册">
	<input type="reset" value="重置">
</form>
</body>
</html>
后台连接数据库以及判断数据库中是否存在相同ID:

CheckServlet.java

package com.Ajax.Servlet;

import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * Servlet implementation class CheckServlet
 */
public class CheckServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;
	private static String driverName="oracle.jdbc.driver.OracleDriver";
	private String userName="system";
	private String userPwd="zyz123";
	private String dbUrl="jdbc:oracle:thin:@localhost:1521:orcl";
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public CheckServlet() {
        super();
        // TODO Auto-generated constructor stub
    }

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		doPost(request, response);
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		request.setCharacterEncoding("UTF-8");
		response.setContentType("text/html");
		Connection conn=null;
		PreparedStatement pstmt=null;
		ResultSet rs=null;
		PrintWriter out=response.getWriter();
		String userid=request.getParameter("userid");
		System.out.println(userid);
		try{
			Class.forName(driverName);
			conn=DriverManager.getConnection(dbUrl,userName,userPwd);
			String sql="Select count(userid) from ajax_user where userid=?";
			pstmt=conn.prepareStatement(sql);
			pstmt.setString(1, userid);
			rs=pstmt.executeQuery();
			if(rs.next()){
				if(rs.getInt(1)>0){
					out.print("true");
					System.out.println("true");
				}else{
					out.print("false");
					System.out.println("false");
				}
			}
			out.close();
		}catch(Exception e){
			e.printStackTrace();
		}finally{
			try{
				conn.close();
			}catch(SQLException e){
				e.printStackTrace();
			}
		}
	}

}

上面就是一个简单的注册验证用户ID的代码了,我写代码却出现了以下几个错误:

一、由于关联数据库所以需要加上数据库的jar包,我没引用,这个错误在控制台会显示报错: java.lang.ClassNotFoundException: oracle.jdbc.driver.OracleDriver   

二、 regist.html该代码中标红的地方我写成了 createRequest()   由于这个地方写错导致我运行程序时调用不了Ajax而且不报错,我查了好久才发现

照书敲都能出现简单的错误,以后还是要提醒自己细心。



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
AJAX (Asynchronous JavaScript and XML) 是一种用于前后端数据交互的技术。它允许在不刷新整个页面的情况下,通过异步方式向服务器发送请求并获取响应数据。 使用 AJAX 可以实现以下功能: 1. 发送异步请求:通过 JavaScript 创建 XMLHttpRequest 对象,并使用该对象发送 HTTP 请求到服务器。 2. 处理响应数据:一旦服务器返回响应,可以通过回调函数处理返回的数据。常见的数据格式包括 XML、JSON 或纯文本。 3. 更新页面内容:根据服务器返回的数据,可以使用 JavaScript 动态更新页面内容,而不需要刷新整个页面。这样可以提升用户体验并减少网络流量。 以下是一个简单的 AJAX 示例代码: ```javascript // 创建 XMLHttpRequest 对象 var xhr = new XMLHttpRequest(); // 指定请求的方法和 URL xhr.open('GET', 'https://api.example.com/data', true); // 设置回调函数处理响应 xhr.onreadystatechange = function() { if (xhr.readyState === XMLHttpRequest.DONE && xhr.status === 200) { // 处理服务器返回的数据 var response = xhr.responseText; console.log(response); // 更新页面内容 document.getElementById('result').innerHTML = response; } }; // 发送请求 xhr.send(); ``` 在上述示例中,我们使用 AJAX 发送了一个 GET 请求到 `https://api.example.com/data`,并设置了一个回调函数来处理服务器返回的数据。在回调函数中,我们将返回的数据打印到控制台,并将其更新到 id 为 `result` 的 HTML 元素中。 通过 AJAX,前端可以与后端进行实时的数据交互,从而实现更加动态和响应式的用户界面。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值