JavaWeb用户信息管理系统(附全部代码)
这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Mar
·
JavaWeb用户信息管理系统(附全部代码)
主要实现基本用户信息的增删改功能,用户的信息显示在主页面。
- 我的文件目录
lib中的包必须全部导入
1、JavaEE项目的三层框架
分层的目的是为了解耦。降低代码之间的耦合度,方便项目后期的维护和升级。
2 、本项目的目录文件(java文件)
JavaBean类(com.example.bean) | Web层(com.example.servlet) | Dao持久层(com.example.dao)(com.example.dao.impl) | service层(com.example.sercice)(com.example.sercice.impl) | Utils类(com.example.utils) |
---|---|---|---|---|
User | AddServlet LoginServlet | BaseDao | UserService | JdbcUtils |
DeleteServlet UpdateServlet | UserDao | UserServiceImpl | ||
UserServlet OneUserServlet | UserDaoImpl |
test测试类放在idea生成的test包下。
3、创建用户资源的数据表
数据表根据自己的需求自己创建,下面是该项目用到的数据库字段。
- id 用户编号 int
- username 用户名 varchar
- password 密码 varchar
- name 真实姓名 varchar
- email 邮箱 varchar
- telephone 手机号 varchar
3.1、编写数据库表对应的JavaBean对象
package com.example.bean;
public class User {
private Integer id;
private String username;
private String password;
private String name;
private String email;
private String telephone;
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 getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getTelephone() {
return telephone;
}
public void setTelephone(String telephone) {
this.telephone = telephone;
}
public User(Integer id, String userName, String password, String name, String email, String telephone) {
this.id = id;
this.username = userName;
this.password = password;
this.name = name;
this.email = email;
this.telephone = telephone;
}
public User() {
}
@Override
public String toString() {
return "User{" +
"id=" + id +
", useName='" + username + '\'' +
", password='" + password + '\'' +
", name='" + name + '\'' +
", email='" + email + '\'' +
", telephone='" + telephone + '\'' +
'}';
}
}
在如下包下面建立 jdbc.properties设置配置文件
//具体内容
username=root
password=123abc
url=jdbc:mysql://localhost:3306/*** //***为你的数据表所在数据库名称
driverClassName=com.mysql.jdbc.Driver
initialSize=5
maxActive=10 //最多同时获取连接的数量
4、编写JdbcUtils工具类(实现代码的重复利用)
- 读取 jdbc.properties 属性配置文件
- 从流中加载数据
- 创建数据库连接池
package com.example.utils;
import com.alibaba.druid.pool.DruidDataSource;
import com.alibaba.druid.pool.DruidDataSourceFactory;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.SQLException;
import java.util.Properties;
/**
* @program: ManageSystem
* @description: 管理数据库连接池的工具类
* @author: Mr.Zeng
* @create: 2021-05-26 12:13
**/
public class JdbcUtils {
private static DruidDataSource dataSource;
static {
try {
Properties properties = new Properties();
// 读取jdbc.properties配置文件
InputStream inputStream = JdbcUtils.class.getClassLoader().getResourceAsStream("jdbc.properties");
//从流中加载数据
properties.load(inputStream);
//创建 数据库连接 池
dataSource = (DruidDataSource) DruidDataSourceFactory.createDataSource(properties);
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* @Description: 获取数据库的连接 返回null则连接失败
* @Param: []
* @return: java.sql.Connection
* @Author: Mr.Zeng
* @Date: 2021/5/26
*/
public static Connection getConnection() {
Connection connection = null;
try {
connection = dataSource.getConnection();
} catch (SQLException throwables) {
throwables.printStackTrace();
}
return connection;
}
/**
* @Description: 放回数据库连接池
* @Param: [connection]
* @return: void
* @Author: Mr.Zeng
* @Date: 2021/5/26
*/
public static void close(Connection connection){
if (connection != null){
try {
connection.close();
} catch (SQLException throwables) {
throwables.printStackTrace();
}
}
}
}
值得注意的是,在外面获取一个连接后,最后记得关闭连接放回连接池,在这里可以在test包下建立一个测试JdbcUtils的测试类。
Tips:
可能出错的原因:
-
数据库是否对应
-
没有导入相应的jar包 (druid) 可以到网页搜索下载,非常方便。
5、编写Dao持久层(用来和数据库交互)
5.1、导入DBUtils 的 jar包
commons-dbutils-1.7.jar ,我这里用的是1.7的版本。
5.2、编写BaseDao
package com.example.dao;
import com.example.utils.JdbcUtils;
import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.handlers.BeanHandler;
import org.apache.commons.dbutils.handlers.BeanListHandler;
import java.sql.Connection;
import java.sql.SQLException;
import java.util.List;
/**
* @program: ManageSystem
* @description: 使用DBUtils操作数据库
* @author: Mr.Zeng
* @create: 2021-05-26 12:59
**/
public abstract class BaseDao {
//使用DBUtils操作数据库
private QueryRunner queryRunner = new QueryRunner();
/**
* @Description: update()方法用来执行:Insert\Update\Delete语句
* @Param: []
* @return: int 返回-1表示执行失败,返回其他表示影响的行数
* @Author: Mr.Zeng
* @Date: 2021/5/26
*/
public int update(String sql, Object...args){
Connection connection = JdbcUtils.getConnection();
try {
return queryRunner.update(connection,sql,args);
} catch (SQLException throwables) {
throwables.printStackTrace();
}finally {
JdbcUtils.close(connection);
}
return -1;
}
/**
* @Description: 查询返回一个javaBean的sql语句
* @Param: [type 返回的对象类型, sql 执行的sql语句, args sql对应的参数值]
* @return: T 返回类型的泛型
* @Author: Mr.Zeng
* @Date: 2021/5/26
*/
public <T> T queryForOne(Class<T> type,String sql, Object...args){
Connection connection = JdbcUtils.getConnection();
try {
return queryRunner.query(connection,sql,new BeanHandler<T>(type),args);
} catch (SQLException throwables) {
throwables.printStackTrace();
}finally {
JdbcUtils.close(connection);
}
return null;
}
/**
* @Description: 查询返回多个javaBean的sql语句
* @Param: [type 返回的对象类型, sql 执行的sql语句, args sql对应的参数值]
* @return: T 返回类型的泛型
* @Author: Mr.Zeng
* @Date: 2021/5/26
*/
public <T>List<T> queryForList(Class<T> type,String sql, Object...args){
Connection connection = JdbcUtils.getConnection();
try {
return queryRunner.query(connection,sql,new BeanListHandler<T>(type),args);
} catch (SQLException throwables) {
throwables.printStackTrace();
}finally {
JdbcUtils.close(connection);
}
return null;
}
}
5.3、编写UserDao
package com.example.dao;
import com.example.bean.User;
import java.util.List;
public interface UserDao {
/**
* @Description: 根据用户名和密码查询用户信息,增删查改,返回全部用户的功能
* @Param: [username 用户名 , password 密码]
* @return: com.example.bean.User
* @Author: Mr.Zeng
* @Date: 2021/5/26
*/
User queryUserByUsernameAndPassword(String username, String password);
int add(User user);
int deleteById(Integer id);
int update(User user);
User queryById(Integer id);
List<User> queryUsers();
}
5.4、UserDao接口实现类UserDaoImpl
package com.example.dao.impl;
import com.example.bean.User;
import com.example.dao.BaseDao;
import com.example.dao.UserDao;
import java.util.List;
/**
* @program: ManageSystem
* @description:
* @author: Mr.Zeng
* @create: 2021-05-26 13:19
**/
public class UserDaoImpl extends BaseDao implements UserDao {
@Override
public User queryUserByUsernameAndPassword(String username, String password) {
String sql = "select * from user where username = ? and password = ?";
return queryForOne(User.class, sql, username, password);
}
@Override
public int add(User user) {
String sql = "insert into user(username,password,name,email,telephone) values (?,?,?,?,?)";
return update(sql, user.getUserName(), user.getPassword(), user.getName(),
user.getEmail(), user.getTelephone());
}
@Override
public int deleteById(Integer id) {
String sql = "delete from user where id = ?";
return update(sql, id);
}
@Override
public int update(User user) {
String sql = "update user set username=?,password=?,name=?,email=?,telephone=? where id = ?";
return update(sql, user.getUserName(), user.getPassword(), user.getName(),
user.getEmail(), user.getTelephone(), user.getId());
}
@Override
public User queryById(Integer id) {
String sql = "select * from user where id = ?";
return queryForOne(User.class, sql, id);
}
@Override
public List<User> queryUsers() {
String sql = "select * from user";
return queryForList(User.class, sql);
}
}
7、编写Service(处理业务逻辑,调用Dao持久层操作数据库)
7.1、UserService接口
package com.example.service.impl;
import com.example.bean.User;
import java.util.List;
public interface UserService {
User login(User user);
void add(User user);
void deleteById(Integer id);
void update(User user);
User queryById(Integer id);
List<User> queryUsers();
}
7.2、UserService接口实现类UserServiceImpl
package com.example.service;
import com.example.bean.User;
import com.example.dao.UserDao;
import com.example.dao.impl.UserDaoImpl;
import com.example.service.impl.UserService;
import java.util.List;
/**
* @program: ManageSystem
* @description: 处理登入业务
* @author: Mr.Zeng
* @create: 2021-05-26 14:31
**/
public class UserServiceImpl implements UserService {
private final UserDao userDao = new UserDaoImpl();
public User login(User user){
return userDao.queryUserByUsernameAndPassword(user.getUserName(), user.getPassword());
}
@Override
public void add(User user) {
userDao.add(user);
}
@Override
public void deleteById(Integer id) {
userDao.deleteById(id);
}
@Override
public void update(User user) {
userDao.update(user);
}
@Override
public User queryById(Integer id) {
return userDao.queryById(id);
}
@Override
public List<User> queryUsers() {
return userDao.queryUsers();
}
}
8、处理登录业务
8.1、业务逻辑(下同)
8.2、登录页面Login.jsp
<%--
Created by IntelliJ IDEA.
User: zengxiong
Date: 2021/5/26
Time: 0:18
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>用户登入页面</title>
<link type="text/css" rel="stylesheet" href="Login_css.css">
</head>
<body>
<div style="width:400px; height:400px;">
<img src="2.jpg" width="394" height="444" style="margin-left:166px; margin-top:104px;" alt="图片无法显示">
</div>
<div id="login">
<h1>用户管理系统</h1>
<form action="LoginServlet" method="post">
<input type="hidden" name="action" value="login">
<label>
<input type="text" required="required" placeholder="用户名" name="username">
</label>
<label>
<input type="password" required="required" placeholder="密码" name="password">
</label>
<button class="but" type="submit">登录</button>
</form>
</div>
</body>
</html>
8.3、Login_css.css(登录页面的美化文件)
html{
width: 100%;
height: 100%;
overflow: hidden;
}
body{
width: 100%;
height: 100%;
font-family: 'Open Sans',sans-serif;
margin: 0;
background-image:url("img.png");
}
#login{
position: absolute;
top: 50%;
left:50%;
margin: -150px 0 0 147px;
width: 300px;
height: 300px;
}
#login h1{
color: #fff;
text-shadow:0 0 10px;
letter-spacing: 1px;
text-align: center;
}
h1{
font-size: 2em;
margin: 0.67em 0;
}
input{
width: 300px;
height: 40px;
margin-bottom: 10px;
outline: none;
padding: 10px;
font-size: 13px;
color: #fff;
text-shadow:1px 1px 1px;
border-top: 1px solid #312E3D;
border-left: 1px solid #312E3D;
border-right: 1px solid #312E3D;
border-bottom: 1px solid #56536A;
border-radius: 4px;
background-color: #2D2D3F;
}
.but{
width: 300px;
min-height: 20px;
display: block;
background-color: #4a77d4;
border: 1px solid #3762bc;
color: #fff;
padding: 9px 14px;
font-size: 15px;
line-height: normal;
border-radius: 5px;
margin: 0;
}
8.4、编写LoginServlet
package com.example.web;
import com.example.bean.User;
import com.example.service.UserServiceImpl;
import com.example.service.impl.UserService;
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;
/**
* @program: ManageSystem
* @description: 用户登入功能实现
* @author: Mr.Zeng
* @create: 2021-05-26 14:47
**/
@WebServlet(urlPatterns = "/LoginServlet")
public class LoginServlet extends HttpServlet {
private final UserService userService = new UserServiceImpl();
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doPost(req, resp);
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//获取请求参数
String username = req.getParameter("username");
String password = req.getParameter("password");
//调用UserService.login()登录处理业务
User loginUser = userService.login(new User(0, username, password, null, null, null));
if (loginUser == null){
//跳回到Login页面
req.getRequestDispatcher("/Login.jsp").forward(req, resp);
}else {
//跳转到UserServlet
req.getRequestDispatcher("/UserServlet").forward(req, resp);
}
}
}
8.5、注册servlet
- 在这里我是直接在类里面注册的:
- @WebServlet(urlPatterns = “/LoginServlet”),你也可以在Web.xml里面进行注册
- 一般在一个程序里面只有一个Servlet(利用反射优化),这里我将Servlet全部分开,便于理解但会造成代码冗余,建议自己学习并实现代码优化
8.6、登入成功页面(显示所有用户)
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%--
Created by IntelliJ IDEA.
User: zengxiong
Date: 2021/5/26
Time: 15:07
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312"/>
<title>用户管理系统</title>
<link type="text/css" rel="stylesheet" href="login_success_css.css">
<script>
function test1(){
// document.("表单的name值").action
// document.("表单的name值").submit
document.submitted.action="add_list.jsp";
document.submitted.submit();
}
function test2() {
document.submitted.action = "DeleteServlet";
document.submitted.submit();
}
</script>
<style>
button.asd{
margin-right: -818px;
background-color: #4a77d4;
}
input.abc{
margin-right: 20px;
background-color: #89d289;
}
input.def{
background-color: #d91e1e;
width: 42px;
height: 25px;
text-align: center;
}
</style>
</head>
<body>
<form name="submitted" method="post">
<table id="mytable" cellspacing="0" summary="The technical specifications of the Apple PowerMac G5 series">
<caption></caption>
<tr>
<th colspan="7"><button class="asd" οnclick="test1()">添加用户</button></th>
</tr>
<tr>
<th scope="col" abbr="Configurations">编号</th>
<th scope="col" abbr="Dual 1.8">用户名</th>
<th scope="col" abbr="Dual 2">密码</th>
<th scope="col" abbr="Dual 2">姓名</th>
<th scope="col" abbr="Dual 2">邮箱</th>
<th scope="col" abbr="Dual 2">电话</th>
<th scope="col" abbr="Dual 2.5">操作</th>
</tr>
<c:forEach items="${requestScope.user}" var="user">
<tr>
<th scope="row" abbr="Model" class="spec" name="id">${user.id}</th>
<td>${user.userName}</td>
<td>${user.password}</td>
<td>${user.name}</td>
<td>${user.email}</td>
<td>${user.telephone}</td>
<td><label>
<%--formaction直接设置行为,并且设置提交的数据值--%>
<input formaction="OneUserServlet?id=${user.id}" type="submit" class="abc" value="修改">
</label>
<label>
<%--formaction直接设置行为,并且设置提交的数据值--%>
<input formaction="DeleteServlet?id=${user.id}" type="submit" class="def" value="删除">
</label></td>
</tr>
</c:forEach>
</table>
</form>
</body>
</html>
8.7、登入成功页面的login_success_css.css文件
body {
font-family: 'Open Sans', sans-serif;
margin: 0;
background-image: url("img.png");
width: 100%;
height: 100%;
border: 1px solid red;
text-align: center;
}
a {
color: #c75f3e;
}
#mytable {
width: 1000px;
padding: 0;
border: 1px solid green;
margin: 100px auto 0;
height: 300px;
}
caption {
padding: 0 0 5px 0;
width: 700px;
font: italic 11px "Trebuchet MS", Verdana, Arial, Helvetica, sans-serif;
text-align: right;
}
th {
font: bold 26px "Trebuchet MS", Verdana, Arial, Helvetica, sans-serif;
color: #4f6b72;
border-right: 1px solid #C1DAD7;
border-bottom: 1px solid #C1DAD7;
border-top: 1px solid #C1DAD7;
letter-spacing: 2px;
text-transform: uppercase;
padding: 6px 6px 6px 12px;
background: #CAE8EA no-repeat;
text-align: center;
}
td {
border-right: 1px solid #C1DAD7;
border-bottom: 1px solid #C1DAD7;
background: #fff;
font-size: 11px;
padding: 6px 6px 6px 12px;
color: #4f6b72;
text-align: center;
}
td.alt {
background: #F5FAFA;
color: #797268;
}
th.spec {
border-left: 1px solid #C1DAD7;
border-top: 0;
background: #fff no-repeat;
font: bold 10px "Trebuchet MS", Verdana, Arial, Helvetica, sans-serif;
}
th.specalt {
border-left: 1px solid #C1DAD7;
border-top: 0;
background: #f5fafa no-repeat;
font: bold 10px "Trebuchet MS", Verdana, Arial, Helvetica, sans-serif;
color: #797268;
}
html > body td {
font-size: 11px;
}
8.8、登入成功后页面数据请求(下同)
8.9、编写Userservlet
package com.example.web;
import com.example.bean.User;
import com.example.service.UserService_1;
import com.example.service.impl.UserService_1Impl;
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;
import java.util.List;
/**
* @program: ManageResourceSystem
* @description: 处理业务
* @author: Mr.Zeng
* @create: 2021-05-26 23:05
**/
@WebServlet(urlPatterns = "/UserServlet")
public class UserServlet extends HttpServlet {
UserService_1 userService1 = new UserService_1Impl();
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doPost(req, resp);
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//请求数据的中文乱码问题
req.setCharacterEncoding("UTF-8");//客户端网页我们控制为UTF-8
//通过UserService查询全部信息
List<User> users = userService1.queryUsers();
//把全部信息保存到Request域中
req.setAttribute("user",users);
//请求转发到LoginSuccess.jsp
req.getRequestDispatcher("/LoginSuccess.jsp").forward(req, resp);
}
}
9、添加用户
9.1、编写AddServlet
package com.example.web;
import com.example.bean.User;
import com.example.service.UserService_1;
import com.example.service.impl.UserService_1Impl;
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;
/**
* @program: ManageResourceSystem
* @description: 添加数据的处理业务
* @author: Mr.Zeng
* @create: 2021-05-27 08:01
**/
@WebServlet(urlPatterns = "/AddServlet")
public class AddServlet extends HttpServlet {
UserService_1 userService1 = new UserService_1Impl();
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//获取请求参数
String username = req.getParameter("username");
String password = req.getParameter("password");
String name = req.getParameter("name");
String email = req.getParameter("email");
String telephone = req.getParameter("telephone");
//调用add保存用户
userService1.add(new User(null, username, password, name, email, telephone));
//跳转到用户列表页面,此方法有表单重复提交
//req.getRequestDispatcher("/UserServlet").forward(req, resp);
//无重复添加
resp.sendRedirect("UserServlet");
}
}
9.2、添加用户页面
<%--
Created by IntelliJ IDEA.
User: zengxiong
Date: 2021/5/27
Time: 8:04
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>添加用户</title>
<link type="text/css" rel="stylesheet" href="login_success_css.css">
<style>
form {
margin-top: 200px;
margin-left: 300px;
}
.but{
width: 200px;
min-height: 20px;
display: block;
background-color: #4a77d4;
border: 1px solid #3762bc;
color: #fff;
padding: 9px 14px;
font-size: 15px;
line-height: normal;
border-radius: 5px;
margin-left: 364px;
margin-top: 60px;
}
</style>
</head>
<body>
<form action="AddServlet" method="post">
<table>
<tr>
<th scope="col" abbr="Dual 1.8">用户名</th>
<th scope="col" abbr="Dual 2">密码</th>
<th scope="col" abbr="Dual 2">姓名</th>
<th scope="col" abbr="Dual 2">邮箱</th>
<th scope="col" abbr="Dual 2">电话</th>
</tr>
<tr>
<td><label>
<input type="text" name="username">
</label></td>
<td><label>
<input type="text" name="password">
</label></td>
<td><label>
<input type="text" name="name">
</label></td>
<td><label>
<input type="text" name="email">
</label></td>
<td><label>
<input type="text" name="telephone">
</label></td>
</tr>
</table>
<input type="submit" value="提交" class="but">
</form>
</body>
</html>
10、修改用户
10.1、修改信息的显示页面
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%--
Created by IntelliJ IDEA.
User: zengxiong
Date: 2021/5/27
Time: 8:05
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>修改用户</title>
<link type="text/css" rel="stylesheet" href="login_success_css.css">
<style>
form {
margin-top: 200px;
margin-left: 300px;
}
.but{
width: 200px;
min-height: 20px;
display: block;
background-color: #4a77d4;
border: 1px solid #3762bc;
color: #fff;
padding: 9px 14px;
font-size: 15px;
line-height: normal;
border-radius: 5px;
margin-left: 364px;
margin-top: 60px;
}
</style>
</head>
<body>
<form method="post">
<table>
<tr>
<th scope="col" abbr="Dual 1.8">用户名</th>
<th scope="col" abbr="Dual 2">密码</th>
<th scope="col" abbr="Dual 2">姓名</th>
<th scope="col" abbr="Dual 2">邮箱</th>
<th scope="col" abbr="Dual 2">电话</th>
</tr>
<tr>
<td><label>
<input type="text" name="username" value="${requestScope.user.userName}">
</label></td>
<td><label>
<input type="text" name="password" value="${requestScope.user.password}">
</label></td>
<td><label>
<input type="text" name="name" value="${requestScope.user.name}">
</label></td>
<td><label>
<input type="text" name="email" value="${requestScope.user.email}">
</label></td>
<td><label>
<input type="text" name="telephone" value="${requestScope.user.telephone}">
</label></td>
</tr>
</table>
<input formaction="UpdateServlet?id=${requestScope.user.id}" type="submit" value="提交" class="but">
</form>
</body>
</html>
10.2、编写UpdateServlet
package com.example.web;
import com.example.bean.User;
import com.example.service.UserServiceImpl;
import com.example.service.impl.UserService;
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;
/**
* @program: ManageResourceSystem
* @description: 修改图书的业务
* @author: Mr.Zeng
* @create: 2021-05-27 08:02
**/
@WebServlet(urlPatterns = "/UpdateServlet")
public class UpdateServlet extends HttpServlet {
UserService userService1 = new UserServiceImpl();
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//获取请求参数
String id = req.getParameter("id");
String username = req.getParameter("username");
String password = req.getParameter("password");
String name = req.getParameter("name");
String email = req.getParameter("email");
String telephone = req.getParameter("telephone");
int i = 0;
try {
i = Integer.parseInt(id);
} catch (NumberFormatException e) {
e.printStackTrace();
}
//修改用户
userService1.update(new User(i, username, password, name, email, telephone));
//转到用户信息列表页面
resp.sendRedirect("UserServlet");
}
}
Tip :当我们要修改用户信息时,一般首先会展示原本用户的信息,在这里编写一个获取当前修改用户信息的OneUserServlet。
-
编写OneUserServlet
package com.example.web; import com.example.bean.User; import com.example.service.UserServiceImpl; import com.example.service.impl.UserService; import javax.servlet.*; import javax.servlet.http.*; import javax.servlet.annotation.*; import java.io.IOException; @WebServlet(urlPatterns = "/OneUserServlet") public class OneUserServlet extends HttpServlet { UserService userService1 = new UserServiceImpl(); @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { super.doGet(req, resp); } @Override protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //获取用户id String id = request.getParameter("id"); int i = 0; try { i = Integer.parseInt(id); } catch (NumberFormatException e) { e.printStackTrace(); } //通过UserService查询此id用户信息 User user = userService1.queryById(i); //把全部信息保存到Request域中 request.setAttribute("user",user); //请求转发到update_list.jsp request.getRequestDispatcher("/update_list.jsp").forward(request, response); } }
11、删除用户
11.1、编写DeleteServlet
package com.example.web;
import com.example.service.UserServiceImpl;
import com.example.service.impl.UserService;
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;
/**
* @program: ManageResourceSystem
* @description: 删除数据的业务
* @author: Mr.Zeng
* @create: 2021-05-27 08:02
**/
@WebServlet(urlPatterns = "/DeleteServlet")
public class DeleteServlet extends HttpServlet {
UserService userService1 = new UserServiceImpl();
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//获取请求的参数ID
String id = req.getParameter("id");
int i = 0;
try {
i = Integer.parseInt(id);
} catch (NumberFormatException e) {
e.printStackTrace();
}
//调用userServlet1的deleteById方法
userService1.deleteById(i);
//重返信息列表
resp.sendRedirect("UserServlet");
}
}
12、整体展示
-
登入页面
-
列表页面
-
添加页面
- 修改页面
更多推荐
所有评论(0)