javaweb极简登录注册增删改查
【完整项目见我的资源】
首先项目结构如下:
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>
结果如下: