一、前端HTML
1.1、通过axios发送请求到Servlet获取用户列表数据
1.2、将Servlet响应的数据通过v-for指令显示到tale上
源代码:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>用户管理</title>
<!-- 导入bootstrap依赖 -->
<link rel="stylesheet" href="assets/bootstrap-3.3.7-dist/css/bootstrap.min.css"/>
<script src="assets/jquery-3.5.1/jquery-3.5.1.min.js"></script>
<script src="assets/bootstrap-3.3.7-dist/js/bootstrap.min.js"></script>
<!--导入Vue依赖-->
<script src="assets/vue.min-v2.5.16.js"></script>
<script src="assets/axios.min.js"></script>
<style>
a:link{font-size: 20px;color: rgb(109,109,109);}
a:visited{font-size: 20px;color: rgb(109,109,109);}
a:hover{font-size: 20px;color: white;text-decoration: none}
</style>
</head>
<body>
<div class="container" id="app">
<div class="row">
<!--显示导航-->
<div class="col-md-3" style="background-color: rgb(0,21,41);height: 800px;">
<div class="row">
<div class="col-md-12" style="background-color: rgb(0,40,77);text-align: center;height: 70px;line-height: 70px;font-size: 20px;color: white;font-weight: bold;">
<img src="assets/img/logo.png" style="width: 30px;height: 30px;margin-right: 8px;"/>
蜗牛CRM管理系统
</div>
</div>
<div class="row">
<div class="col-md-12" style="text-align: center;padding: 20px 0px 20px 0px;">
<a href="index.html">进入首页</a>
</div>
</div>
<div class="row">
<div class="col-md-12" style="text-align: center;padding: 20px 0px 20px 0px;">
<a href="user_list.html">用户管理</a>
</div>
</div>
<div class="row">
<div class="col-md-12" style="text-align: center;padding: 20px 0px 20px 0px;">
<a href="user_add.html">添加用户</a>
</div>
</div>
<div class="row">
<div class="col-md-12" style="text-align: center;padding: 20px 0px 20px 0px;">
<a href="#">客户管理</a>
</div>
</div>
<div class="row">
<div class="col-md-12" style="text-align: center;padding: 20px 0px 20px 0px;">
<a href="#">添加客户</a>
</div>
</div>
<div class="row">
<div class="col-md-12" style="text-align: center;padding: 20px 0px 20px 0px;">
<a href="user_upadte.html">修改密码</a>
</div>
</div>
<div class="row">
<div class="col-md-12" style="text-align: center;padding: 20px 0px 20px 0px;">
<a href="#">退出登录</a>
</div>
</div>
</div>
<!--显示内容-->
<div class="col-md-9" style="border: 1px solid gray;height: 800px;">
<!-- 显示提示内容 -->
<div class="row">
<div class="col-md-12" style="height: 70px;font-size: 18px;color: rgb(109,109,109);line-height: 70px;font-weight: bold;padding-left: 20px">
> 用户管理
</div>
</div>
<!-- 显示内容 -->
<div class="row" style="background-color: rgb(240,242,245); height: 730px;padding: 20px">
<div class="col-md-12" style="background-color: white;height: 730px;border: none;border-radius: 5px;">
<!--使用bootstrap表格斑马线样式-->
<table class="table table-striped" style="margin-top: 20px;">
<!-- 表格描述 -->
<caption>用户管理-用户列表</caption>
<thead>
<tr>
<th>ID</th>
<th>用户名</th>
<th>昵称</th>
<th>性别</th>
<th>生日</th>
<th>手机号</th>
<th>操作</th>
</tr>
</thead>
<!-- 表格的内容 -->
<tbody>
<tr v-for="u in users">
<td>{{u.id}}</td>
<td>{{u.userName}}</td>
<td>{{u.nickName}}</td>
<td>{{u.sex == 0 ? "男":"女"}}</td>
<td>{{u.birth}}</td>
<td>{{u.phone}}</td>
<td>
<button class="btn btn-link">修改</button>
<button class="btn btn-link">删除</button>
</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
</div>
</div>
<script>
new Vue({
el:'#app',
data:{
users:null
},
created:function () {//页面加载完成之后执行
//发送请求获取用户列表
axios.get("user_list").then(response =>{
this.users = response.data;
})
}
})
</script>
</body>
</html>
二、后端Servlet
2.1、DAO中添加查询全部用户的方法
2.2、DAOImpl中实现查询全部用户的方法
2.3、创建UserListServlet查询全部用户
UserListServlet源代码:
package controller;
import com.alibaba.fastjson.JSON;
import dao.UserDAO;
import dao.UserDAOImpl;
import entity.User;
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.io.PrintWriter;
import java.util.List;
@WebServlet("/user_list")
public class UserListServlet extends HttpServlet {
@Override
protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//转码
req.setCharacterEncoding("utf-8");
resp.setCharacterEncoding("utf-8");
resp.setContentType("application/json;charset=utf-8");
//获取PrintWriter
PrintWriter writer = resp.getWriter();
//查询数据库
UserDAO dao = new UserDAOImpl();
List<User> list = dao.selectAll();
String json = JSON.toJSONString(list);
writer.print(json);
//释放资源
writer.close();
}
}