【Bootstrap4前端框架+MySQL数据库】前后端综合实训【10天课程 博客汇总表 详细笔记】【附:实训所有代码】

目   录

页面展示

分页显示数据

添加用户信息

(单个/批量)删除用户

编辑用户信息

user_info数据表——数据展示

user_manager.html

package com.newcapec.dao;

BaseDao.java

UserInfoDao.java

package com.newcapec.entity;

ResultData.java

UserInfoEntity.java

package com.newcapec.servlet;

AddUserServlet.java

DeleteUserServlet.java

LoginServlet.java

SelectUserByIdServlet.java

SelectUserByPageServlet.java

UpdateUserServlet.java


页面展示

   

分页显示数据

添加用户信息

(单个/批量)删除用户

编辑用户信息

user_info数据表——数据展示

user_manager.html

<!DOCTYPE html>
<html><head><meta charset="utf-8"><!-- 新 Bootstrap4 核心 CSS 文件 --><link rel="stylesheet" href="../bootstrap4/css/bootstrap.min.css"><link rel="stylesheet" type="text/css" href="../font-awesome-4.7.0/css/font-awesome.min.css" /><link href="../bootstrap-table/bootstrap-table.min.css" rel="stylesheet" /><!-- jQuery文件。务必在bootstrap.min.js 之前引入 --><script src="../jquery/jquery.min.js"></script><!-- bootstrap.bundle.min.js 用于弹窗、提示、下拉菜单,包含了 popper.min.js --><script src="../js/popper.min.js"></script><!-- 最新的 Bootstrap4 核心 JavaScript 文件 --><script src="../bootstrap4/js/bootstrap.min.js"></script><script src="../bootstrap-table/bootstrap-table.js"></script><script src="../bootstrap-table/locale/bootstrap-table-zh-CN.js"></script><meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"><title>用户管理</title><script type="text/javascript">function batchDelete() {var rows = $('#userInfoTab').bootstrapTable('getSelections');console.log(rows);var userIds = new Array();for (var i = 0; i < rows.length; i++) {userIds.push(rows[i].userId);}console.log(userIds);$.ajax({type: "POST",url: "../DeleteUserServlet",data: { "userIds": userIds },success: function (msg) {if (msg.flag) {alert("成功");//刷新数据$('#userInfoTab').bootstrapTable("refresh");} else {alert("失败");}}});}function addUserInfo() {var userName = $("#addUserName").val();var userPwd = $("#addUserPwd").val();var userdata = {"userName": userName,"userPwd": userPwd};$.ajax({type: "POST",url: "../AddUserServlet",data: userdata,success: function (msg) {if (msg.flag) {alert("成功");//刷新数据$('#userInfoTab').bootstrapTable("refresh");} else {alert("失败");}$("#addUserName").val("");$("#addUserPwd").val("");}});}function edit(userId) {console.log(userId);//通过该ID获取数据//通过ajax发起请求获取用户信息$.ajax({type: "get",url: "../SelectUserByIdServlet",data: { "userId": userId },success: function (msg) {console.log(msg);//获取成功后填入参数展示模态框$("input[name='userId']").val(msg.userId);$("input[name='userName']").val(msg.userName);$("input[name='userPwd']").val(msg.userPwd);$("#updateUserInfo").modal('show');}});//执行更新}function updateUserInfo() {var userInfo = {"userId": $("input[name='userId']").val(),"userName": $("input[name='userName']").val(),"userPwd": $("input[name='userPwd']").val()};$.ajax({type: "post",url: "../UpdateUserServlet",data: userInfo,success: function (msg) {if (msg.flag) {alert("成功");//刷新数据$('#userInfoTab').bootstrapTable("refresh");} else {alert("失败");}$("input[name='userId']").val("");$("input[name='userName']").val("");$("input[name='userPwd']").val("");}});}</script>
</head><body><div style="padding: 10px"><div id="toolbar" style="display: flex;"><button type="button" class="btn btn-info" data-toggle="modal" data-target="#addUserInfo"><iclass="fa fa-plus"></i> 添加</button><button type="button" class="btn btn-danger" onclick="batchDelete()"><i class="fa fa-minus"></i>批量删除</button><!--    <input type="text" placeholder="请输入用户名" id="userName" value="zhangsan"/><button class="btn btn-info" onclick='search()'><i class="fa fa-search"></i></button> --></div><table id="userInfoTab" class="table table-hover table-bordered table-striped"></table><div class="modal fade" id="updateUserInfo"><div class="modal-dialog"><div class="modal-content"><!-- 模态框头部 --><div class="modal-header bg-info"><h4 class="modal-title">更新用户信息</h4><button type="button" class="close" data-dismiss="modal">&times;</button></div><!-- 模态框主体 --><div class="modal-body"><form><input type="hidden" name="userId" /><div class="input-group mb-3"><div class="input-group-prepend"><span class="input-group-text"><i class="fa fa-user"></i></span></div><input type="text" name="userName" class="form-control" placeholder="Username"></div><div class="input-group mb-3"><div class="input-group-prepend"><span class="input-group-text"><i class="fa fa-lock"></i></span></div><input type="password" name="userPwd" class="form-control" placeholder="userpwd"></div></form></div><!-- 模态框底部 --><div class="modal-footer"><button type="button" class="btn btn-success" data-dismiss="modal"onclick=updateUserInfo()>更新</button><button type="button" class="btn btn-secondary" data-dismiss="modal">关闭</button></div></div></div></div><!-- 模态框 --><div class="modal fade" id="addUserInfo"><div class="modal-dialog"><div class="modal-content"><!-- 模态框头部 --><div class="modal-header bg-info"><h4 class="modal-title">添加用户信息</h4><button type="button" class="close" data-dismiss="modal">&times;</button></div><!-- 模态框主体 --><div class="modal-body"><form><div class="input-group mb-3"><div class="input-group-prepend"><span class="input-group-text"><i class="fa fa-user"></i></span></div><input type="text" id="addUserName" class="form-control" placeholder="Username"></div><div class="input-group mb-3"><div class="input-group-prepend"><span class="input-group-text"><i class="fa fa-lock"></i></span></div><input type="password" id="addUserPwd" class="form-control" placeholder="userpwd"></div></form></div><!-- 模态框底部 --><div class="modal-footer"><button type="button" class="btn btn-success" data-dismiss="modal"onclick=addUserInfo()>添加</button><button type="button" class="btn btn-secondary" data-dismiss="modal">关闭</button></div></div></div></div></div><script>var icons = {paginationSwitchDown: 'fa-caret-square-down',paginationSwitchUp: 'fa-caret-square-up',refresh: 'fa-refresh',toggleOff: 'fa-toggle-off',toggleOn: 'fa-toggle-on',columns: 'fa-th-list',fullscreen: 'fa-arrows-alt',detailOpen: 'fa-plus',detailClose: 'fa-minus'};//异步加载表格数据$('#userInfoTab').bootstrapTable({url: '../SelectAllServlet',         //请求后台的URL(*)method: 'get',                      //请求方式(*)toolbar: '#toolbar',                //工具按钮用哪个容器striped: true,                      //是否显示行间隔色cache: false,                       //是否使用缓存,默认为true,所以一般情况下需要设置一下这个属性(*)pagination: true,                   //是否显示分页(*)icons: icons,                       //重新定义图标 修复图标加载失败问题queryParams: function (params) {var temp = {   //这里的键的名字和控制器的变量名必须一直,这边改动,控制器也需要改成一样的limit: params.limit,   //页面大小offset: params.offset  //页码//userName: $("#userName").val()//statu: $("#txt_search_statu").val()};return temp;},sidePagination: "server",           //分页方式:client客户端分页,server服务端分页(*)pageNumber: 1,                       //初始化加载第一页,默认第一页pageSize: 10,                       //每页的记录行数(*)pageList: [10, 15, 20, 25],        //可供选择的每页的行数(*)//search: true,                       //是否显示表格搜索,此搜索是客户端搜索,不会进服务端,所以,个人感觉意义不大strictSearch: true,showRefresh: true,                  //是否显示刷新按钮clickToSelect: true,                //是否启用点击选中行uniqueId: "userId",                     //每一行的唯一标识,一般为主键列//showToggle:true,                    //是否显示详细视图和列表视图的切换按钮//cardView: false,                    //是否显示详细视图columns: [{checkbox: true}, {field: 'userId',title: '用户Id'}, {field: 'userName',title: '用户名'}, {field: 'createTime',title: '创建时间'}, {field: 'updateTime',title: '更新时间'}, {field: 'userId',title: '编辑',formatter: function (value, row, index) {var e = '<a class="btn btn-waring" href="#" mce_href="#" title="编辑" onclick="edit(\''+ row.userId+ '\')"><i class="fa fa-edit"></i>编辑</a> ';return e;}}]});</script>
</body></html>

