使用ajax在创建用户的时候校验用户名

ajax代码:

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
    
    <title>My JSP 'ajaxUname.jsp' starting page</title>
    <!-- 声明JS代码域 -->
	<script type="text/javascript">
		//声明用户名效验函数
		function checkUname(){
			//获取用户信息
			var uname=document.getElementById("uname").value;
			//使用ajax效验用户名是否存在
			//创建ajax引擎对象
			var ajax;
			if(window.XMLHttpRequest){
				ajax=new XMLHttpRequest();
			
			}else if(window.ActiveXObject){
				ajax=new ActiveObject("Msxm12.XMLHTTP");
			}
			//覆写onreadystatechange
			ajax.onreadystatechange=function(){
				//判断ajax状态码
			if(ajax.readyState==4){
				//判断响应状态码
				if(ajax.status==200){
					//获取响应数据
					var data = ajax.responseText;
					alert(eval(data))
					//处理响应数据
					if(data){
						document.getElementById("unameSpan").innerHTML="用户名已被占用";
					}else{
						document.getElementById("unameSpan").innerHTML="用户名OK";
					}
				}
			}
		}
		//发起请求
		//使用get 
		ajax.open("get","/WebProject/us?uname="+uname)
		//发起请求
		ajax.send(null);
	
	}
	
	
	</script>

  </head>
  
  <body>
    <h3>ajax用户名校验</h3>
    <hr />
    用户名:<input type="text" name="uname" id="uname" value="" οnblur="checkUname()" /><span id="unameSpan" ></span> 
  </body>
</html>

servlet方法:

package com.bjsxt.userServlet;

import java.io.IOException;

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

import com.bjsxt.pojo.User;
import com.bjsxt.unameservice.UnameService;
import com.bjsxt.unameserviceImpl.UnameServiceImpl;

public class UserServlet extends HttpServlet {
	@Override
	protected void service(HttpServletRequest req, HttpServletResponse resp)
			throws ServletException, IOException {
		UnameService us = new UnameServiceImpl();
		//获取请求编码格式
		req.setCharacterEncoding("utf-8");
		//设置响应编码格式
		resp.setContentType("text/html;charset=utf-8");
		//获取请求信息
		String uname=req.getParameter("uname");
		//处理请求信息
		User u=null;
		u=us.checkUser(uname);
		System.out.println("UserServlet.service()"+u);
		Boolean flag=false;
		
		//响应处理结果
		if(u.getUid()==0){
			flag=false;
		}else{
			flag=true;
		}
		resp.getWriter().write(flag+"");
			//重定向
			//请求转发
		System.out.println(flag);
	}

}

实体类:

package com.bjsxt.pojo;

public class User {
	private int uid;
	private String uname;
	private String pwd;
	private String sex;
	private String fav;
	public int getUid() {
		return uid;
	}
	public void setUid(int uid) {
		this.uid = uid;
	}
	public String getUname() {
		return uname;
	}
	public void setUname(String uname) {
		this.uname = uname;
	}
	public String getPwd() {
		return pwd;
	}
	public void setPwd(String pwd) {
		this.pwd = pwd;
	}
	public String getSex() {
		return sex;
	}
	public void setSex(String sex) {
		this.sex = sex;
	}
	public String getFav() {
		return fav;
	}
	public void setFav(String fav) {
		this.fav = fav;
	}
	@Override
	public int hashCode() {
		final int prime = 31;
		int result = 1;
		result = prime * result + ((fav == null) ? 0 : fav.hashCode());
		result = prime * result + ((pwd == null) ? 0 : pwd.hashCode());
		result = prime * result + ((sex == null) ? 0 : sex.hashCode());
		result = prime * result + uid;
		result = prime * result + ((uname == null) ? 0 : uname.hashCode());
		return result;
	}
	@Override
	public boolean equals(Object obj) {
		if (this == obj)
			return true;
		if (obj == null)
			return false;
		if (getClass() != obj.getClass())
			return false;
		User other = (User) obj;
		if (fav == null) {
			if (other.fav != null)
				return false;
		} else if (!fav.equals(other.fav))
			return false;
		if (pwd == null) {
			if (other.pwd != null)
				return false;
		} else if (!pwd.equals(other.pwd))
			return false;
		if (sex == null) {
			if (other.sex != null)
				return false;
		} else if (!sex.equals(other.sex))
			return false;
		if (uid != other.uid)
			return false;
		if (uname == null) {
			if (other.uname != null)
				return false;
		} else if (!uname.equals(other.uname))
			return false;
		return true;
	}
	@Override
	public String toString() {
		return "User [uid=" + uid + ", uname=" + uname + ", pwd=" + pwd
				+ ", sex=" + sex + ", fav=" + fav + "]";
	}
	public User() {
		super();
		// TODO Auto-generated constructor stub
	}
	
	

}

service层

package com.bjsxt.unameservice;

import com.bjsxt.pojo.User;

public interface UnameService {

	//查询用户名信息
	User checkUser(String uname);

}

serviceImpl方法:

package com.bjsxt.unameserviceImpl;

import com.bjsxt.pojo.User;
import com.bjsxt.unameDao.UnameDao;
import com.bjsxt.unameDaoImpl.UnameDaoImpl;
import com.bjsxt.unameservice.UnameService;

public class UnameServiceImpl implements UnameService {

	/**
	 * 查询实体类方法
	 */
	UnameDao ud = new UnameDaoImpl();
	@Override
	public User checkUser(String uname) {
		// TODO Auto-generated method stub
		return ud.checkUser(uname);
	}

}

dao层对象

package com.bjsxt.unameDao;

import com.bjsxt.pojo.User;

public interface UnameDao {

	/**
	 * 查询实体类方法
	 * @param uname
	 * @return
	 */
	User checkUser(String uname);

}

daoImpl类

package com.bjsxt.unameDaoImpl;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

import com.bjsxt.pojo.User;
import com.bjsxt.unameDao.UnameDao;

public class UnameDaoImpl implements UnameDao {

	@Override
	public User checkUser(String uname) {
		//创建jdbc变量
		String driver="com.mysql.jdbc.Driver";
		String url="jdbc:mysql://localhost:3306/emp";
		String username="root";
		String password="123456";
		//创建jdbc参数
		Connection conn = null;
		PreparedStatement ps = null;
		ResultSet rs = null;
		List<User> list=null;
		User u =null;
		//加载驱动
		try {
			Class.forName(driver);
			//创建连接
			conn = DriverManager.getConnection(url, username, password);
			//创建SQL命令
			String sql="select * from t_uzer where uname=?";
			//创建SQL命令对象
			ps = conn.prepareStatement(sql);
			//给占位符赋值
			ps.setString(1, uname);
			//执行SQL命令
			System.out.println("+++++++++"+uname);
			rs = ps.executeQuery();
			list = new ArrayList<User>();
			u=new User();
			//处理结果
			while(rs.next()){
				u.setUid(rs.getInt("uid"));
				u.setUname(rs.getString("uname"));
				u.setPwd(rs.getString("pwd"));
				u.setSex(rs.getString("sex"));
				u.setFav(rs.getString("fav"));
				list.add(u);
			}
			System.out.println("UnameDaoImpl.checkUser()"+list);
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}finally{
			try {
				rs.close();
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
			try {
				ps.close();
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
			try {
				conn.close();
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
			
		}		
		//关闭资源		
		System.out.println("UnameDaoImpl.checkUser()"+u);
		return u;
	}

}
发布了1881 篇原创文章 · 获赞 848 · 访问量 95万+

猜你喜欢

转载自blog.csdn.net/wyqwilliam/article/details/103899875