基于javaweb+mysql的jsp+servlet网上名片通讯录管理系统(java+servlet+jsp+bootstrap+mysql)
私信源码获取及调试交流
运行环境
Java≥8、MySQL≥5.7、Tomcat≥8
开发工具
eclipse/idea/myeclipse/sts等均可配置运行
适用
课程设计,大作业,毕业设计,项目练习,学习演示等
功能说明
基于javaweb的JSP+Servlet网上名片通讯录管理系统(java+servlet+jsp+bootstrap+mysql)
管理员:
admin 123456
用户:
user1 123456
user2 123456
*不同用户只能对自己名片进行操作
Java web 期末课程设计–名片管理系统
-
Jsp+Servlet+JavaBean+Jdbc+DAO+MySQL+Bootstrap+jQuey。
-
其中也有一些不是很好的操作,譬如页面嵌套了iframe,其实应有更好的解决方案。
-
其中也牵扯对于ajax、EL表达式、JSTL、JSON等的应用
-
主要实现功能:
用户注册登录(注册时根据用户名检查用户是否存在)
不同用户只能对自己名片进行操作
名片增删(放入回收站)改查
批量勾选删除
四个字段的模糊查询(后端拼这个sql觉得真tm zz啊)
回收站管理(彻底删除名片、恢复删除名片)
用户权限管理(admin用户最起码得能管理其他普通用户吧)
admin可实现对普通用户帐号的密码重置与删除, 普通用户可自主更改密码 (由于本人太懒,所以只实现了密码重置与删除用户)
未登录用户控制(登录都没登录,总不能直接访问到页面吧)
密码md5加密(密码不能明文存储吧)
登录图片验证码(可点击图片刷新)
-
待实现功能:
RememberMe
分页查询(是在懒得改了)
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","名片插入失败!");
}
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doPost(request,response);
}
}
/**
* 卡片记录模糊筛选
*/
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);
}
* 批量单个删除
*/
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("删除成功!");
} else {
response.getWriter().write("删除失败!");
}
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doPost(request,response);
}
}
/**
* 名片添加
*/
public class AddServlet extends HttpServlet {
} 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());
pstmt.setInt(5, card.getUserId());
pstmt.setInt(6,card.getId());
row = pstmt.executeUpdate();
}catch (SQLException e) {
e.printStackTrace();
} 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";
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;
String sql = "update tb_user set password = ? where id = ?";
String md5Pwd = MD5Util.MD5(newPwd);
int row = 0;
try {
conn = DBConnection.getConnection();
pstmt = conn.prepareStatement(sql);
pstmt.setString(1,md5Pwd);
pstmt.setInt(2,user.getId());
row = pstmt.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
} finally {
DBConnection.closeDB(conn,pstmt,rs);
}
return row;
}
/**
* 检查用户是否存在
* @param username
* @return
*/
@Override
public int checkUser(String username) {
Connection conn = null;
PreparedStatement pstmt = null;
ResultSet rs = null;
int n = 0;
String sql = "select * from tb_user where username = ?";
try {
conn = DBConnection.getConnection();
public class Login extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.setCharacterEncoding("utf-8");
String username = request.getParameter("username");
String password = request.getParameter("password"); // 明文密码
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", "验证码错误!"); // 验证失败
* 从回收站彻底删除
* @param card
* @return
*/
@Override
public int delete(Card card) {
Connection conn = null;
PreparedStatement pstmt = null;
ResultSet rs = null;
int row = 0;
try {
conn = DBConnection.getConnection();
pstmt = conn.prepareStatement(DELETE_SQL);
pstmt.setInt(1,card.getId());
row = pstmt.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
} finally {
DBConnection.closeDB(conn,pstmt,rs);
}
return row;
}
/**
* 查出回收站全部名片记录
* @param session
* @return
*/
@Override
public List<Card> findAll(HttpSession session) {
Connection conn = null;
PreparedStatement pstmt = null;
ResultSet rs = null;
List<Card> cards = new ArrayList<>();
String LIST_SQL = "select * from tb_card where user_id=" + session.getAttribute("userId") + " and isdelete = 1";
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 {
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);
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("删除成功!");
} else {
response.getWriter().write("删除失败!");
}
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doPost(request,response);
}
}
/**
* 名片添加
public class Register extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String username = request.getParameter("username");
String password = request.getParameter("password");
int authrity = Integer.parseInt(request.getParameter("authrity"));
String passwordMd5 = MD5Util.MD5(password); // MD5加密后的密码
User user = new User(username,passwordMd5,authrity);
UserDao userDao = new UserDao();
int n = userDao.insertUser(user);
if (n > 0) {
response.sendRedirect("login.jsp");
} else {
request.setAttribute("message", "注册失败!");
}
}
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 {
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();
int n = trashDao.delete(card);
response.setCharacterEncoding("utf-8");
if (n > 0) {
response.getWriter().write("删除成功!");
} else {
response.getWriter().write("删除失败!");
}
return cards;
}
/**
* 将回收站数据恢复
* @param card
* @return
*/
@Override
public int recover(Card card) {
Connection conn = null;
PreparedStatement pstmt = null;
ResultSet rs = null;
int row = 0;
try {
conn = DBConnection.getConnection();
pstmt = conn.prepareStatement(RECOVER_SQL);
pstmt.setInt(1,card.getId());
row = pstmt.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
} finally {
DBConnection.closeDB(conn,pstmt,rs);
}
return row;
}
/**
* 模糊查询回收站名片数据
* @param card
* @param session
* @return
*/
@Override
public List<Card> selectTrash(Card card, HttpSession session) {
Connection conn = null;
PreparedStatement pstmt = null;
ResultSet rs = null;
List<Card> cards = new ArrayList<>();
int userId1 = (int) session.getAttribute("userId");
String s = " 1 = 1";
if (!card.getName().equals("")) {
s+=" and name like'%" + card.getName()+"%'";
}
* @return
*/
@Override
public Card find(Card card) {
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();
User user1 = null;
try {
conn = DBConnection.getConnection();
pstmt = conn.prepareStatement(SELECT_SQL);
pstmt.setString(1, user.getUsername());
pstmt.setString(2, user.getPassword());
rs = pstmt.executeQuery();
while (rs.next()) { // 根据用户名和密码从数据库查询用户,若存在,则将用户返回
user1 = new User();
user1.setId(rs.getInt("id"));
user1.setUsername(rs.getString("username"));
user1.setPassword(rs.getString("password"));
user1.setAuthrity(rs.getInt("authrity"));
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
DBConnection.closeDB(conn, pstmt, rs);
}
return user1;
}
/**
* 查询全部用户
* @param session
* @return
*/
@Override
public List<User> findAll(HttpSession session) {
Connection conn = null;
PreparedStatement pstmt = null;
ResultSet rs = null;
List<User> users = new ArrayList<>();
// System.out.println(session.getAttribute("userId"));
String LIST_SQL = "select * from tb_user ";
// 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 username = rs.getString("username");
String password = rs.getString("password");
User user = new User(id,username,password);
users.add(user);
}
} catch (SQLException e) {
/**
* 用户注册
* @param user
* @return
*/
@Override
public int insertUser(User user) {
Connection conn = null;
PreparedStatement pstmt = null;
ResultSet rs = null;
int row = 0;
try {
conn = DBConnection.getConnection();
pstmt = conn.prepareStatement(INSERT_SQL);
pstmt.setString(1,user.getUsername());
pstmt.setString(2,user.getPassword());
pstmt.setInt(3,user.getAuthrity());
row = pstmt.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();;
} finally {
DBConnection.closeDB(conn,pstmt,rs);
}
return row;
}
/**
* 用户登陆
* @param user
* @return
*/
@Override
public User login(User user) {
Connection conn = null;
PreparedStatement pstmt = null;
ResultSet rs = null;
User user1 = null;
try {
conn = DBConnection.getConnection();
pstmt = conn.prepareStatement(SELECT_SQL);
pstmt.setString(1, user.getUsername());
pstmt.setString(2, user.getPassword());
rs = pstmt.executeQuery();
while (rs.next()) { // 根据用户名和密码从数据库查询用户,若存在,则将用户返回
user1 = new User();
user1.setId(rs.getInt("id"));
user1.setUsername(rs.getString("username"));
int authrity = Integer.parseInt(request.getParameter("authrity"));
String passwordMd5 = MD5Util.MD5(password); // MD5加密后的密码
User user = new User(username,passwordMd5,authrity);
UserDao userDao = new UserDao();
int n = userDao.insertUser(user);
if (n > 0) {
response.sendRedirect("login.jsp");
} else {
request.setAttribute("message", "注册失败!");
}
}
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);
}
}
row = pstmt.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
} finally {
DBConnection.closeDB(conn,pstmt,rs);
}
return row;
}
/**
* 检查用户是否存在
* @param username
* @return
*/
@Override
public int checkUser(String username) {
Connection conn = null;
PreparedStatement pstmt = null;
ResultSet rs = null;
int n = 0;
String sql = "select * from tb_user where username = ?";
try {
conn = DBConnection.getConnection();
pstmt = conn.prepareStatement(sql);
pstmt.setString(1,username);
rs = pstmt.executeQuery();
if (rs.next()) {
n = 1;
}
}catch (SQLException e) {
e.printStackTrace();
} finally {
DBConnection.closeDB(conn,pstmt,rs);
}
return n;
}
}
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","名片插入失败!");
}
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doPost(request,response);
}
}