网页后端实现注册登陆

网页后端

功能

1.注册账号功能
代码
package servlet;

import bean.Result;
import utils.InfoJDBC;
import utils.RegisterJDBC;

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("/log_up")
public class RegisterServlet extends HttpServlet {
    public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException {
        String name = request.getParameter("name");
        int schoolNum = Integer.parseInt(request.getParameter("schoolNum"));
        String password = request.getParameter("password");

        Result result = new Result();
        InfoJDBC infoJDBC = new InfoJDBC();
        String str = infoJDBC.info(schoolNum);

        if(str.length() != 34){
            result.setStatus(10001);
            result.setInfo("Existing user"); //已经注册过的学号会报错
        } else {
            RegisterJDBC registerJDBC = new RegisterJDBC();
            result = registerJDBC.register(name, schoolNum, password);
        }
        response.getWriter().write(result.toString());
    }
    public void doPost(HttpServletRequest request,HttpServletResponse response) throws IOException {
        this.doGet(request,response);
    }
}
JDBC
package utils;

import bean.Result;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;

public class RegisterJDBC {
    public Result register(String name, int schoolNum, String password) {
        String url = "jdbc:mysql://localhost:3306/test?useTimezone=true&serverTimezone=GMT%2B8&useSSL=false&allowPublicKeyRetrieval=true";
        String username = "root";
        String pswd = "root";
        Connection conn = null;
        PreparedStatement pst = null;
        String sql = "insert into test values('" + name + "'" + "," + schoolNum + "," + "'" + password + "')";
        Result result = new Result();

        try {
            Class.forName("com.mysql.jdbc.Driver");
            conn = DriverManager.getConnection(url, username, pswd);
            pst =conn.prepareStatement(sql);
            pst.executeUpdate();

            pst.close();
            conn.close();
        }catch (Exception e){
            e.printStackTrace();
        }

        result.setStatus(10000);
        result.setInfo("success");
        return result;
    }
}


2.登陆
package servlet;

import bean.Result;
import utils.LoginJDBC;

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("/log_in")
public class LoginServlet extends HttpServlet {
    public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException {
        int schoolNum = Integer.parseInt(request.getParameter("schoolNum"));
        String password = request.getParameter("password");

        LoginJDBC loginJDBC = new LoginJDBC();
        Result result = loginJDBC.login(schoolNum, password);
        response.getWriter().write(result.toString());
    }
    public void doPost(HttpServletRequest request,HttpServletResponse response) throws IOException {
        this.doGet(request,response);
    }
}
JDBC
package utils;

import bean.Result;

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

public class LoginJDBC {
    public Result login(int schoolNum, String password) {
        String url = "jdbc:mysql://localhost:3306/test?useTimezone=true&serverTimezone=GMT%2B8&useSSL=false&allowPublicKeyRetrieval=true";
        String username = "root";
        String pswd = "root";
        Connection conn = null;
        PreparedStatement pst = null;
        String sql = "select * from test where schoolNum=" + schoolNum  + " and password=" + "'" + password + "'";
        Result result = new Result();
        ResultSet rs = null;
        String name = null;

        try {
            Class.forName("com.mysql.jdbc.Driver");
            conn = DriverManager.getConnection(url, username, pswd);
            pst =conn.prepareStatement(sql);
            rs = pst.executeQuery();

            while(rs.next()) {

                name = rs.getString("name");
            }

            pst.close();
            conn.close();
            rs.close();
        }catch (Exception e){
            e.printStackTrace();
        }

        if(name != null){
            result.setStatus(10000);
            result.setInfo("success");
            return result;
        }
        result.setStatus(10001);
        result.setInfo("Error");//登陆密码错误
        return result;
    }
}

3.修改密码
package servlet;

import bean.Result;
import utils.AlterJDBC;

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("/alter")
public class AlterServlet extends HttpServlet {
    public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException {
        int schoolNum = Integer.parseInt(request.getParameter("schoolNum"));
        String password = request.getParameter("password");

        AlterJDBC alterJDBC = new AlterJDBC();
        Result result = alterJDBC.alter(schoolNum,password);
        response.getWriter().write(result.toString());
    }

    public void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException {
        this.doGet(request, response);
    }
}

JDBC
package utils;

import bean.Result;

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

public class AlterJDBC {
    public Result alter(int schoolNum, String password) {
        String url = "jdbc:mysql://localhost:3306/test?useTimezone=true&serverTimezone=GMT%2B8&useSSL=false&allowPublicKeyRetrieval=true";
        String username = "root";
        String pswd = "root";
        Connection conn = null;
        PreparedStatement pst = null;
        String sql = "update test set password='" + password + "' where schoolNum=" + schoolNum;
        Result result = new Result();
        ResultSet rs = null;
        String name = null;

        try {
            Class.forName("com.mysql.jdbc.Driver");
            conn = DriverManager.getConnection(url, username, pswd);
            pst =conn.prepareStatement(sql);
            pst.executeUpdate();

            pst.close();
            conn.close();
        }catch (Exception e){
            e.printStackTrace();
        }

        result.setStatus(10000);
        result.setInfo("success");
        return result;
    }
}

4.学号获取用户信息
package servlet;

import utils.InfoJDBC;

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("/myinfo")
public class InfoServlet extends HttpServlet {
    public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException {
        int schoolNum = Integer.parseInt(request.getParameter("schoolNum"));

        InfoJDBC infoJDBC = new InfoJDBC();
        String result = infoJDBC.info(schoolNum);
        response.getWriter().write(result);
    }

    public void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException {
        this.doGet(request, response);
    }
}

JDBC
package utils;

import bean.InfoResult;
import bean.Result;
import bean.User;

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

public class InfoJDBC {
    public String info(int schoolNum) {
        String url = "jdbc:mysql://localhost:3306/test?useTimezone=true&serverTimezone=GMT%2B8&useSSL=false&allowPublicKeyRetrieval=true";
        String username = "root";
        String pswd = "root";
        Connection conn = null;
        PreparedStatement pst = null;
        String sql = "select * from test where schoolNum=" + schoolNum;
        InfoResult infoResult = new InfoResult();
        Result result = new Result();
        User user = new User();
        ResultSet rs = null;

        try {
            Class.forName("com.mysql.jdbc.Driver");
            conn = DriverManager.getConnection(url, username, pswd);
            pst =conn.prepareStatement(sql);
            rs = pst.executeQuery();

            while(rs.next()) {
                user.setName(rs.getString("name"));
                user.setSchoolNum(rs.getInt("schoolNum"));
            }

            pst.close();
            conn.close();
            rs.close();
        }catch (Exception e){
            e.printStackTrace();
        }

        if(user.getName() != null){
            infoResult.setStatus(10000);
            infoResult.setInfo("success");
            infoResult.setUser(user);
            return infoResult.toString();
        }
        result.setStatus(10001);
        result.setInfo("No such user");//没有找到对应的用户
        return result.toString();
    }
}

5.注销账号
package servlet;

import bean.Result;
import utils.DropJDBC;

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("/drop")
public class DropServlet extends HttpServlet {
    public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException {
        int schoolNum = Integer.parseInt(request.getParameter("schoolNum"));
        String password = request.getParameter("password");

        DropJDBC dropJDBC = new DropJDBC();
        Result result = dropJDBC.drop(schoolNum);
        response.getWriter().write(result.toString());
    }

    public void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException {
        this.doGet(request, response);
    }
}

JDBC
package utils;

import bean.Result;

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

public class DropJDBC {
    public Result drop(int schoolNum) {
        String url = "jdbc:mysql://localhost:3306/test?useTimezone=true&serverTimezone=GMT%2B8&useSSL=false&allowPublicKeyRetrieval=true";
        String username = "root";
        String pswd = "root";
        Connection conn = null;
        PreparedStatement pst = null;
        String sql ="delete from test where schoolNum="+schoolNum;
        Result result = new Result();
        ResultSet rs = null;
        String name = null;

        try {
            Class.forName("com.mysql.jdbc.Driver");
            conn = DriverManager.getConnection(url, username, pswd);
            pst = conn.prepareStatement(sql);
            pst.executeUpdate();

            pst.close();
            conn.close();
        } catch (Exception e) {
            e.printStackTrace();
        }

        result.setStatus(10000);
        result.setInfo("success");
        return result;
    }
}


6.返回值设定
package bean;

public class InfoResult {
    private int status;
    private String info;
    private User user;

    public String toString(){
        String str;
        str = "{  'code': " + status + ", " +
                "'msg': '" + info + "' " + "," +
                "'data': " + user.toString() +
                "}";
        return str;
    }

    public int getStatus() {
        return status;
    }

    public void setStatus(int status) {
        this.status = status;
    }

    public String getInfo() {
        return info;
    }

    public void setInfo(String info) {
        this.info = info;
    }

    public User getUser() {
        return user;
    }

    public void setUser(User user) {
        this.user = user;
    }
}

package bean;

public class Result {
    private int status;
    private String info;

    public String toString(){
        String str;
        str = "{  'code': " + status + ", " +
                "'msg': '" + info + "' " +
                "}";
        return str;
    }

    public int getStatus() {
        return status;
    }

    public void setStatus(int status) {
        this.status = status;
    }

    public String getInfo() {
        return info;
    }

    public void setInfo(String info) {
        this.info = info;
    }
}

package bean;

public class User {
    private String name;
    private int schoolNum;

    public String toString(){
        String str;
        str = "{  'name': '" + name + "', " +
                "'schoolNum': " + schoolNum +
                "}";
        return str;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getSchoolNum() {
        return schoolNum;
    }

    public void setSchoolNum(int schoolNum) {
        this.schoolNum = schoolNum;
    }
}

MySQL数据库结构

在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值