javaweb极简登录注册增删改查

javaweb极简登录注册增删改查

【完整项目见我的资源】

首先项目结构如下:
1
2
3

SysUser:

package com.zhy.bean;

public class SysUser {
    private int id;
    private String loginId;
    private String loginPass;
    private String nickname;
    private String S_loginid;

    public SysUser(int id, String loginId, String loginPass, String nickname, String s_loginid) {
        this.id = id;
        this.loginId = loginId;
        this.loginPass = loginPass;
        this.nickname = nickname;
        S_loginid = s_loginid;
    }

    public String getS_loginid() {
        return S_loginid;
    }

    public void setS_loginid(String s_loginid) {
        S_loginid = s_loginid;
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getLoginId() {
        return loginId;
    }

    public void setLoginId(String loginId) {
        this.loginId = loginId;
    }

    public String getLoginPass() {
        return loginPass;
    }

    public void setLoginPass(String loginPass) {
        this.loginPass = loginPass;
    }

    public String getNickname() {
        return nickname;
    }

    public void setNickname(String nickname) {
        this.nickname = nickname;
    }
    public SysUser(){

    }

    public SysUser(int id, String loginId, String loginPass, String nickname) {
        this.id = id;
        this.loginId = loginId;
        this.loginPass = loginPass;
        this.nickname = nickname;
    }

    public SysUser(String loginId, String loginPass, String nickname) {
        this.loginId = loginId;
        this.loginPass = loginPass;
        this.nickname = nickname;
    }

    @Override
    public String toString() {
        return "SysUser{" +
                "id=" + id +
                ", loginId='" + loginId + '\'' +
                ", loginPass='" + loginPass + '\'' +
                ", nickname='" + nickname + '\'' +
                ", S_loginid='" + S_loginid + '\'' +
                '}';
    }
}

AddUserServlet

package com.zhy.controller;

import com.zhy.bean.SysUser;
import com.zhy.service.IUserService;
import com.zhy.service.impl.UserServiceImpl;
import jakarta.servlet.ServletException;
import jakarta.servlet.annotation.WebServlet;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;



import java.io.IOException;
@WebServlet("/addUser")
public class AddUserServlet extends HttpServlet {

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        req.setCharacterEncoding("UTF-8");
        String loginId = req.getParameter("loginId");
        String loginPass = req.getParameter("loginPass");
        String nickname = req.getParameter("nickname");
        SysUser sysUser = new SysUser(loginId,loginPass,nickname);
        IUserService userService = new UserServiceImpl();
        int row = userService.addUser(sysUser);
        if(row==0){
            req.setAttribute("index",row);
            req.getRequestDispatcher("jsp/user/register.jsp").forward(req,resp);
        }else {
            resp.sendRedirect("jsp/user/login.jsp");
        }
    }
}

DelUserServlet

package com.zhy.controller;

import com.zhy.service.IUserService;
import com.zhy.service.impl.UserServiceImpl;
import jakarta.servlet.*;
import jakarta.servlet.http.*;
import jakarta.servlet.annotation.*;

import java.io.IOException;

@WebServlet(name = "DelUserServlet", value = "/DelUserServlet")
public class DelUserServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        request.setCharacterEncoding("UTF-8");
        String loginId = request.getParameter("loginId");
        IUserService userService = new UserServiceImpl();
        int count=userService.delUser(loginId);
        if(count==1){
            response.sendRedirect("index");
        }else{
            System.out.println("删除失败");
        }
    }
}

IndexServlet

package com.zhy.controller;

import com.zhy.bean.SysUser;
import com.zhy.service.IUserService;
import com.zhy.service.impl.UserServiceImpl;
import jakarta.servlet.ServletException;
import jakarta.servlet.annotation.WebServlet;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import jakarta.servlet.http.HttpSession;

import java.io.IOException;
import java.util.List;

@WebServlet("/index")
public class IndexServlet extends HttpServlet {

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//        获取session对象  判断是否登录
        HttpSession session = req.getSession();
        SysUser user = (SysUser) session.getAttribute("sysUser");

        if(user==null){
            req.getRequestDispatcher("jsp/user/login.jsp").forward(req,resp);
        }else {
            IUserService userService = new UserServiceImpl();

            List<SysUser> list = userService.findAll(new SysUser());

            session.setAttribute("userList",list);
            req.getRequestDispatcher("jsp/user/index.jsp").forward(req,resp);
        }
    }
}

LoginServlet

package com.zhy.controller;

import com.zhy.bean.SysUser;
import com.zhy.service.IUserService;
import com.zhy.service.impl.UserServiceImpl;
import jakarta.servlet.ServletException;
import jakarta.servlet.annotation.WebServlet;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import jakarta.servlet.http.HttpSession;


import java.io.IOException;
@WebServlet("/login")
public class LoginServlet extends HttpServlet {

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        req.setCharacterEncoding("UTF-8");
        String loginId = req.getParameter("loginId");
        String loginPass = req.getParameter("loginPass");
        IUserService userService = new UserServiceImpl();
        SysUser sysUser = userService.login(loginId,loginPass);

        HttpSession session = req.getSession();

        if(sysUser!=null){
            session.setAttribute("sysUser",sysUser); //保存登录状态
            resp.sendRedirect("index");  //重定向 主页面 servlet
        }else {
            req.getRequestDispatcher("jsp/user/login.jsp").forward(req,resp);
        }
    }
}

UpdateUserServlet

package com.zhy.controller;

import com.zhy.bean.SysUser;
import com.zhy.service.IUserService;
import com.zhy.service.impl.UserServiceImpl;
import jakarta.servlet.*;
import jakarta.servlet.http.*;
import jakarta.servlet.annotation.*;

import java.io.IOException;

@WebServlet(name = "UpdateUserServlet", value = "/UpdateUserServlet")
public class UpdateUserServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

        Object id= request.getSession().getAttribute("id");
        IUserService userService=new UserServiceImpl();

         String loginId=request.getParameter("loginId");
         String loginPass=request.getParameter("loginPass");
         String nickname=request.getParameter("nickname");
         String S_loginId= (String) request.getSession().getAttribute("loginId"); //未更改的 loginId

         SysUser user=new SysUser((Integer) id,loginId,loginPass,nickname,S_loginId);
         int row=0;
         row=userService.updateUser(user);
        if(row==1){
            response.sendRedirect("index");
        }else{
            System.out.println("修改失败");
        }
    }
}

UserDaoImpl

package com.zhy.dao.impl;

import com.zhy.bean.SysUser;
import com.zhy.dao.IUserDao;
import com.zhy.db.Uitl;
import org.apache.commons.codec.digest.DigestUtils;

import java.util.ArrayList;
import java.util.List;

public class UserDaoImpl implements IUserDao {
    public int addUser(SysUser sysUser) {
        String sql = "insert into sys_user(login_id,login_pass,nickname)value(?,?,?)";
        Object[] obj = {sysUser.getLoginId(),sysUser.getLoginPass(),sysUser.getNickname()};
        Uitl uitl = new Uitl();
        return uitl.update(sql,obj);
    }

    public int updateUser(SysUser user){
        SysUser user1=findById(user.getS_loginid());//取出数据库修改前的用户数据
        StringBuffer sql=null;
        Object[] obj;
        if(user1.getLoginPass().equals(user.getLoginPass())){ //只要前端和数据库密码一致 不修改密码
             sql= new StringBuffer("update sys_user set  login_id=?,nickname=?  where id=?");
            obj=new Object[]{user.getLoginId(),user.getNickname(),user.getId()};
        }else{
             sql= new StringBuffer("update sys_user set  login_id=?,login_pass=?,nickname=?  where id=?");
             //新密码 加密
            user.setLoginPass(DigestUtils.md5Hex(user.getLoginPass()));
            obj= new Object[]{user.getLoginId(), user.getLoginPass() ,user.getNickname(),user.getId()};
        }
        Uitl<SysUser> uitl=new Uitl<SysUser>();
        return  uitl.update(sql.toString(),obj);
    }



