一:先写index.jsp 主页面 书写要 查询 增加 的语句
<body>
<a href="${pageContext.request.contextPath }/listusers">查看所有的用户</a>
<a href="${pageContext.request.contextPath }/useradd.jsp">添加用户</a>
</body>
二:根据这个listusers写一个Servlet进行查询:
UserDao userDao = new UserDao();
List<User> list = userDao.getAllUserByApache();
if(logger.isInfoEnabled()){
logger.info("查询出来的数据为:{}",list);
}
request.setAttribute("userlist", list);
request.getRequestDispatcher("/userlist.jsp").forward(request, response);
三:创建一个表格,打印出查询的内容 并在表格中写出删除和更改:
<body>
<c:choose>
<c:when test="${!empty userlist }">
<table border="1" cellpadding="0" cellspacing="0">
<tr>
<th>用户ID</th>
<th>用户姓名</th>
<th>用户邮箱</th>
<th colspan="2">编辑</th>
</tr>
<c:forEach items="${userlist }" var="user">
<tr>
<td>${user.id }</td>
<td>${user.username }</td>
<td>${user.email }</td>
<td>
<a href="${pageContext.request.contextPath }/updateusers?id=${user.id }">
修改
</a>
</td>
<td>
<a href="${pageContext.request.contextPath }/deleteusers?id=${user.id }">
删除
</a>
</td>
</tr>
</c:forEach>
</table>
</c:when>
</c:choose>
</body>
四:查询完毕 进行增加:写一个usersadd.jsp创建增加的表格:
<body>
${msg }
<form action="addusers" method="post">
用户:<input type="text" name="username" value="<%=request.getParameter("username")== null?"":request.getParameter("username")%>"><br>
邮箱:<input type="text" name="email" value="<%=request.getParameter("email")==null?"":request.getParameter("email")%>"><br>
密码:<input type="password" name="password"><br>
确认密码:<input type="password" name="confirmpwd"><br>
<input type="submit" value="提交">
</form>
</body>
五:写一个addusersServlet把数据进行增加;
String username = request.getParameter("username");
String email = request.getParameter("email");
String password = request.getParameter("password");
String confirmpwd = request.getParameter("confirmpwd");
//进行日志输出 查看获取的参数
if(logger.isInfoEnabled()){
logger.info("获取的用户名为:{},邮箱为:{}",username,email);
}
//两次密码不一致需要重新添加
if(password.equals(confirmpwd)){
UserDao userDao = new UserDao();
boolean addFlag = userDao.addUser(username, email, password);
//添加成功 重定向到查询页面
if(addFlag){
response.sendRedirect("listusers");
}else{
//添加失败 得用转发 用于回显用户填写的信息 用户只需修改错误的信息即可 其他的不用修改 也不用重新填写
request.getRequestDispatcher("useradd.jsp").forward(request, response);
}
}else{
//setAttribute这种形式 是可以使用EL表达式 进行获取值的
request.setAttribute("msg", "两次密码不一致你弄啥嘞");
request.getRequestDispatcher("useradd.jsp").forward(request, response);
}
六:增加完毕 在表格中进行删除和修改:
修改:创建一个updateServlet先查询要增加的ID;
String id = request.getParameter("id");
Integer integer = Integer.valueOf(id);
UserDao userDao = new UserDao();
User user = userDao.getUserById(integer);
if(logger.isInfoEnabled()){
logger.info("查出来的用户为:{}",user);
}
if(user!=null){
request.setAttribute("user", user);
request.getRequestDispatcher("/userupdate.jsp").forward(request, response);
创建一个jsp打印出要修改的数据:
<body>
<form action="comfirmUpdate" method="post">
<input type="hidden" name="id" readonly="readonly" value="${user.id }"><br>
用户名:<input type="text" name="username" value="${user.username }"><br>
邮箱: <input type="text" name="email" value="${user.email }"><br>
密码: <input type="password" name="password" value="${user.password }"><br>
<button type="submit">提交</button>
</form>
</body>
创建一个servlet把修改的数据跳转的主页面;
String id = request.getParameter("id");
String username = request.getParameter("username");
String email = request.getParameter("email");
String password = request.getParameter("password");
if(logger.isInfoEnabled()){
logger.info("要修改的数据为:用户ID:{},用户姓名:{},邮箱:{}",id,username,email);
}
UserDao userDao = new UserDao();
boolean updateFlag = userDao.updateUser(username, email, password, Integer.valueOf(id));
if(updateFlag){
response.sendRedirect(request.getContextPath()+"/listusers");
删除:创建一个servlet:找到ID进行删除:
String id = request.getParameter("id");
UserDao userDao = new UserDao();
boolean deleteFlag = userDao.deleteUser(Integer.valueOf(id));
if(logger.isInfoEnabled()){
logger.info("删除的用户ID为{}的用户",id);
}
if(deleteFlag){
response.sendRedirect(request.getContextPath()+"/listusers");