一、前端页面
<%--
Created by IntelliJ IDEA.
User: zhang
Date: 2021/03/02
Time: 11:41
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>注册验证</title>
<script src="js/jquery-3.4.1.js"></script>
<script>
$(function(){
$('[name=userName]').blur(function(){//用户名失去焦点时触发
$.ajax({
type:"get",
url:"finduser?name="+$('[name=userName]').val(),
dataType:"text",
success:function (data) {//成功回调函数
// alert(data);
if (data=="1"){
$('#show').html("用户名已存在,请修改重试");
}else{
$('#show').html("用户名可用");
}
}
})
})
});
</script>
</head>
<body>
用户名:<input type="text" name="userName"><span id="show"></span><br>
密码:<input type="password" name="psw"><br>
<input type="submit" value="提交">
</body>
</html>
二、Selevlet层
package cn.zc.servlet;
import cn.zc.dao.Impl.UserDaoImpl;
import cn.zc.dao.UserDao;
import cn.zc.domain.User;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
@WebServlet("/finduser")
public class FindUserServlet extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.setCharacterEncoding("utf-8");
response.setContentType("text/html;charset=utf-8");
String name = request.getParameter("name");
UserDao userDao = new UserDaoImpl();
User ui = userDao.findName(name);
if (ui!=null){
response.getWriter().write("1");
}else{
response.getWriter().write("2");
}
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
this.doPost(request, response);
}
}
三、domin包、utils工具包、dao包以及dao包下的实现类Impl。
domin包:
package cn.zc.domain;
public class User {
public Integer id;
public String username;
public String pwd;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPwd() {
return pwd;
}
public void setPwd(String pwd) {
this.pwd = pwd;
}
public User(Integer id, String username, String pwd) {
this.id = id;
this.username = username;
this.pwd = pwd;
}
public User() {
}
@Override
public String toString() {
return "User{" +
"id=" + id +
", username='" + username + '\'' +
", pwd='" + pwd + '\'' +
'}';
}
}
utils工具包:
package cn.zc.utils;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class DBHelper {
// Mysql5.5及以上版本需要在数据库名称后面添加?charart---等解释,5.5以下的版本则不用
public static final String URL="JDBC:mysql://localhost:3306/chick?characterEncoding=utf8&useSSL=false&serverTimezone=UTC";
// 数据库账号
public static final String USERNAME="root";
// 账号密码
public static final String PSW="123456";
public static Connection Conn;
public static Connection getConn(){
try {
Class.forName("com.mysql.jdbc.Driver");
try {
Conn = DriverManager.getConnection(URL,USERNAME,PSW);
} catch (SQLException e) {
e.printStackTrace();
}
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
return Conn;
}
// 关闭数据库
public static void closeconn(Connection conn){
if (Conn!=null){
try {
Conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
//若不为空则代表连接成功
public static void main(String[] args) {
System.out.println(DBHelper.getConn());
}
}
dao包:
package cn.zc.dao;
import cn.zc.domain.User;
public interface UserDao {
public User findName(String name);
}
Impl包:
package cn.zc.dao.Impl;
import cn.zc.dao.UserDao;
import cn.zc.domain.User;
import cn.zc.utils.DBHelper;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
public class UserDaoImpl implements UserDao {
@Override
public User findName(String name) {
User ui = null;
Connection conn = DBHelper.getConn();
String sql = "select *from user where name=?";
try {
PreparedStatement ps = conn.prepareStatement(sql);
ps.setString(1,name);
ResultSet rs = ps.executeQuery();
if (rs.next()) {
ui = new User();
ui.setId(rs.getInt(1));
ui.setUsername(rs.getString(2));
ui.setPwd(rs.getString(3));
}
} catch (SQLException e) {
e.printStackTrace();
}
return ui;
}
}
代码实现如下: