12. 改造用户管理模块
使用jsp+servlet、EL表达式 、JSTL标签库改造用户管理
在pom.xml文件中添加jstl的依赖
html
<dependency>
<groupId>jstl</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
12.1 UserDao
java
package com.neuedu.dao;
import com.neuedu.entity.User;
import com.neuedu.util.JDBCUtil;
import java.util.List;
/**
* 项目: usermanager
* 类名: UserDao
* 创建时间: 2020/12/7 16:21
* 描述 :
* 作者 : 张金山
* QQ : 314649444
* Site: https://jshand.gitee.io
*/
public class UserDao {
/**
* 查询集合
* @param sql
* @param param
* @return
*/
public List<User> list(String sql,Object... param){
System.out.println(JDBCUtil.driver);
return JDBCUtil.executeQuery(sql,User.class,param);
}
/**
*
* @param id
* @return
*/
public User queryById(String id ){
String sql = "select * from user where id = ? ";
return JDBCUtil.getOne(sql,(rs)->{
return new User(
rs.getInt("id"),
rs.getString("username"),
rs.getString("displayname"),
rs.getString("password"),
rs.getDate("birthday"),
rs.getString("gender"),
rs.getString("telephone"),
rs.getString("email"),
rs.getTimestamp("last_logintime"),
rs.getTimestamp("create_time"),
rs.getString("valid")
);
},id);
}
public boolean add(User user ){
String sql = "insert into user(username,password,displayname,birthday) values(?,?,?,?) ";
return JDBCUtil.executeUpdate(sql,
user.getUsername(),
user.getPassword(),
user.getDisplayname(),
user.getBirthday());
}
public boolean update(User user ){
StringBuffer sql = new StringBuffer();
sql.append( " UPDATE ");
sql.append( " user ");
sql.append( " SET ");
sql.append( " ");
sql.append( " username = ?, ");
sql.append( " displayname = ?, ");
sql.append( " password = ?, ");
sql.append( " birthday = ?, ");
sql.append( " gender =?, ");
sql.append( " telephone = ?, ");
sql.append( " email =?, ");
sql.append( " last_logintime = ?, ");
sql.append( " valid = ? ");
sql.append( " WHERE id = ? ");
return JDBCUtil.executeUpdate(sql.toString(),
user.getUsername(),
user.getDisplayname(),
user.getPassword(),
user.getBirthday(),
user.getGender(),
user.getTelephone(),
user.getEmail(),
user.getLast_logintime(),
user.getValid(),
user.getId()
);
}
public boolean deleteById(String id ) {
String sql =" delete from user where id = ?";
return JDBCUtil.executeUpdate(sql,id);
}
public static void main(String[] args) {
UserDao userDao = new UserDao();
String sql = "select * from user ";
List<User> list = userDao.list(sql);
// for (User user : list) {
// System.out.println(user);
// }
String id = "2";
User user = userDao.queryById(id);
System.out.println(user);
}
}
12.2 UserServlet
java
package com.neuedu.servlet;
import com.neuedu.dao.UserDao;
import com.neuedu.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 javax.servlet.http.HttpSession;
import java.io.IOException;
import java.io.PrintWriter;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.List;
/**
* 项目: usermanager
* 类名: ${NAME}
* 创建时间: 2020/12/8 9:21
* 描述 : ${dc}
* 作者 : 张金山
* QQ : 314649444
* Site: https://jshand.gitee.io
* <p>
* <p>
* http://127.0.0.1:8080/mis/user
* http://127.0.0.1:8080/mis/user?type=list
*/@WebServlet(name = "UserServlet", urlPatterns = "/user")
public class UserServlet extends HttpServlet {
private UserDao userDao = new UserDao();
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// if(!isLogin(request,response)){
// //跳转到登录画面
// response.sendRedirect(request.getContextPath()+"/login?type=page");
// return;
// }
//
// //接收的编码
// /**
// * Get方式
// */
// String name = request.getParameter("name");
// name = new String(name.getBytes("iso8859-1"),"utf-8");
// System.out.println("name:"+name);
//post提交生效
request.setCharacterEncoding("utf-8");
//响应的编码
request.setCharacterEncoding("utf-8");
/**
* type
* 1 查询列表 list(显示页面)
* 2 查处用户 delete 重新查询列表
* 3 添加用户 toAdd(显示页面) add 重新查询列表
* 4 修改用户 toEdit(显示页面) edit 重新查询列表
*/
String type = request.getParameter("type");
//1 查询 http://127.0.0.1:8080/mis/user?type=list
if ("list".equals(type) || type == null) {
queryList(request, response);
}
//2 到添加用户界面
else if ("toAdd".equals(type)) {
toAdd(request, response);
} else if ("add".equals(type)) {
try {
add(request, response);
} catch (ParseException e) {
e.printStackTrace();
}
}
//到修改页面
else if ("toEdit".equals(type)) {
toEdit(request, response);
} else if ("edit".equals(type)) {
try {
edit(request, response);
} catch (ParseException e) {
e.printStackTrace();
}
} else if ("delete".equals(type)) {
delete(request, response);
}
//2 修改
}
private boolean isLogin(HttpServletRequest request, HttpServletResponse response) {
//
HttpSession session = request.getSession();
String username = (String)session.getAttribute("username");
if(username!= null && !"".equals(username)){
return true;
}
return false;
}
/**
* 删除
*
* @param request
* @param response
*/
private void delete(HttpServletRequest request, HttpServletResponse response) throws IOException {
String id = request.getParameter("id");
boolean success = userDao.deleteById(id);
response.sendRedirect(request.getContextPath() + "/user?type=list");
}
private void edit(HttpServletRequest request, HttpServletResponse response) throws ParseException, IOException {
String id = request.getParameter("id");
String username = request.getParameter("username");
String displayname = request.getParameter("displayname");
String password = request.getParameter("password");
String birthday = request.getParameter("birthday"); //yyyy-MM-dd 1990-01-02
String gender = request.getParameter("gender");
String email = request.getParameter("email");
String last_logintime = request.getParameter("last_logintime");
String valid = request.getParameter("valid");
User user = new User();
user.setId(Integer.parseInt(id));
user.setUsername(username);
user.setDisplayname(displayname);
user.setPassword(password);
if(birthday != null){
user.setBirthday(new SimpleDateFormat("yyyy-MM-dd").parse(birthday));
}
user.setGender(gender);
user.setEmail(email);
if(last_logintime != null){
user.setLast_logintime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(last_logintime));
}
user.setValid(valid);
boolean success = userDao.update(user);
//查询列表页
// request.getRequestDispatcher("user?type=list").forward(request,response);
response.sendRedirect(request.getContextPath() + "/user?type=list");
}
private void toEdit(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
String id = request.getParameter("id");
User user = userDao.queryById(id);
request.setAttribute("user",user);
request.getRequestDispatcher("user/user_edit.jsp").forward(request,response);
}
private void add(HttpServletRequest request, HttpServletResponse response) throws ParseException, ServletException, IOException {
String username = request.getParameter("username");
String displayname = request.getParameter("displayname");
String password = request.getParameter("password");
String birthday = request.getParameter("birthday"); //yyyy-MM-dd 1990-01-02
String gender = request.getParameter("gender");
String email = request.getParameter("email");
User user = new User();
user.setUsername(username);
user.setDisplayname(displayname);
user.setPassword(password);
user.setBirthday(new SimpleDateFormat("yyyy-MM-dd").parse(birthday));
user.setGender(gender);
user.setEmail(email);
boolean success = userDao.add(user);
//查询列表页
// request.getRequestDispatcher("user?type=list").forward(request,response);
response.sendRedirect(request.getContextPath() + "/user?type=list");
}
/**
* 添加页面
*
* @param request
* @param response
* @throws IOException
*/
private void toAdd(HttpServletRequest request, HttpServletResponse response) throws IOException {
response.setContentType("text/plain;charset=utf-8");
}
/**
* 查询类表
*
* @param request
* @param response
*/
private void queryList(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
String sql = "select * from user";
List<User> userList = userDao.list(sql);
request.setAttribute("userList",userList);
request.getRequestDispatcher("user/user_list.jsp").forward(request,response);
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
this.doPost(request, response);
}
}
12.1 用户列表
<%@ page import="java.util.List" %>
<%@ page import="com.neuedu.entity.User" %><%--
Created by IntelliJ IDEA.
User: root
Date: 2020/12/13
Time: 11:22
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="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<a href='${pageContext.request.contextPath}/user/user_add.jsp'>添加</a>
<table border='1' width='100%' cellpadding='0' cellspacing='0'>
<tr>
<td>序号</td>
<td>用户名</td>
<td>昵称</td>
<td>密码</td>
<td>出生日期</td>
<td>性别</td>
<td>邮箱</td>
<td>创建时间</td>
<td>操作</td>
</tr>
<c:forEach var="user" items="${userList}" >
<tr>
<td>${user.id}</td>
<td>${user.username}</td>
<td>${user.displayname}</td>
<td>${user.password}</td>
<td>${user.birthday}</td>
<td>
<c:choose>
<c:when test="${user.gender =='1' or user.gender == null}">男</c:when>
<c:otherwise>女</c:otherwise>
</c:choose>
</td>
<td>${user.email}</td>
<td><fmt:formatDate value="${user.create_time}" pattern="yyyy-MM-dd HH:mm:ss"/></td>
<td><a href='user?type=toEdit&id=${user.id}'>编辑</a> <a href='user?type=delete&id=${user.id}'>删除</a></td>
</tr>
</c:forEach>
</table>
</body>
</html>
12.1 用户修改页面
user_edit.jsp
html
<%@ page import="com.neuedu.entity.User" %>
<%@ page import="java.text.SimpleDateFormat" %><%--
Created by IntelliJ IDEA.
User: root
Date: 2020/12/13
Time: 11:54
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="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<form method='post' action='user?type=edit'>
<input type='hidden' name='id' value='${user.id}'>
<input type='hidden' name='last_logintime' value='<fmt:formatDate value="${user.last_logintime}" pattern="yyyy-MM-dd HH:mm:ss"/>'>
<input type='hidden' name='valid' value='${user.valid}'>
<h3>用户添加</h3>
<table width='100%' border='1'>
<tr>
<td>username</td>
<td><input type='text' name='username' value='${user.username}'></td>
</tr>
<tr>
<td>displayname</td>
<td><input type='text' name='displayname' value='${user.displayname}'></td>
</tr>
<tr>
<td>password</td>
<td><input type='text' name='password' value='${user.password}'></td>
</tr>
<tr>
<td>birthday</td>
<td><input type='text' name='birthday' value='<fmt:formatDate value="${user.birthday}" pattern="yyyy-MM-dd"/>'></td>
</tr>
<tr>
<td>gender</td>
<td>
<select name='gender'>
<option value='1' <c:if test="${user.gender='1' or user.gender == null}">selected</c:if> >男
<option value='2' <c:if test="${user.gender='2'}">selected</c:if> >女
</select></td>
</tr>
<tr>
<td>email</td>
<td><input type='text' name='email' value='${user.email}'></td>
</tr>
<tr>
<td colspan='2'><input type='submit'></td>
</tr>
</table>
</form>
</form>
</body>
</html>