    public SysUser findById(String id) {
        String sql="SELECT id, login_id AS loginId,login_pass AS loginPass,nickname FROM sys_user where login_id=?";
        Uitl<SysUser> uitl = new Uitl<SysUser>();
        List<SysUser> sysUsers =  uitl.select(sql, SysUser.class,id);
        if(sysUsers.size()>0){
            return sysUsers.get(0);
        }else {
            return null;
        }
    }

    public List<SysUser> findAll(SysUser sysUser) {
        StringBuffer sql= new StringBuffer("SELECT id ,login_id AS loginId,login_pass AS loginPass,nickname FROM sys_user where 1=1");
        List<Object> list = new ArrayList<Object>();

//        if(sysUser.getLoginId()!=null&&!"".equals(sysUser.getLoginId())){
//            sql.append( " and login_id=?");
//            list.add(sysUser.getLoginId());
//        }
//
//        if(sysUser.getNickname()!=null&&!"".equals(sysUser.getNickname())){
//            sql.append( " and nickname=?");
//            list.add(sysUser.getNickname());
//        }

        Uitl<SysUser> uitl = new Uitl<SysUser>();
        List<SysUser> sysUsers =  uitl.select(sql.toString(), SysUser.class,list.toArray());

        return sysUsers;
    }


    public int delUser(String loginId){
        String sql="delete from sys_user where login_id=?";
        Uitl<SysUser> uitl = new Uitl<SysUser>();
        int row=0;
        row = uitl.update(sql,loginId);
        return row;
    }


}

IUserDao

package com.zhy.dao;

import com.zhy.bean.SysUser;

import java.util.List;

public interface IUserDao {
    public int addUser(SysUser sysUser);
    public SysUser findById(String id);
    public List<SysUser> findAll(SysUser sysUser);
    public int delUser(String loginId);
    public int updateUser(SysUser user);
}

DbSource

package com.zhy.db;

import com.alibaba.druid.pool.DruidDataSourceFactory;

import javax.sql.DataSource;
import java.io.IOException;
import java.sql.*;
import java.util.Properties;

public class DbSource {
    private static DataSource dataSource;
    private static ThreadLocal<Connection> local=new ThreadLocal();
    private static Connection connection=null;
    private static Properties properties = new Properties();
    static {
        try {
            properties.load(DbSource.class.getClassLoader().getResourceAsStream("db.properties"));
            dataSource = DruidDataSourceFactory.createDataSource(properties);
        } catch (IOException e) {
            e.printStackTrace();
        } catch (Exception e) {
            e.printStackTrace();
        }

    }
    public static Connection getConnection(){

//        Connection conn = null;
//        try {
//            conn = dataSource.getConnection();
//        } catch (SQLException throwables) {
//            throwables.printStackTrace();
//        }
//        return conn;
        connection =local.get();
        if(connection==null){
            try {
                connection= dataSource.getConnection();
                local.set(connection);
            } catch (SQLException throwables) {
                throwables.printStackTrace();
            }
        }
        return connection;
    }

    public static void close(Connection conn, Statement st){

            try {
                if(st!=null){
                    st.close();
                }
                if(conn!=null){
                    conn.close();
                    local.remove();
                }
            } catch (SQLException throwables) {
                throwables.printStackTrace();
            }

    }

    public static void close(Connection conn, Statement st, ResultSet rs){

        try {
            if(rs!=null){
                rs.close();
            }
            if(st!=null){
                st.close();
            }
            if(conn!=null){
                conn.close();
                local.remove();
            }
        } catch (SQLException throwables) {
            throwables.printStackTrace();
        }

    }
}

Test

package com.zhy.db;

import com.zhy.bean.SysUser;

public class Test {
    public static void main(String[] args) {
        String sql="SELECT login_id AS loginId,login_pass AS loginPass,nickname FROM sys_user";
        Object[] objects = {};
        Uitl uitl = new Uitl();
        uitl.select(sql, SysUser.class,objects);
    }
}

Uitl

package com.zhy.db;

import com.zhy.bean.SysUser;

import java.lang.reflect.Field;
import java.sql.*;
import java.util.ArrayList;
import java.util.List;

public class Uitl<T> {
    private static  Connection connection=null;
    private static PreparedStatement st = null;
    private static ResultSet rs = null;

    public Uitl(){
        connection=DbSource.getConnection();
    }

