JavaWeb注册登录功能

为了方便,就不另外使用服务层了,直接使用Dao进行操作。
首先我们要创建一个连接数据库的工具类,用这个工具类进行对数据库的链接和关闭连接操作。代码如下:

JdbcUtis

package com.utils;

import java.sql.*;

public class JdbcUtil {
    private static final String USER = "root";//用户
    private static final String PASSWORD = "root";//密码
    static final String DRIVER="com.mysql.jdbc.Driver";//数据库驱动
    static final String URL="jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8";//数据库地址

    private static Connection conn;

    //加载数据库驱动
    static{
        try {
            Class.forName(DRIVER);
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        }
    }

    //获取连接的方法
    public static Connection getConnection(){
        try {
            return conn = DriverManager.getConnection(URL,USER,PASSWORD);
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return null;
    }

    /**
     * 关闭链接
     * @param conn
     * @param pst
     * @param rs
     */
    public static void Close(Connection conn, PreparedStatement pst, ResultSet rs){
        if(conn!=null){
            try {
                conn.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
        if(pst!=null){
            try {
                pst.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
        if(rs!=null){
            try {
                rs.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }
}

然后我们要创建一个专门用于用户对数据库进行操作的类,当然,现在我们只需要写两个功能就可以啦。代码如下:

UserDao

package com.dao;

import com.utils.JdbcUtil;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

public class UserDao {

    private Connection conn = JdbcUtil.getConnection();
    private PreparedStatement pst = null;
    private ResultSet rs = null;

    /**
     * 登录功能
     * @return
     */
    public boolean Login(String name,String password){
        try{
            pst = conn.prepareStatement("select count(*) from users where name = ? and password = ? ");
            pst.setString(1,name);
            pst.setString(2,password);
            rs = pst.executeQuery();
            while(rs.next()){
                int anInt = rs.getInt(1);
                if(anInt>0){
                    return true;
                }
            }
        }catch (SQLException e){
            e.printStackTrace();
        }finally {
            JdbcUtil.Close(conn,pst,rs);
        }
        return false;
    }

    /**
     * 新增用户
     * @param name
     * @param password
     * @return
     */
    public boolean add(String name,String password){
        try{
            pst = conn.prepareStatement("insert into users(name,password) values(?,?)");
            pst.setString(1,name);
            pst.setString(2,password);
            int i = pst.executeUpdate();
            if(i>0){
                return true;
            }
        }catch (SQLException e){
            e.printStackTrace();
        }finally {
            JdbcUtil.Close(conn,pst,rs);
        }
        return false;
    }
}

接下来就是编写我们的servlet了…为了方便理解查看,我将两个功能分成了两个servlet

LoginSerlvet(用户登录)

package com.servlet;

import com.dao.UserDao;

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("/LoginServlet")
public class LoginServlet extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

        //统一编码格式,防止前端传过来的数据乱码
        request.setCharacterEncoding("utf-8");
        response.setCharacterEncoding("utf-8");

        //前端传过来的用户名和密码
        String name = request.getParameter("name");
        String password = request.getParameter("password");

        //用户登录功能
        UserDao dao = new UserDao();
        boolean login = dao.Login(name, password);
        if(login){//登录成功
            request.getRequestDispatcher("user.jsp").forward(request,response);
        }else{//登录失败
            response.sendRedirect("fail.jsp");
        }
    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doPost(request,response);
    }
}

addServlet(用户注册)

package com.servlet;

import com.dao.UserDao;

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("/AddServlet")
public class AddServlet extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        //统一编码格式,防止前端传过来的数据乱码
        request.setCharacterEncoding("utf-8");
        response.setCharacterEncoding("utf-8");

        //前端传过来的用户名和密码
        String name = request.getParameter("name");
        String password = request.getParameter("password");

        //用户注册
        UserDao dao = new UserDao();
        boolean add = dao.add(name, password);
        if(add){//注册成功
            request.getRequestDispatcher("login.jsp").forward(request,response);
        }else{//注册失败
            response.sendRedirect("fail.jsp");
        }
    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doPost(request,response);
    }
}

前端代码

登录页面
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
<form action="/LoginServlet" method="post">
    <input type="text" name="name"><br>
    <input type="password" name="password"><br>
    <input type="submit" value="go">
</form>
</body>
</html>
注册页面
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
    <form action="/AddServlet" method="post">
        <input type="text" name="name"> <br>
        <input type="password" name="password"> <br>
        <input type="submit" value="go">
    </form>
</body>
</html>

希望能对你有所帮助!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值