基于javaweb+mysql的jsp+servlet网上名片通讯录管理系统(java+servlet+jsp+bootstrap+mysql)

基于javaweb+mysql的jsp+servlet网上名片通讯录管理系统(java+servlet+jsp+bootstrap+mysql)

私信源码获取及调试交流

运行环境

Java≥8、MySQL≥5.7、Tomcat≥8

开发工具

eclipse/idea/myeclipse/sts等均可配置运行

适用

课程设计,大作业,毕业设计,项目练习,学习演示等

功能说明

基于javaweb+mysql的JSP+Servlet网上名片通讯录管理系统(java+servlet+jsp+bootstrap+mysql)

管理员:

admin 123456

用户:

user1 123456

user2 123456

*不同用户只能对自己名片进行操作

Java web 期末课程设计–名片管理系统

  1. Jsp+Servlet+JavaBean+Jdbc+DAO+MySQL+Bootstrap+jQuey。

  2. 其中也有一些不是很好的操作,譬如页面嵌套了iframe,其实应有更好的解决方案。

  3. 其中也牵扯对于ajax、EL表达式、JSTL、JSON等的应用

  4. 主要实现功能:

    用户注册登录(注册时根据用户名检查用户是否存在)

    不同用户只能对自己名片进行操作

    名片增删(放入回收站)改查

    批量勾选删除

    四个字段的模糊查询(后端拼这个sql觉得真tm zz啊)

    回收站管理(彻底删除名片、恢复删除名片)

    用户权限管理(admin用户最起码得能管理其他普通用户吧)

       admin可实现对普通用户帐号的密码重置与删除,
    
       普通用户可自主更改密码
    
       (由于本人太懒,所以只实现了密码重置与删除用户)
    

    未登录用户控制(登录都没登录,总不能直接访问到页面吧)

    密码md5加密(密码不能明文存储吧)

    登录图片验证码(可点击图片刷新)

  5. 待实现功能:

    RememberMe

    分页查询(是在懒得改了)

        int row = 0;
        try {
            conn = DBConnection.getConnection();
            pstmt = conn.prepareStatement(DELETE_SQL);
            pstmt.setInt(1,user.getId());
            row = pstmt.executeUpdate();
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            DBConnection.closeDB(conn,pstmt,rs);
        }
        return row;
    }

    /**
     * 重置用户密码
     * @param user
     * @return
     */
    @Override
    public int reset(User user) {
        Connection conn = null;
        PreparedStatement pstmt = null;
        ResultSet rs = null;
        String RESET_SQL = "update tb_user set password='123456' where id = ?";
        int row = 0;
        try {
            conn = DBConnection.getConnection();
            pstmt = conn.prepareStatement(RESET_SQL);
            pstmt.setInt(1,user.getId());
            row = pstmt.executeUpdate();
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            DBConnection.closeDB(conn,pstmt,rs);
        }
        return row;
    }

    /**
     * 用户密码修改
     * @param user
     * @param newPwd
     * @return
     */
    @Override
    public int editPwd(User user, String newPwd) {
        Connection conn = null;
        PreparedStatement pstmt = null;
        ResultSet rs = null;

public class SelectTrashServlet extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        request.setCharacterEncoding("utf-8");
        String name = request.getParameter("name");
        String tel = request.getParameter("tel");
        String address = request.getParameter("address");
        String email = request.getParameter("email");
        Card card = new Card(0,name,tel,address,email,0,0);
        TrashDao trashDao = new TrashDao();
        HttpSession session = request.getSession();
        List<Card> cardList = trashDao.selectTrash(card,session);
        request.setAttribute("cards",cardList);  // 将list放入request域
        request.getRequestDispatcher("trash.jsp").forward(request,response);
    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

    }
}

/**
 * 用户密码修改
 */
public class EditPwdServlet extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        request.setCharacterEncoding("utf-8");
        HttpSession session = request.getSession();
        int id = (int) session.getAttribute("userId");
        String newPwd = request.getParameter("password2");
                    // 如果登录用户是管理员,则页面跳转到管理员管理页面
                    session.setAttribute("userType","1");
                    response.sendRedirect("frame");
                } else {
                    // 否则跳转到用户管理页面
                    session.setAttribute("userType","2");
                    response.sendRedirect("frame");
                }
            } else {
                // 密码错误,设置错误提示信息,页面转发到登录页面
                request.setAttribute("message", "用户名或密码错误!");  // 验证失败
                request.getRequestDispatcher("login.jsp").forward(request, response);
            }
        } else {
            // 验证码错误,设置错误提示信息,页面转发到登录页面
            request.setAttribute("message", "验证码错误!");  // 验证失败
            request.getRequestDispatcher("login.jsp").forward(request, response);
        }
    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doPost(request,response);
    }
}