    public int update(String sql,Object ... objects){
        int row = 0;

        try {
            st = connection.prepareStatement(sql);
            for (int i = 0;i<objects.length;i++){
                st.setObject(i+1,objects[i]);
            }
            row = st.executeUpdate();

        } catch (SQLException throwables) {
            throwables.printStackTrace();
        }finally {
            DbSource.close(connection,st);
        }
        return row;
    }


    /**
     *
     * @param sql
     * @param cls
     * @param objs
     * @return
     * SysUser.class
     */
    public List<T> select(String sql,Class<T> cls,Object ... objs){
        List<T> list = new ArrayList<T>();

        try {
            st = connection.prepareStatement(sql);
            for (int i = 0;i<objs.length;i++){
                st.setObject(i+1,objs[i]);
            }
            rs  = st.executeQuery();
            ResultSetMetaData data = rs.getMetaData();
            int count = data.getColumnCount();//返回查询的字段
            while (rs.next()){
                T t = cls.newInstance();
                for(int i=1;i<count+1;i++){
                    Object value = rs.getObject(i);
                    //SELECT login_id AS loginId,login_pass AS loginPass,nickname FROM sys_user
                    //data.getColumnLabel(i);loginId
                    //data.getColumnName(i);login_id
                    // Field field = cls.getDeclaredField("loginId");
                    Field field = cls.getDeclaredField(data.getColumnLabel(i));
                    field.setAccessible(true);//忽略权限
                    field.set(t,value);
                }
                list.add(t);
            }
        } catch (SQLException throwables) {
            throwables.printStackTrace();
        } catch (IllegalAccessException e) {
            e.printStackTrace();
        } catch (InstantiationException e) {
            e.printStackTrace();
        } catch (NoSuchFieldException e) {
            e.printStackTrace();
        } finally {
            DbSource.close(connection,st,rs);
        }
        return list;
    }
}

UserServiceImpl

package com.zhy.service.impl;

import com.zhy.bean.SysUser;
import com.zhy.dao.IUserDao;
import com.zhy.dao.impl.UserDaoImpl;
import com.zhy.service.IUserService;
import org.apache.commons.codec.digest.DigestUtils;

import java.util.List;

public class UserServiceImpl implements IUserService {
    private IUserDao userDao;

    public UserServiceImpl() {
        userDao = new UserDaoImpl();
    }

    public int addUser(SysUser sysUser) {
        String password = sysUser.getLoginPass();
        SysUser user =  userDao.findById(sysUser.getLoginId());
        if(user==null){
            sysUser.setLoginPass(DigestUtils.md5Hex(password));
            return userDao.addUser(sysUser);
        }else {
            return 0;
        }
    }

    public SysUser login(String loginId, String LoginPass) {
        SysUser user =  userDao.findById(loginId);
        if(user!=null){
            LoginPass =   DigestUtils.md5Hex(LoginPass);
            if(LoginPass.equals(user.getLoginPass())){
                return user;
            }
        }
        return null;
    }

    public List<SysUser> findAll(SysUser sysUser) {
        return userDao.findAll(sysUser);
    }

    public int delUser(String loginId) {
       return userDao.delUser(loginId);
    }

    public int updateUser(SysUser user) {
        return userDao.updateUser(user);
    }

}

IUserService

package com.zhy.service;

import com.zhy.bean.SysUser;

import java.util.List;

public interface IUserService {
    public int addUser(SysUser sysUser);
    public SysUser login(String loginId,String LoginPass);
    public List<SysUser> findAll(SysUser sysUser);
    public int delUser(String loginId);
    public int updateUser(SysUser user);
}

db.properties

driverClassName=com.mysql.cj.jdbc.Driver
url=jdbc:mysql://localhost/javaweb
username=root
password=zy52483616
initialSize=5
maxActive=10
maxWait=3000

test.sql

/*
SQLyog Community v13.1.6 (64 bit)
MySQL - 5.7.32 : Database - test
*********************************************************************
*/

/*!40101 SET NAMES utf8 */;

/*!40101 SET SQL_MODE=''*/;

