ajax小应用 --- 注册时判断用户名是否可用

一、前端页面

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

代码实现如下:
在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值