/**
 * 名片更新
 */
public class UpdateServlet extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        request.setCharacterEncoding("utf-8");
        int id = Integer.parseInt(request.getParameter("id"));
        String name = request.getParameter("name");
        String tel = request.getParameter("tel");
        String address = request.getParameter("address");
        String email = request.getParameter("email");
        int userId = Integer.parseInt(request.getParameter("userId"));
        int isDelete = Integer.parseInt(request.getParameter("isDelete"));
        Card card = new Card(id,name,tel,address,email,userId,isDelete);
        CardDao cardDao = new CardDao();
        int n = cardDao.update(card);
        if (n > 0) {
        if (checkCode.equals(realCode)) {
            if (user1 != null) {
                session.setAttribute("userId", user1.getId());
                session.setAttribute("user", user1);
                session.setAttribute("username", user1.getUsername());
                if (user1.getUsername().equals("admin")) {  
                    // 如果登录用户是管理员,则页面跳转到管理员管理页面
                    session.setAttribute("userType","1");
                    response.sendRedirect("frame");
                } else {
                    // 否则跳转到用户管理页面
                    session.setAttribute("userType","2");
                    response.sendRedirect("frame");
                }
            } else {
                // 密码错误,设置错误提示信息,页面转发到登录页面
                request.setAttribute("message", "用户名或密码错误!");  // 验证失败
                request.getRequestDispatcher("login.jsp").forward(request, response);
            }
        } else {
            // 验证码错误,设置错误提示信息,页面转发到登录页面
            request.setAttribute("message", "验证码错误!");  // 验证失败
            request.getRequestDispatcher("login.jsp").forward(request, response);
        }
    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doPost(request,response);
    }
}

/**
        } finally {
            DBConnection.closeDB(conn,pstmt,rs);
        }
        return row;
    }

    /**
     * 查询所有名片记录
     * @return
     */
    @Override
    public List<Card> findAll(HttpSession session) {
        Connection conn = null;
        PreparedStatement pstmt = null;
        ResultSet rs = null;
        List<Card> cards = new ArrayList<>();
//        System.out.println(session.getAttribute("userId"));
        String LIST_SQL = "select * from tb_card where user_id=" + session.getAttribute("userId") + " and isdelete = 0";
//        System.out.println(LIST_SQL);
        try {
            conn = DBConnection.getConnection();
            pstmt = conn.prepareStatement(LIST_SQL);
            rs = pstmt.executeQuery();
            while (rs.next()) {
                int id = rs.getInt("id");
                String name = rs.getString("name");
                String tel = rs.getString("tel");
                String address = rs.getString("address");
                String email = rs.getString("email");
                int userId = rs.getInt("user_id");
                int isDelete = rs.getInt("isdelete");
                Card card = new Card(id,name,tel,address,email,userId,isDelete);
                cards.add(card);
            }
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            DBConnection.closeDB(conn,pstmt,rs);
        }
        return cards;
        }
        if (!card.getTel().equals("")) {
            s+=" and tel like '%" + card.getTel() + "'";
        }
        if (!card.getAddress().equals("")) {
            s+= " and address like'%" + card.getAddress()+"%'";
        }
        if (!card.getEmail().equals("")) {
            s+= " and email like'%" + card.getEmail() + "%'";
        }
        String sql = "select * from tb_card WHERE  user_id=? and isdelete=1 and";
        try {
            sql += s;
            conn = DBConnection.getConnection();
            pstmt = conn.prepareStatement(sql);
            pstmt.setInt(1,userId1);
            rs = pstmt.executeQuery();
            while (rs.next()) {
                int id = rs.getInt("id");
                String name = rs.getString("name");
                String tel = rs.getString("tel");
                String address = rs.getString("address");
                String email = rs.getString("email");
                int userId = rs.getInt("user_id");
                int isDelete = rs.getInt("isdelete");
                Card card1 = new Card(id,name,tel,address,email,userId,isDelete);
                cards.add(card1);
            }

        } catch(SQLException e) {
            e.printStackTrace();
        } finally {
            DBConnection.closeDB(conn,pstmt,rs);
        }
        return cards;
    }
}

            String[] id = ids.split("-");
            for (String s : id) {
                card.setId(Integer.parseInt(s));
                n += cardDao.remove(card);
            }
        } else {
            card.setId(Integer.parseInt(ids));
            n = cardDao.remove(card);
        }
        response.setCharacterEncoding("utf-8");
        if (n > 0) {
            response.getWriter().write("删除成功!");
        } else {
            response.getWriter().write("删除失败!");
        }
    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doPost(request,response);
    }
}

/**
 * 名片添加
 */
public class AddServlet extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        request.setCharacterEncoding("utf-8");
        HttpSession session = request.getSession();
        String name = request.getParameter("name");
        String tel = request.getParameter("tel");
        String address =request.getParameter("address");
        String email = request.getParameter("email");
        int userId = (int) session.getAttribute("userId");
        Card card = new Card(0,name,tel,address,email,userId,0);
        CardDao cardDao = new CardDao();
        int n = cardDao.create(card);
        if (n > 0) {
            request.getRequestDispatcher("list").forward(request,response);
        } else  {
            request.setAttribute("message","名片插入失败!");
                int id = rs.getInt("id");
                String name = rs.getString("name");
                String tel = rs.getString("tel");
                String address = rs.getString("address");
                String email = rs.getString("email");
                int userId = rs.getInt("user_id");
                int isDelete = rs.getInt("isdelete");
                Card card1 = new Card(id,name,tel,address,email,userId,isDelete);
                cards.add(card1);
            }

        } catch(SQLException e) {
            e.printStackTrace();
        } finally {
            DBConnection.closeDB(conn,pstmt,rs);
        }
        return cards;
    }
}

public class UserDao implements IUserDao{
    
    protected static final String USER = "username,password,authrity";
    
    protected static final String INSERT_SQL = "insert into " + TableContants.USERTABLE 
            + "(" + USER + ")" + " values(?,?,?)";
    
    protected static final String SELECT_SQL = "select * from " + TableContants.USERTABLE + " where username = ? and password = ?";

    /**
     * 用户注册
     * @param user
     * @return
     */
    @Override
        } else {
            // 验证码错误,设置错误提示信息,页面转发到登录页面
            request.setAttribute("message", "验证码错误!");  // 验证失败
            request.getRequestDispatcher("login.jsp").forward(request, response);
        }
    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doPost(request,response);
    }
}

/**
 * 名片更新
 */
public class UpdateServlet extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        request.setCharacterEncoding("utf-8");
        int id = Integer.parseInt(request.getParameter("id"));
        String name = request.getParameter("name");
        String tel = request.getParameter("tel");
        String address = request.getParameter("address");
        String email = request.getParameter("email");
        int userId = Integer.parseInt(request.getParameter("userId"));
        int isDelete = Integer.parseInt(request.getParameter("isDelete"));
        Card card = new Card(id,name,tel,address,email,userId,isDelete);
        CardDao cardDao = new CardDao();
        int n = cardDao.update(card);
        if (n > 0) {
            request.setAttribute("message","更新成功");
            request.getRequestDispatcher("list").forward(request,response);
        } else {
            request.setAttribute("message","更新失败");
            request.getRequestDispatcher("list").forward(request,response);
        }
    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doPost(request,response);
    }
}


/**
 * 回收站恢复名片
 */
public class RecoverServlet extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        request.setCharacterEncoding("utf-8");
        int id = Integer.parseInt(request.getParameter("id"));
        Card card = new Card();
        card.setId(id);
        TrashDao cardDao = new TrashDao();
        int n = cardDao.recover(card);
        response.setCharacterEncoding("utf-8");
        if (n > 0) {
            response.getWriter().write("恢复成功!");
        } else {
            response.getWriter().write("恢复失败!");
        }
    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doPost(request,response);
    }
}

/**
 * 回收站彻底删除
        Connection conn = null;
        PreparedStatement pstmt = null;
        ResultSet rs = null;
        Card card1 = null;
        try {
            int id = card.getId();
            conn = DBConnection.getConnection();
            pstmt = conn.prepareStatement(SELECT_SQL);
            pstmt.setInt(1, id);
            rs = pstmt.executeQuery();
            while (rs.next()) {
                String name = rs.getString("name");
                String tel = rs.getString("tel");
                String address = rs.getString("address");
                String email = rs.getString("email");
                int userId = rs.getInt("user_id");
                int isDelete = rs.getInt("isdelete");
                card1 = new Card(id, name, tel, address, email, userId, isDelete);
            }
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            DBConnection.closeDB(conn, pstmt, rs);
        }
        return card1;
    }

    /**
     * 更新名片记录
     * @param card
     * @return
     */
    @Override
    public int update(Card card)  {
        Connection conn = null;
        PreparedStatement pstmt = null;
        ResultSet rs = null;
        int row = 0;
        try {
            conn = DBConnection.getConnection();
            pstmt = conn.prepareStatement(UPDATE_SQL);
            pstmt.setString(1,card.getName());
            pstmt.setString(2,card.getTel());
            pstmt.setString(3,card.getAddress());
            pstmt.setString(4,card.getEmail());
    }   
}

/**
 * 卡片记录模糊筛选
 */
public class SelectServlet extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        request.setCharacterEncoding("utf-8");
        String name = request.getParameter("name");
        String tel = request.getParameter("tel");
        String address = request.getParameter("address");
        String email = request.getParameter("email");
        Card card = new Card(0,name,tel,address,email,0,0);
        CardDao cardDao = new CardDao();
        HttpSession session = request.getSession();
        List<Card> cardList = cardDao.selectCard(card,session);
        request.setAttribute("cards",cardList);  // 将list放入request域S
        request.getRequestDispatcher("list.jsp").forward(request,response);
    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doPost(request,response);
    }
}

        user.setId(id);
        UserDao userDao = new UserDao();
        int n = userDao.reset(user);
        response.setCharacterEncoding("utf-8");
        if (n > 0) {
            response.getWriter().write("重置成功!");
        } else {
            response.getWriter().write("重置失败!");
        }
    }
}

/**
 * 查询全部card数据
 */
public class ListServlet extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        HttpSession session = request.getSession();
        CardDao cardDao = new CardDao();
        List<Card> cards = cardDao.findAll(session);
        request.setAttribute("cards",cards);  // 将list放入request域
        request.getRequestDispatcher("list.jsp").forward(request,response); // 跳转到list页面显示数据
    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doPost(request,response);
    }
}

        String checkCode = request.getParameter("checkcode").toUpperCase(); // 输入验证码不区分大小写
        String remeberMe = request.getParameter("rememberMe");
        HttpSession session = request.getSession();
        String realCode = (String) session.getAttribute("realCode");  // 获取session域中验证码
        String passwordMd5 = MD5Util.MD5(password);  // 加密后的密码
        User user = new User();
        user.setUsername(username);
        user.setPassword(passwordMd5);
        UserDao userDao = new UserDao();
        User user1 = userDao.login(user);
        if (checkCode.equals(realCode)) {
            if (user1 != null) {
                session.setAttribute("userId", user1.getId());
                session.setAttribute("user", user1);
                session.setAttribute("username", user1.getUsername());
                if (user1.getUsername().equals("admin")) {  
                    // 如果登录用户是管理员,则页面跳转到管理员管理页面
                    session.setAttribute("userType","1");
                    response.sendRedirect("frame");
                } else {
                    // 否则跳转到用户管理页面
                    session.setAttribute("userType","2");
                    response.sendRedirect("frame");
                }
            } else {
                // 密码错误,设置错误提示信息,页面转发到登录页面
                request.setAttribute("message", "用户名或密码错误!");  // 验证失败
                request.getRequestDispatcher("login.jsp").forward(request, response);
            }
        } else {
            // 验证码错误,设置错误提示信息,页面转发到登录页面
            request.setAttribute("message", "验证码错误!");  // 验证失败
            request.getRequestDispatcher("login.jsp").forward(request, response);
        }
    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doPost(request,response);
    }
}

        if (!card.getEmail().equals("")) {
            s+= " and email like'%" + card.getEmail() + "%'";
        }
        String sql = "select * from tb_card WHERE  user_id=? and isdelete=0 and";
        try {
            sql += s;
            conn = DBConnection.getConnection();
            pstmt = conn.prepareStatement(sql);
            pstmt.setInt(1,userId1);
            rs = pstmt.executeQuery();
            while (rs.next()) {
                int id = rs.getInt("id");
                String name = rs.getString("name");
                String tel = rs.getString("tel");
                String address = rs.getString("address");
                String email = rs.getString("email");
                int userId = rs.getInt("user_id");
                int isDelete = rs.getInt("isdelete");
                Card card1 = new Card(id,name,tel,address,email,userId,isDelete);
                cards.add(card1);
            }

        } catch(SQLException e) {
            e.printStackTrace();
        } finally {
            DBConnection.closeDB(conn,pstmt,rs);
        }
        return cards;
    }
}

public class UserDao implements IUserDao{
    
    protected static final String USER = "username,password,authrity";
    
            s+=" and tel like '%" + card.getTel() + "'";
        }
        if (!card.getAddress().equals("")) {
            s+= " and address like'%" + card.getAddress()+"%'";
        }
        if (!card.getEmail().equals("")) {
            s+= " and email like'%" + card.getEmail() + "%'";
        }
        String sql = "select * from tb_card WHERE  user_id=? and isdelete=0 and";
        try {
            sql += s;
            conn = DBConnection.getConnection();
            pstmt = conn.prepareStatement(sql);
            pstmt.setInt(1,userId1);
            rs = pstmt.executeQuery();
            while (rs.next()) {
                int id = rs.getInt("id");
                String name = rs.getString("name");
                String tel = rs.getString("tel");
                String address = rs.getString("address");
                String email = rs.getString("email");
                int userId = rs.getInt("user_id");
                int isDelete = rs.getInt("isdelete");
                Card card1 = new Card(id,name,tel,address,email,userId,isDelete);
                cards.add(card1);
            }

        } catch(SQLException e) {
            e.printStackTrace();
        } finally {
            DBConnection.closeDB(conn,pstmt,rs);
        }
        return cards;
    }
}

        String email = request.getParameter("email");
        int userId = Integer.parseInt(request.getParameter("userId"));
        int isDelete = Integer.parseInt(request.getParameter("isDelete"));
        Card card = new Card(id,name,tel,address,email,userId,isDelete);
        CardDao cardDao = new CardDao();
        int n = cardDao.update(card);
        if (n > 0) {
            request.setAttribute("message","更新成功");
            request.getRequestDispatcher("list").forward(request,response);
        } else {
            request.setAttribute("message","更新失败");
            request.getRequestDispatcher("list").forward(request,response);
        }
    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doPost(request,response);
    }
}

/**
 * 批量单个删除
 */
public class DeleteServlet extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        request.setCharacterEncoding("utf-8");
//        int id = Integer.parseInt(request.getParameter("id"));
        String ids = request.getParameter("id");
        CardDao cardDao = new CardDao();
        Card card = new Card();
        int n = 0;
        if (ids.contains("-")) {
            String[] id = ids.split("-");
            for (String s : id) {
                card.setId(Integer.parseInt(s));
                n += cardDao.remove(card);
            }
        } else {
            card.setId(Integer.parseInt(ids));
            n = cardDao.remove(card);
        }
        response.setCharacterEncoding("utf-8");
        if (n > 0) {
            response.getWriter().write("删除成功!");

/**
 * 回收站恢复名片
 */
public class RecoverServlet extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        request.setCharacterEncoding("utf-8");
        int id = Integer.parseInt(request.getParameter("id"));
        Card card = new Card();
        card.setId(id);
        TrashDao cardDao = new TrashDao();
        int n = cardDao.recover(card);
        response.setCharacterEncoding("utf-8");
        if (n > 0) {
            response.getWriter().write("恢复成功!");
        } else {
            response.getWriter().write("恢复失败!");
        }
    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doPost(request,response);
    }
}

/**
 * 回收站彻底删除
 */
public class DelTrashServlet extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        request.setCharacterEncoding("utf-8");
        int id = Integer.parseInt(request.getParameter("id"));
        Card card = new Card();
        card.setId(id);
        TrashDao trashDao = new TrashDao();

请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述

  • 8
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值