package com.newcapec.dao;

BaseDao.java

package com.newcapec.dao;import java.sql.SQLException;
import java.util.List;/*** JDBC在后期需要使用hibernate/mybatis优化* * @author user** @param <T>*/
public interface BaseDao<T> {// public int insert(T t) throws ClassNotFoundException, SQLException;public boolean deleteById(int id) throws ClassNotFoundException, SQLException;public boolean batchDeleteById(int[] ids) throws ClassNotFoundException, SQLException;public boolean update(T t) throws ClassNotFoundException, SQLException;public T selectById(int id) throws ClassNotFoundException, SQLException;public List<T> selectAll() throws ClassNotFoundException, SQLException;
}

UserInfoDao.java

package com.newcapec.dao;import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;import com.newcapec.entity.UserInfoEntity;
import com.newcapec.utils.DBUtils;public class UserInfoDao implements BaseDao<UserInfoEntity> {public UserInfoEntity login(String userName, String userPwd) throws ClassNotFoundException, SQLException {UserInfoEntity userInfoEntity = null;Connection connection = DBUtils.openConn();String sql = "select * from user_info where user_name = ? and user_pwd = ?";PreparedStatement statement = connection.prepareStatement(sql);statement.setString(1, userName);statement.setString(2, userPwd);ResultSet resultSet = statement.executeQuery();while (resultSet.next()) {int userId = resultSet.getInt("user_id");Date createTime = resultSet.getTimestamp("create_time");Date updateTime = resultSet.getTimestamp("update_time");userInfoEntity = new UserInfoEntity(userId, userName, userPwd, createTime, updateTime);}resultSet.close();statement.close();connection.close();return userInfoEntity;}public boolean insert(UserInfoEntity t) throws ClassNotFoundException, SQLException {boolean flag = false;// 获取与数据库的连接Connection connection = DBUtils.openConn();// ?表示占位符 可以解决sql注入的问题String sql = "insert into user_info (user_name,user_pwd,create_time) values (?,?,now())";PreparedStatement statement = connection.prepareStatement(sql);statement.setString(1, t.getUserName());statement.setString(2, t.getUserPwd());// 执行sql语句int count = statement.executeUpdate();if (count > 0) {flag = true;}statement.close();connection.close();return flag;}@Overridepublic boolean deleteById(int id) throws ClassNotFoundException, SQLException {boolean flag = false;// 获取连接Connection connection = DBUtils.openConn();// sql语句// String sql = "delete from user_info where user_id = ?";String sql = "update user_info set status = 0 where user_id = ?";// 预处理对象PreparedStatement statement = connection.prepareStatement(sql);// 添加参数statement.setInt(1, id);// 执行预处理对象int count = statement.executeUpdate();if (count > 0) {flag = true;}statement.close();connection.close();return flag;}@Overridepublic boolean update(UserInfoEntity t) throws ClassNotFoundException, SQLException {boolean flag = false;// 获取连接Connection connection = DBUtils.openConn();// sql语句String sql = "update user_info set user_name = ?,user_pwd = ? where user_id = ?";// 预处理对象PreparedStatement statement = connection.prepareStatement(sql);// 添加参数statement.setString(1, t.getUserName());statement.setString(2, t.getUserPwd());statement.setInt(3, t.getUserId());// 执行预处理对象int count = statement.executeUpdate();if (count > 0) {flag = true;}statement.close();connection.close();return flag;}@Overridepublic UserInfoEntity selectById(int id) throws ClassNotFoundException, SQLException {UserInfoEntity userInfoEntity = null;Connection connection = DBUtils.openConn();String sql = "select * from user_info where user_id = ? and status = 1";PreparedStatement statement = connection.prepareStatement(sql);statement.setInt(1, id);ResultSet resultSet = statement.executeQuery();while (resultSet.next()) {int userId = resultSet.getInt("user_id");String userName = resultSet.getString("user_name");String userPwd = resultSet.getString("user_pwd");Date createTime = resultSet.getTimestamp("create_time");Date updateTime = resultSet.getTimestamp("update_time");userInfoEntity = new UserInfoEntity(userId, userName, userPwd, createTime, updateTime);}resultSet.close();statement.close();connection.close();return userInfoEntity;}@Overridepublic List<UserInfoEntity> selectAll() throws ClassNotFoundException, SQLException {List<UserInfoEntity> list = new ArrayList<>();Connection connection = DBUtils.openConn();String sql = "select * from user_info";PreparedStatement statement = connection.prepareStatement(sql);ResultSet resultSet = statement.executeQuery();while (resultSet.next()) {int userId = resultSet.getInt("user_id");String userName = resultSet.getString("user_name");String userPwd = resultSet.getString("user_pwd");Date createTime = resultSet.getTimestamp("create_time");Date updateTime = resultSet.getTimestamp("update_time");UserInfoEntity userInfoEntity = new UserInfoEntity(userId, userName, userPwd, createTime, updateTime);list.add(userInfoEntity);}resultSet.close();statement.close();connection.close();return list;}public List<UserInfoEntity> selectByPage(int offset, int limit) throws ClassNotFoundException, SQLException {List<UserInfoEntity> list = new ArrayList<>();Connection connection = DBUtils.openConn();String sql = "select * from user_info where status = 1 limit ?,?";PreparedStatement statement = connection.prepareStatement(sql);statement.setInt(1, offset);statement.setInt(2, limit);ResultSet resultSet = statement.executeQuery();while (resultSet.next()) {int userId = resultSet.getInt("user_id");String userName = resultSet.getString("user_name");String userPwd = resultSet.getString("user_pwd");Date createTime = resultSet.getTimestamp("create_time");Date updateTime = resultSet.getTimestamp("update_time");UserInfoEntity userInfoEntity = new UserInfoEntity(userId, userName, userPwd, createTime, updateTime);list.add(userInfoEntity);}resultSet.close();statement.close();connection.close();return list;}public int selectCount() throws ClassNotFoundException, SQLException {int count = 0;Connection connection = DBUtils.openConn();String sql = "SELECT COUNT(*) AS userCount FROM user_info where status = 1";PreparedStatement statement = connection.prepareStatement(sql);ResultSet resultSet = statement.executeQuery();while (resultSet.next()) {count = resultSet.getInt("userCount");}resultSet.close();statement.close();connection.close();return count;}@Overridepublic boolean batchDeleteById(int[] ids) throws ClassNotFoundException, SQLException {boolean flag = false;// 获取连接Connection connection = DBUtils.openConn();// sql语句// String sql = "delete from user_info where user_id = ?";String sql = "update user_info set status = 0 where user_id = ?";// 预处理对象PreparedStatement statement = connection.prepareStatement(sql);// 添加参数for (int id : ids) {statement.setInt(1, id);statement.addBatch();}int[] result = statement.executeBatch();// 执行预处理对象// int count = statement.executeUpdate();if (result.length > 0) {flag = true;}statement.close();connection.close();return flag;}}

package com.newcapec.entity;

ResultData.java

package com.newcapec.entity;public class ResultData<T> {private int total;private T rows;private String code;public ResultData() {super();}public ResultData(int total, T rows, String code) {super();this.total = total;this.rows = rows;this.code = code;}public int getTotal() {return total;}public void setTotal(int total) {this.total = total;}public T getRows() {return rows;}public void setRows(T rows) {this.rows = rows;}public String getCode() {return code;}public void setCode(String code) {this.code = code;}@Overridepublic String toString() {return "ResultData [total=" + total + ", rows=" + rows + ", code=" + code + "]";}}

UserInfoEntity.java

package com.newcapec.entity;import java.util.Date;import com.alibaba.fastjson.annotation.JSONField;public class UserInfoEntity {private int userId;private String userName;private String userPwd;@JSONField(format = "yyyy-MM-dd HH:mm:ss")private Date createTime;@JSONField(format = "yyyy-MM-dd HH:mm:ss")private Date updateTime;public UserInfoEntity() {}public UserInfoEntity(int userId, String userName, String userPwd) {super();this.userId = userId;this.userName = userName;this.userPwd = userPwd;}public UserInfoEntity(int userId, String userName, String userPwd, Date createTime, Date updateTime) {super();this.userId = userId;this.userName = userName;this.userPwd = userPwd;this.createTime = createTime;this.updateTime = updateTime;}public int getUserId() {return userId;}public void setUserId(int userId) {this.userId = userId;}public String getUserName() {return userName;}public void setUserName(String userName) {this.userName = userName;}public String getUserPwd() {return userPwd;}public void setUserPwd(String userPwd) {this.userPwd = userPwd;}public Date getCreateTime() {return createTime;}public void setCreateTime(Date createTime) {this.createTime = createTime;}public Date getUpdateTime() {return updateTime;}public void setUpdateTime(Date updateTime) {this.updateTime = updateTime;}@Overridepublic String toString() {return "UserInfoEntity [userId=" + userId + ", userName=" + userName + ", userPwd=" + userPwd + ", createTime="+ createTime + ", updateTime=" + updateTime + "]";}}

package com.newcapec.servlet;

AddUserServlet.java

package com.newcapec.servlet;import java.io.IOException;
import java.sql.SQLException;
import java.util.HashMap;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 com.alibaba.fastjson.JSON;
import com.newcapec.dao.UserInfoDao;
import com.newcapec.entity.UserInfoEntity;/*** Servlet implementation class AddUserServlet*/
@WebServlet(name = "/AddUserServlet", urlPatterns = "/AddUserServlet")
public class AddUserServlet extends HttpServlet {private static final long serialVersionUID = 1L;private UserInfoDao userInfoDao = new UserInfoDao();/*** @see HttpServlet#HttpServlet()*/public AddUserServlet() {super();// TODO Auto-generated constructor stub}/*** @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse*      response)*/protected void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {// TODO Auto-generated method stubresponse.getWriter().append("Served at: ").append(request.getContextPath());}/*** @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse*      response)*/protected void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {request.setCharacterEncoding("utf-8");response.setContentType("text/json;charset=utf-8");String userName = request.getParameter("userName");String userPwd = request.getParameter("userPwd");UserInfoEntity userInfoEntity = new UserInfoEntity();userInfoEntity.setUserName(userName);userInfoEntity.setUserPwd(userPwd);try {boolean flag = userInfoDao.insert(userInfoEntity);HashMap<String, Boolean> result = new HashMap<>();result.put("flag", flag);response.getWriter().write(JSON.toJSONString(result));} catch (ClassNotFoundException | SQLException e) {// TODO 自动生成的 catch 块e.printStackTrace();}}}

DeleteUserServlet.java

package com.newcapec.servlet;import java.io.IOException;
import java.sql.SQLException;
import java.util.Arrays;
import java.util.HashMap;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 com.alibaba.fastjson.JSON;
import com.newcapec.dao.UserInfoDao;/*** Servlet implementation class DeleteUserServlet*/
@WebServlet(name = "/DeleteUserServlet", urlPatterns = "/DeleteUserServlet")
public class DeleteUserServlet extends HttpServlet {private static final long serialVersionUID = 1L;private UserInfoDao userInfoDao = new UserInfoDao();/*** @see HttpServlet#HttpServlet()*/public DeleteUserServlet() {super();// TODO Auto-generated constructor stub}/*** @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse*      response)*/protected void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {// TODO Auto-generated method stubresponse.getWriter().append("Served at: ").append(request.getContextPath());}/*** @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse*      response)*/protected void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {// 此处可以使用过滤器批量处理request.setCharacterEncoding("utf-8");response.setContentType("text/json;charset=utf-8");String[] userIds = request.getParameterValues("userIds[]");// 使用userInfoDao执行批量删除int[] ids = new int[userIds.length];for (int i = 0; i < userIds.length; i++) {ids[i] = Integer.valueOf(userIds[i]);}try {boolean flag = userInfoDao.batchDeleteById(ids);HashMap<String, Boolean> result = new HashMap<>();result.put("flag", flag);response.getWriter().write(JSON.toJSONString(result));} catch (ClassNotFoundException | SQLException e) {// TODO 自动生成的 catch 块e.printStackTrace();}}}

LoginServlet.java

package com.newcapec.servlet;import java.io.IOException;
import java.sql.SQLException;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 com.newcapec.dao.UserInfoDao;
import com.newcapec.entity.UserInfoEntity;/*** Servlet implementation class LoginServlet*/
@WebServlet(name = "/LoginServlet", urlPatterns = "/LoginServlet")
public class LoginServlet extends HttpServlet {private UserInfoDao userInfoDao = new UserInfoDao();private static final long serialVersionUID = 1L;/*** @see HttpServlet#HttpServlet()*/public LoginServlet() {super();// TODO Auto-generated constructor stub}/*** @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse*      response)*/protected void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {// TODO Auto-generated method stubresponse.getWriter().append("Served at: ").append(request.getContextPath());}/*** @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse*      response)*/// 注意:在正规开发中 登录密码需要加密// 需要有验证码protected void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {request.setCharacterEncoding("UTF-8");String userName = request.getParameter("userName");String userPwd = request.getParameter("userPwd");try {UserInfoEntity userInfoEntity = userInfoDao.login(userName, userPwd);if (userInfoEntity != null) {// 登录成功request.getSession().setAttribute("userInfo", userInfoEntity);response.sendRedirect("index.html");} else {// 登录失败 重定向response.sendRedirect("loginFailure.html");}} catch (ClassNotFoundException | SQLException e) {// TODO 自动生成的 catch 块e.printStackTrace();}}}

SelectUserByIdServlet.java

package com.newcapec.servlet;import java.io.IOException;
import java.sql.SQLException;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 com.alibaba.fastjson.JSON;
import com.newcapec.dao.UserInfoDao;
import com.newcapec.entity.UserInfoEntity;/*** Servlet implementation class SelectUserByIdServlet*/
@WebServlet(name = "/SelectUserByIdServlet", urlPatterns = "/SelectUserByIdServlet")
public class SelectUserByIdServlet extends HttpServlet {private static final long serialVersionUID = 1L;private UserInfoDao userInfoDao = new UserInfoDao();/*** @see HttpServlet#HttpServlet()*/public SelectUserByIdServlet() {super();// TODO Auto-generated constructor stub}/*** @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse*      response)*/protected void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {// 此处可以使用过滤器批量处理request.setCharacterEncoding("utf-8");response.setContentType("text/json;charset=utf-8");int userId = Integer.parseInt(request.getParameter("userId"));try {UserInfoEntity userInfoEntity = userInfoDao.selectById(userId);response.getWriter().write(JSON.toJSONString(userInfoEntity));} catch (ClassNotFoundException | SQLException e) {// TODO 自动生成的 catch 块e.printStackTrace();}}/*** @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse*      response)*/protected void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {// TODO Auto-generated method stubdoGet(request, response);}}

SelectUserByPageServlet.java

package com.newcapec.servlet;import java.io.IOException;
import java.sql.SQLException;
import java.util.HashMap;
import java.util.List;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 com.alibaba.fastjson.JSON;
import com.newcapec.dao.UserInfoDao;
import com.newcapec.entity.ResultData;
import com.newcapec.entity.UserInfoEntity;/*** Servlet implementation class SelectAllServlet*/
@WebServlet(name = "/SelectAllServlet", urlPatterns = "/SelectAllServlet")
public class SelectUserByPageServlet extends HttpServlet {private static final long serialVersionUID = 1L;private UserInfoDao userInfoDao = new UserInfoDao();/*** @see HttpServlet#HttpServlet()*/public SelectUserByPageServlet() {super();// TODO Auto-generated constructor stub}/*** @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse*      response)*/protected void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {response.setCharacterEncoding("utf-8");response.setContentType("text/json;charset=utf-8");// 当前页码// 页大小int offset = Integer.parseInt(request.getParameter("offset"));int limit = Integer.parseInt(request.getParameter("limit"));// bootstrap-table插件需要后台传回total/rowsResultData<List<UserInfoEntity>> data = new ResultData<>();try {data.setRows(userInfoDao.selectByPage(offset, limit));data.setTotal(userInfoDao.selectCount());response.getWriter().write(JSON.toJSONString(data));} catch (ClassNotFoundException | SQLException e1) {// TODO 自动生成的 catch 块e1.printStackTrace();}}/*** @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse*      response)*/protected void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {// TODO Auto-generated method stubdoGet(request, response);}}

UpdateUserServlet.java

package com.newcapec.servlet;import java.io.IOException;
import java.sql.SQLException;
import java.util.HashMap;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 com.alibaba.fastjson.JSON;
import com.newcapec.dao.UserInfoDao;
import com.newcapec.entity.UserInfoEntity;/*** Servlet implementation class UpdateUserServlet*/
@WebServlet(name = "/UpdateUserServlet", urlPatterns = "/UpdateUserServlet")
public class UpdateUserServlet extends HttpServlet {private static final long serialVersionUID = 1L;private UserInfoDao userInfoDao = new UserInfoDao();/*** @see HttpServlet#HttpServlet()*/public UpdateUserServlet() {super();// TODO Auto-generated constructor stub}/*** @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse*      response)*/protected void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {// TODO Auto-generated method stubresponse.getWriter().append("Served at: ").append(request.getContextPath());}/*** @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse*      response)*/protected void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {// 此处可以使用过滤器批量处理request.setCharacterEncoding("utf-8");response.setContentType("text/json;charset=utf-8");int userId = Integer.parseInt(request.getParameter("userId"));String userName = request.getParameter("userName");String userPwd = request.getParameter("userPwd");UserInfoEntity entity = new UserInfoEntity(userId, userName, userPwd);try {boolean flag = userInfoDao.update(entity);HashMap<String, Boolean> result = new HashMap<>();result.put("flag", flag);response.getWriter().write(JSON.toJSONString(result));} catch (ClassNotFoundException | SQLException e) {// TODO 自动生成的 catch 块e.printStackTrace();}}}

多谢观看~

Bootstrap4+MySQL前后端综合实训-Day07-PM【用户信息管理页面——功能展示(分页显示数据、添加用户、批量删除用户、编辑用户信息)、servlet项目代码整理汇总】相关推荐

  1. Bootstrap4+MySQL前后端综合实训-Day08-AM【多表查询sql语句、关联数据的假删除、自动增长主键的获取、栏目管理“数据编辑”按钮的实现】

    [Bootstrap4前端框架+MySQL数据库]前后端综合实训[10天课程 博客汇总表 详细笔记][附:实训所有代码] 目   录 多表查询sql语句 关联数据的假删除(status状态码/数据可恢 ...

  2. Bootstrap4+MySQL前后端综合实训-Day06-AM【eclipse详细配置Tomcat、开发web项目、servlet、连接MySQL8.0数据库、用户登录界面的编写与验证、分页查询】

    [Bootstrap4前端框架+MySQL数据库]前后端综合实训[10天课程 博客汇总表 详细笔记][附:实训所有代码] 目   录 eclipse重置视图 MySQL数据库--建数据库.建数据库 s ...

  3. Bootstrap4+MySQL前后端综合实训-Day10-AM【实训汇报-下午返校、项目代码(7个包+7个Html页面)】

    [Bootstrap4前端框架+MySQL数据库]前后端综合实训[10天课程 博客汇总表 详细笔记][附:实训所有代码] 目录 实训汇报 数据库--所有SQL语句 工程文件展示 代码 ①package ...

  4. Bootstrap4+MySQL前后端综合实训-Day09-PM【实训汇报、在同一校园网下,查看别人的项目——ipconfig】

    [Bootstrap4前端框架+MySQL数据库]前后端综合实训[10天课程 博客汇总表 详细笔记][附:实训所有代码] 在同一校园网下,查看别人的项目--ipconfig    

  5. Bootstrap4+MySQL前后端综合实训-Day09-AM【项目功能展示视频、小组汇报PPT、项目介绍】

    [Bootstrap4前端框架+MySQL数据库]前后端综合实训[10天课程 博客汇总表 详细笔记][附:实训所有代码] 目   录 项目功能展示视频(视频地址:https://live.csdn.n ...

  6. Bootstrap4+MySQL前后端综合实训-Day08-PM【ajax获取表单标签内容、根据“栏目信息”添加“新闻信息”、新闻管理系统-项目展示】

    [Bootstrap4前端框架+MySQL数据库]前后端综合实训[10天课程 博客汇总表 详细笔记][附:实训所有代码] 目   录 ajax获取表单标签内容 ajax根据数据库加载select下来列 ...

  7. Bootstrap4+MySQL前后端综合实训-Day07-AM【ajax局部刷新——(单个/批量)删除用户按钮的实现、更新用户信息按钮的实现】

    [Bootstrap4前端框架+MySQL数据库]前后端综合实训[10天课程 博客汇总表 详细笔记][附:实训所有代码] 目   录 (单个/批量)删除用户按钮的实现.更新用户信息按钮的实现--展示 ...

  8. Bootstrap4+MySQL前后端综合实训-Day06-PM【MD5加码-生成32位md5码、ResultData.java、分页查询用户数据、添加用户按钮的实现】

    [Bootstrap4前端框架+MySQL数据库]前后端综合实训[10天课程 博客汇总表 详细笔记][附:实训所有代码] 目录 MD5加码 生成32位md5码 ResultData.java 分页查询 ...

  9. Bootstrap4+MySQL前后端综合实训-Day05-AM【MySQL数据库(SQLyog软件基本操作、架构设计器)、eclipse(JDBC开发-添加驱动、构建路径、增删改查基本测试)】

    [Bootstrap4前端框架+MySQL数据库]前后端综合实训[10天课程 博客汇总表 详细笔记] 目   录 MySQL数据库--建库.建表 新建连接.测试连接 新建news_manager数据库 ...

最新文章

  1. nat端口限制_Cisco ASA 防火墙 NAT - 基本概念
  2. winform下的未捕捉的异常处理
  3. 20145202马超《网络对抗》Exp7 网络欺诈技术防范
  4. gihosoft android 教程,Gihosoft Free Android Data Recovery
  5. 高能同步辐射光源科学数据管理策略研究与应用
  6. IntelliJ IDEA 14.x 创建工作空间与多个Java Web项目
  7. 打包图片上传cdn_Media Buy之Landing Page的资源文件CDN部署方案
  8. 11个值得掌握的Java代码性能优化技巧
  9. Matplotlib笔记(莫烦Python)
  10. 同态加密之Paillier算法
  11. YUI可真是个不错的东东
  12. Docker Secret加密
  13. 完善消费信贷风控措施势在必行
  14. 国科大--多媒体分析与理解--2019考试试题
  15. JAVAer要了解的掌故
  16. 穷爸爸和富爸爸读后感
  17. verilog实现时钟的时和分,其中时为24进制,分为60进制
  18. 搞不懂,想不通,烦死啦
  19. 榕树贷款的同态加密之Paillier算法
  20. 利用Python开发图片下载器之教程与源码分享

热门文章

  1. CSS基本选择器、层次选择器、结构伪类选择器、属性选择器
  2. 微信红包随机数字_微信红包的随机算法
  3. 创建水印文字_推荐免费物业现场品质管理新工具—马克水印相机
  4. Java Store_java之Properties集合中的方法store
  5. 【小白学习keras教程】三、Kears中常见模型层Padding、Conv2D、MaxPooling2D、Flatten和Dense
  6. 从简单的一元线性回归分析入门机器学习
  7. 十九、Seaborn数据可视化
  8. NeurIPS 2021有哪些值得读的NLP论文?
  9. OpenViDial:一个大规模多模态对话数据集
  10. 搜索,然后学习:两阶段的无监督文本生成