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;
}
}