Skip to content

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>

Released under the MIT License.