/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
CREATE DATABASE /*!32312 IF NOT EXISTS*/`test` /*!40100 DEFAULT CHARACTER SET utf8 */;

USE `test`;

/*Table structure for table `category` */

DROP TABLE IF EXISTS `category`;

CREATE TABLE `category` (
  `id` int(32) NOT NULL AUTO_INCREMENT,
  `pid` int(32) DEFAULT NULL,
  `categoryname` varchar(64) DEFAULT NULL,
  `src` varchar(32) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8;

/*Data for the table `category` */

insert  into `category`(`id`,`pid`,`categoryname`,`src`) values 
(1,NULL,'食品饮料',NULL),
(2,1,'牛奶咖啡','/category/computer.jpg'),
(4,1,'膨化食品','/category/computer.jpg'),
(5,NULL,'数码产品',NULL),
(6,5,'电脑','/category/computer.jpg'),
(7,5,'手机','/category/computer.jpg');

/*Table structure for table `goods` */

DROP TABLE IF EXISTS `goods`;

CREATE TABLE `goods` (
  `id` int(32) NOT NULL AUTO_INCREMENT,
  `categoryid` int(32) NOT NULL COMMENT '分类',
  `userid` int(32) NOT NULL COMMENT '商家id',
  `goodname` varchar(128) NOT NULL COMMENT '商品',
  `price` float NOT NULL COMMENT '价格',
  `src` varchar(32) DEFAULT NULL COMMENT '图片',
  `xp` int(2) NOT NULL DEFAULT '1',
  `status` int(11) DEFAULT '1' COMMENT '1代表上架,0代表下架',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=24 DEFAULT CHARSET=utf8;

/*Data for the table `goods` */

insert  into `goods`(`id`,`categoryid`,`userid`,`goodname`,`price`,`src`,`xp`,`status`) values 
(1,6,1,'电脑',3000,'/category/computer.jpg',1,1),
(2,6,1,'电脑1',2000,'/category/computer.jpg',1,1),
(11,2,1,'test',123456,'/1652674753043computer.jpg',1,1),
(12,6,1,'11',1111,'/category/computer.jpg',1,1),
(13,6,1,'11',11,'/category/computer.jpg',1,1),
(14,6,1,'1111',1111,'/1652674753043computer.jpg',1,1),
(15,6,1,'111',111,'/1652674753043computer.jpg',1,1),
(16,6,1,'111',111,'/1652674753043computer.jpg',1,1),
(17,6,1,'111',1111,'/1652674753043computer.jpg',1,1),
(18,6,1,'11',111,'/1652674753043computer.jpg',1,1),
(19,6,1,'11',11,'/1652674753043computer.jpg',1,1),
(20,6,1,'111',111,'/1652674753043computer.jpg',1,1),
(21,6,1,'上三',111,'/1652674753043computer.jpg',1,1),
(22,2,1,'test',123456,'/1665574843212img1.png',1,1),
(23,2,1,'test',123456,'/1665575009582img2.png',1,1);

/*Table structure for table `goods_info` */

DROP TABLE IF EXISTS `goods_info`;

CREATE TABLE `goods_info` (
  `id` int(32) NOT NULL AUTO_INCREMENT,
  `goodId` int(32) NOT NULL,
  `src` varchar(32) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8;

/*Data for the table `goods_info` */

insert  into `goods_info`(`id`,`goodId`,`src`) values 
(1,1,'/goods/computer.jpg'),
(2,1,'/goods/c.jpg'),
(3,1,'/goods/b.jpg'),
(4,1,'/goods/d.jpg');

/*Table structure for table `sys_menu` */

DROP TABLE IF EXISTS `sys_menu`;

CREATE TABLE `sys_menu` (
  `ID` int(36) NOT NULL AUTO_INCREMENT COMMENT '编号',
  `PID` int(36) DEFAULT NULL COMMENT '上级菜单',
  `TEXT` varchar(100) NOT NULL COMMENT '菜单名称',
  `ICONCLS` varchar(50) DEFAULT NULL COMMENT '菜单图标',
  `func` varchar(50) DEFAULT NULL COMMENT '// 0为菜单1为功能点',
  `SRC` varchar(200) DEFAULT NULL COMMENT '菜单地址',
  `SEQ` int(20) NOT NULL COMMENT '排序',
  `DESCRIPTION` varchar(64) DEFAULT NULL COMMENT '描述',
  `RIGHTID` bigint(20) DEFAULT NULL COMMENT '维护id',
  `recordStatus` char(1) DEFAULT '0' COMMENT '删除状态',
  `createUserId` bigint(20) DEFAULT NULL COMMENT '创建人id',
  `createTime` datetime DEFAULT NULL COMMENT '创建时间',
  `modifyUserId` bigint(20) DEFAULT NULL COMMENT '最近修改人id',
  `modifyTime` datetime DEFAULT NULL COMMENT '最近修改时间',
  `state` varchar(255) DEFAULT NULL COMMENT '状态',
  PRIMARY KEY (`ID`),
  KEY `FKA50D27B1E8FAE8EC` (`PID`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8 COMMENT='菜单';

/*Data for the table `sys_menu` */

insert  into `sys_menu`(`ID`,`PID`,`TEXT`,`ICONCLS`,`func`,`SRC`,`SEQ`,`DESCRIPTION`,`RIGHTID`,`recordStatus`,`createUserId`,`createTime`,`modifyUserId`,`modifyTime`,`state`) values 
(2,0,'电商管理',NULL,NULL,NULL,1,NULL,NULL,'0',NULL,NULL,NULL,NULL,NULL),
(3,2,'用户管理',NULL,NULL,'/user/toUserList',1,NULL,NULL,'0',NULL,NULL,NULL,NULL,NULL),
(4,2,'商品管理',NULL,NULL,'/goods/addGoods',2,NULL,NULL,'0',NULL,NULL,NULL,NULL,NULL);

/*Table structure for table `sys_user` */

DROP TABLE IF EXISTS `sys_user`;

CREATE TABLE `sys_user` (
  `id` int(20) NOT NULL AUTO_INCREMENT,
  `login_id` varchar(32) NOT NULL,
  `login_pass` varchar(32) NOT NULL,
  `nickname` varchar(32) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8mb4;

/*Data for the table `sys_user` */

insert  into `sys_user`(`id`,`login_id`,`login_pass`,`nickname`) values 
(5,'test','e10adc3949ba59abbe56e057f20f883e','王二麻子'),
(6,'admin','e10adc3949ba59abbe56e057f20f883e','管理员');

/*Table structure for table `user` */

DROP TABLE IF EXISTS `user`;

CREATE TABLE `user` (
  `id` int(32) NOT NULL AUTO_INCREMENT COMMENT '主键',
  `login_id` varchar(32) CHARACTER SET latin1 NOT NULL COMMENT '登录账号',
  `login_pass` varchar(32) CHARACTER SET latin1 DEFAULT NULL COMMENT '登录密码',
  `nickname` varchar(32) CHARACTER SET latin1 DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb4;

/*Data for the table `user` */

insert  into `user`(`id`,`login_id`,`login_pass`,`nickname`) values 
(1,'test','e10adc3949ba59abbe56e057f20f883e','zhansan'),
(2,'test1','e10adc3949ba59abbe56e057f20f883e','lisi');

/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;

show databases ;
use javaweb;
show tables ;
select * from sys_user;

index.jsp

<%@ page import="java.util.List" %>
<%@ page import="com.zhy.bean.SysUser" %><%--
  Created by IntelliJ IDEA.
  User: zhy
  Date: 2022-11-02
  Time: 11:45
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="C" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
<head>
    <title>Title</title>
    <link rel="stylesheet" type="text/css" href="<%=config.getServletContext().getContextPath()%>/jsp/bootstrap-3.4.1-dist/bootstrap-3.4.1-dist/css/bootstrap.min.css">
    <script src="<%=config.getServletContext().getContextPath()%>/jsp/bootstrap-3.4.1-dist/jquery.js"></script>
    <script src="<%=config.getServletContext().getContextPath()%>/jsp/bootstrap-3.4.1-dist/bootstrap-3.4.1-dist/js/bootstrap.min.js"></script>

</head>
<body>

    <table class="table">
        <tr>
            <th>账号</th>
            <th>昵称</th>
            <th>操作</th>
        </tr>

        <c:forEach items="${sessionScope.userList}" var="user">
            <tr>
                <td> ${user.loginId}</td>
                <td> ${user.nickname}</td>
                <td><a href="${pageContext.request.contextPath}/DelUserServlet?loginId=${user.loginId}" class="btn-default">删除</a>
                    <a href="${pageContext.request.contextPath}/jsp/user/update.jsp?loginId=${user.loginId}&loginPass=${user.loginPass}&nickname=${user.nickname}&id=${user.id}" class="btn-default">修改</a></td>
            </tr>
        </c:forEach>
    </table>
</body>
</html>

login.jsp

<%--
  Created by IntelliJ IDEA.
  User: zhy
  Date: 2022-11-02
  Time: 10:22
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
    <link rel="stylesheet" type="text/css" href="<%=config.getServletContext().getContextPath()%>/jsp/bootstrap-3.4.1-dist/bootstrap-3.4.1-dist/css/bootstrap.min.css">
    <script src="<%=config.getServletContext().getContextPath()%>/jsp/bootstrap-3.4.1-dist/jquery.js"></script>
    <script src="<%=config.getServletContext().getContextPath()%>/jsp/bootstrap-3.4.1-dist/bootstrap-3.4.1-dist/js/bootstrap.min.js"></script>
</head>
<body>
<div class="container">
    <form class="form-horizontal" action="${pageContext.request.contextPath}/login" method="post">
        <div class="form-group">
            <label for="loginId" class="col-sm-2 control-label">账号</label>
            <div class="col-sm-10">
                <input type="text" class="form-control" id="loginId"  placeholder="账号" name="loginId">
            </div>
        </div>
        <div class="form-group">
            <label for="loginPass" class="col-sm-2 control-label">密码</label>
            <div class="col-sm-10">
                <input type="password" class="form-control" id="loginPass" name="loginPass" placeholder="密码">
            </div>
        </div>

        <div class="form-group">
            <div class="col-sm-offset-2 col-sm-10">
                <button type="submit" class="btn btn-default">登录</button>
                <a href="${pageContext.request.contextPath}/jsp/user/register.jsp">注册</a>
            </div>
        </div>
    </form>
</div>
</body>
</html>

register.jsp

<%--
  Created by IntelliJ IDEA.
  User: zhy
  Date: 2022-11-01
  Time: 8:32
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
    <link rel="stylesheet" type="text/css" href="<%=config.getServletContext().getContextPath()%>/jsp/bootstrap-3.4.1-dist/bootstrap-3.4.1-dist/css/bootstrap.min.css">
    <script src="<%=config.getServletContext().getContextPath()%>/jsp/bootstrap-3.4.1-dist/bootstrap-3.4.1-dist/js/jquery.js"></script>
    <script src="<%=config.getServletContext().getContextPath()%>/jsp/bootstrap-3.4.1-dist/bootstrap-3.4.1-dist/js/bootstrap.min.js"></script>

</head>
<body>

<%--<%--%>
<%--    System.out.println("执行");--%>
<%--    if(request.getAttribute("index")!=null){--%>
<%--        int i = (int) request.getAttribute("index");--%>
<%--        if(i==0){--%>
<%--%>--%>
<%--<script>--%>
<%--    alert("注册失败")--%>
<%--</script>--%>
<%--<%--%>
<%--    }--%>
<%--    }--%>
<%--%>--%>

<div class="container">
    <form class="form-horizontal" action="<%=config.getServletContext().getContextPath()%>/addUser" method="post">
        <div class="form-group">
            <label for="loginId" class="col-sm-2 control-label">账号</label>
            <div class="col-sm-10">
                <input type="text" class="form-control" id="loginId" placeholder="账号" name="loginId">
            </div>
        </div>
        <div class="form-group">
            <label for="loginPass" class="col-sm-2 control-label">密码</label>
            <div class="col-sm-10">
                <input type="password" class="form-control" id="loginPass" name="loginPass" placeholder="密码">
            </div>
        </div>
        <div class="form-group">
            <label for="nickname" class="col-sm-2 control-label">昵称</label>
            <div class="col-sm-10">
                <input type="text" class="form-control" id="nickname" placeholder="账号" name="nickname">
            </div>
        </div>
        <div class="form-group">
            <div class="col-sm-offset-2 col-sm-10">
                <button type="submit" class="btn btn-default">注册</button>

            </div>
        </div>
    </form>
</div>
</body>
</html>

update.jsp

<%--
  Created by IntelliJ IDEA.
  User: zhy
  Date: 2022-11-01
  Time: 8:32
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
    <link rel="stylesheet" type="text/css" href="<%=config.getServletContext().getContextPath()%>/jsp/bootstrap-3.4.1-dist/bootstrap-3.4.1-dist/css/bootstrap.min.css">
    <script src="<%=config.getServletContext().getContextPath()%>/jsp/bootstrap-3.4.1-dist/bootstrap-3.4.1-dist/js/jquery.js"></script>
    <script src="<%=config.getServletContext().getContextPath()%>/jsp/bootstrap-3.4.1-dist/bootstrap-3.4.1-dist/js/bootstrap.min.js"></script>

</head>
<body>

<%
    Integer id= Integer.valueOf((request.getParameter("id")));
    String loginId=request.getParameter("loginId");

    request.getSession().setAttribute("id",id);
    request.getSession().setAttribute("loginId",loginId);
%>

<div class="container">
    <form class="form-horizontal" action="<%=config.getServletContext().getContextPath()%>/UpdateUserServlet" method="get">
        <div class="form-group">
            <label for="loginId" class="col-sm-2 control-label">账号</label>
            <div class="col-sm-10">
                <input type="text" class="form-control" id="loginId"  name="loginId" value="<%=request.getParameter("loginId")%>">
            </div>
        </div>

        <div class="form-group">
            <label for="loginPass" class="col-sm-2 control-label">密码</label>
            <div class="col-sm-10">
                <input type="password" class="form-control" id="loginPass" name="loginPass"  value="<%=request.getParameter("loginPass")%>">
            </div>
        </div>

        <div class="form-group">
            <label for="nickname" class="col-sm-2 control-label">昵称</label>
            <div class="col-sm-10">
                <input type="text" class="form-control" id="nickname"  name="nickname" value="<%=request.getParameter("nickname")%>">
            </div>
        </div>
        <div class="form-group">
            <div class="col-sm-offset-2 col-sm-10">
                <button type="submit" class="btn btn-default">保存修改</button>
            </div>
        </div>
    </form>
</div>
</body>
</html>

结果如下:
1
2
3
4

  • 9
    点赞
  • 72
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
前端页面实现登录、注册、增、删、改、查操作需要使用一些基础的技术和工具。可以使用HTML、CSS、JavaScript等技术进行前端页面的编写,同时需要用到HTTP协议进行链接和数据传输,以及Ajax技术进行异步数据交互。 对于登录功能,需要使用表单提交和AJAX异步请求技术,将表单数据和用户名、密码等信息传递到服务器端进行身份认证,根据认证状态返回相应的提示信息或跳转到指定的页面。 对于注册功能,需要使用AJAX异步请求技术,将注册表单中的数据发送到服务器端进行验证和存储。在服务器端进行身份认证和数据存储完成后,根据注册状态返回提示信息或跳转到指定的页面。 对于增、删、改、查操作,可以使用AJAX异步请求技术进行实现。当需要增加新数据时,需要将新增的数据发送到服务器端进行存储,并根据存储结果返回相应的提示信息;当需要删除数据时,需要将需要删除的数据ID发送到服务器端进行删除,并根据删除结果返回相应的提示信息;当需要修改数据时,需要将需要修改的数据ID和修改后的数据发送到服务器端进行更新,并根据更新结果返回相应的提示信息;当需要查询数据时,需要将需要查询的条件发送到服务器端进行查询,并将查询结果展示在前端页面上。 总之,实现前端页面登录、注册、增、删、改、查操作需要结合多种技术和工具进行开发,需要熟练掌握HTML、CSS、JavaScript、HTTP协议、AJAX异步请求等技术,并进行合理的设计和开发。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

风口浪尖上的鼠标

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值