在名为joker的数据库中建立一个user1表,内容以下:
javascript
User类用于封装用户信息css
JdbcUtils用于链接数据库:html
public class JdbcUtils { //注册驱动的工具类 private static String url = "jdbc:mysql://localhost:3306/joker?characterEncoding=utf8&useSSL=false&serverTimezone=UTC&rewriteBatchedStatements=true&allowPublicKeyRetrieval=true"; private static String user = "root"; private static String password = "joker666"; private static String dv = "com.mysql.cj.jdbc.Driver"; //注册驱动 static { try { Class.forName(dv); } catch (ClassNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } } //获取链接对象 public static Connection getCon() throws SQLException{ Connection conn = null; conn = (Connection) DriverManager.getConnection(url, user, password); return conn; } //关闭的方法 public static void close(Statement statement,Connection conn){ if(statement !=null){ try { statement.close(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } if(conn !=null){ try { conn.close(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } //关闭的方法 public static void close(PreparedStatement preparedStatement,Connection conn,ResultSet resultSet){ if(preparedStatement !=null){ try { preparedStatement.close(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } if(conn !=null){ try { conn.close(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } if(resultSet!=null){ try { resultSet.close(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } }
UserDAO类用于数据库的插入、查询以及删除(修改没时间写)java
public class UserDAO { //数据库链接对象 public User login(String username,String password) { User u=null; Connection connection =null; PreparedStatement pstmt=null; ResultSet resultSet=null; //赋值 try { connection=JdbcUtils.getCon(); //静态sql语句 String sql = "select * from user1 where name=? and password=?"; pstmt = (PreparedStatement) connection.prepareStatement(sql); pstmt.setString(1, username); pstmt.setString(2, password); resultSet = pstmt.executeQuery(); if(resultSet.next()){ u=new User(); u.setUsername(resultSet.getString("name")); u.setPassword(resultSet.getString("password")); u.setPnumber(resultSet.getString("phonenumber")); u.setSex(resultSet.getString("sex")); u.setEmail(resultSet.getString("email")); u.setHobby(resultSet.getString("hobby")); u.setAddr1(resultSet.getString("addr1")); u.setAddr2(resultSet.getString("addr2")); u.setIntroduce(resultSet.getString("introduce")); System.out.println("登陆成功!"); }else{ System.out.println("用户名或者密码错误!"); } } catch (SQLException e) { e.printStackTrace(); }finally { JdbcUtils.close(pstmt, connection); } return u; } /** * 添加用户 * @param user */ public void addUser(User user) { Connection connection = null; PreparedStatement psmt = null; try { connection = JdbcUtils.getCon(); String sql ="insert into user1(name,password,phonenumber,sex,email,hobby,addr1,addr2,introduce)values(?,?,?,?,?,?,?,?,?);"; psmt = (PreparedStatement) connection.prepareStatement(sql); //运用实体对象进行参数赋值 psmt.setString(1, user.getUsername()); psmt.setString(2,user.getPassword()); psmt.setString(3,user.getPnumber()); psmt.setString(4,user.getSex()); psmt.setString(5,user.getEmail()); psmt.setString(6,user.getHobby()); psmt.setString(7,user.getAddr1()); psmt.setString(8,user.getAddr2()); psmt.setString(9,user.getIntroduce()); psmt.executeUpdate(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); }finally { JdbcUtils.close(psmt, connection); } } /** * 删除用户 * @param name * @return * @throws UnsupportedEncodingException */ public void delUser(String id) throws UnsupportedEncodingException { Connection connection = null; PreparedStatement psmt = null; int i_d; i_d = Integer.parseInt(id); try { connection = JdbcUtils.getCon(); String sql = "delete from user1 where id=?"; psmt = (PreparedStatement) connection.prepareStatement(sql); psmt.setInt(1, i_d); psmt.executeUpdate(); System.out.println("删除成功!"); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); }finally { JdbcUtils.close(psmt, connection); } } /** * 查询用户 * @return */ public ResultSet seleUser() { Connection connection =null; PreparedStatement ps=null; ResultSet resultSet=null; //赋值 try { connection=JdbcUtils.getCon(); //静态sql语句 String sql = "select * from user1"; ps = (PreparedStatement) connection.prepareStatement(sql); resultSet = ps.executeQuery(); } catch (SQLException e) { e.printStackTrace(); } return resultSet; } }
用户点击注册按钮会跳转到此类,在此类将信息进行处理:mysql
/** * Servlet implementation class RegisterServlet */ @WebServlet("/RegisterServlet") public class RegisterServlet extends HttpServlet { private static final long serialVersionUID = 1L; protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doPost(request, response); } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.setCharacterEncoding("utf-8"); response.setContentType("text/html;charset=utf-8"); request.setCharacterEncoding("utf-8"); //得到请求的各项信息 String name=request.getParameter("realname"); String password=request.getParameter("password"); String phonenumber=request.getParameter("phonenumber"); String sex=request.getParameter("sex"); String email=request.getParameter("email"); String[] hobby=request.getParameterValues("hobby"); String hobby1 = ""; int i; String addr1=request.getParameter("addr1"); String addr2=request.getParameter("addr2"); String introduce=request.getParameter("introduce"); //进行“转码”翻译 for(i=0;i<hobby.length;i++) { if(hobby[i] != null) { hobby1 += hobby[i]; } } if(addr1.equals("1")) { addr1 = "河北省"; if(addr2.equals("10")) { addr2 = "承德市"; } if(addr2.equals("11")) { addr2 = "廊坊市"; } if(addr2.equals("12")) { addr2 = "唐山市"; } } if(addr1.equals("2")) { addr1 = "河南省"; if(addr2.equals("20")) { addr2 = "郑州市"; } if(addr2.equals("21")) { addr2 = "开封市"; } if(addr2.equals("22")) { addr2 = "洛阳市"; } } if(addr1.equals("3")) { addr1 = "山东省"; if(addr2.equals("30")) { addr2 = "烟台市"; } if(addr2.equals("31")) { addr2 = "德州市"; } if(addr2.equals("32")) { addr2 = "临沂市"; } } //将信息封装至User类中 User user=new User(); user.setUsername(name); user.setPassword(password); user.setPnumber(phonenumber); user.setSex(sex); user.setEmail(email); user.setHobby(hobby1); user.setAddr1(addr1); user.setAddr2(addr2); user.setIntroduce(introduce); //进行数据库的插入 UserDAO userDAO=new UserDAO(); userDAO.addUser(user); System.out.println("注册成功"); request.getRequestDispatcher("./index.jsp").forward(request, response); } }
用户注册成功后会跳转到登陆界面,当用户点击登陆按钮会跳转到此类,在此类将请求的信息进行处理:sql
/** * Servlet implementation class LoginServlet */ @WebServlet("/LoginServlet") public class LoginServlet extends HttpServlet { private static final long serialVersionUID = 1L; protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doPost(request, response); } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.setCharacterEncoding("utf-8"); response.setContentType("text/html;charset=utf-8"); HttpSession session = request.getSession(); //得到请求信息 String username = request.getParameter("username"); String password = request.getParameter("password"); //判断用户是否存在 UserDAO userDAO=new UserDAO(); User user=userDAO.login(username, password); if(user!=null){ session.setMaxInactiveInterval(1800); session.setAttribute("user", user); //将对象放入session中 response.sendRedirect("./success1.jsp"); }else{ response.sendRedirect("./fail.jsp"); } } }
当管理员在登录的时候会跳转到此类,此类将信息进行处理:数据库
/** * Servlet implementation class ManaloginServelet */ @WebServlet("/ManaloginServelet") public class ManaloginServelet extends HttpServlet { private static final long serialVersionUID = 1L; protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doPost(request, response); } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.setCharacterEncoding("utf-8"); response.setContentType("text/html;charset=utf-8"); HttpSession session = request.getSession(); //得到请求的管理员的用户名和密码 String username = request.getParameter("username"); String password = request.getParameter("password"); //默认内置帐号为admin,密码为123456 if(username.equals("admin") && password.equals("123456")) { UserDAO userDAO=new UserDAO(); ResultSet resultSet = userDAO.seleUser(); //显示第一页的用户信息 request.setAttribute("page", 1); session.setMaxInactiveInterval(1800); //将查询到的用户信息放入session中 session.setAttribute("rs", resultSet); response.sendRedirect("./adminServlet"); System.out.println("管理员登录成功"); } else { response.sendRedirect("./Manafail.jsp"); } } }
当管理员登录成功,会从ManaloginServelet跳转至此类,在此将用户信息分页显示,默认一页显示10人tomcat
/** * Servlet implementation class adminServlet */ @WebServlet("/adminServlet") public class adminServlet extends HttpServlet { private static final long serialVersionUID = 1L; protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doPost(request, response); } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.setCharacterEncoding("utf-8"); listPage listPage=new listPage(); List<User> list = new ArrayList<User>(); int rowCount; //记录总个数 int pageCount; //记录总页数 int beginIndex = 1; //开始的个数 int i = 0; //用做循环 int pageSize = 10; //一页大小 int prePage; //前一页 int nextPage; //后一页 int curPage = 1; //当前页 String strcurPage ; HttpSession session = request.getSession(); ResultSet rs = (ResultSet)session.getAttribute("rs"); session.setAttribute("rs", rs); if(rs != null ) { try { UserDAO userDAO=new UserDAO(); ResultSet resultSet = userDAO.seleUser(); resultSet.last(); rowCount = resultSet.getRow(); // 总个数 pageCount = (int) Math.ceil(rowCount/(pageSize*1.0)); //总页数 strcurPage = request.getParameter("cur"); if(strcurPage != null) { curPage = Integer.parseInt(strcurPage); } //设置上一页 prePage = curPage-1; if(prePage <= 0) prePage = 1; //设置下一页 nextPage = curPage+1; if(nextPage >= pageCount) nextPage = pageCount; beginIndex = (curPage-1)*pageSize+1; //开始指针指向当前页的第一个数据 if (beginIndex <= 0) { //无上一页 beginIndex = 1; } if (resultSet.absolute(beginIndex)) { do { //设置用户信息 User user = new User() ; user.setUserID(beginIndex+i); user.setUser_ID(Integer.parseInt(resultSet.getString("id"))); user.setUsername(resultSet.getString("name")); user.setPassword(resultSet.getString("password")); user.setPnumber(resultSet.getString("phonenumber")); user.setSex(resultSet.getString("sex")); user.setEmail(resultSet.getString("email")); user.setHobby(resultSet.getString("hobby")); user.setAddr1(resultSet.getString("addr1")); user.setAddr2(resultSet.getString("addr2")); user.setIntroduce(resultSet.getString("introduce")); //添加用户信息 list.add(user); i++; if (i == pageSize) { break; } } while (resultSet.next()); } //将信息封装在listPage类中 listPage.setCurPage(curPage); listPage.setPrePage(prePage); listPage.setNextPage(nextPage); listPage.setPageCount(pageCount); listPage.setPageSize(pageSize); listPage.setRowCount(rowCount); listPage.setList(list); request.setAttribute("listPage", listPage); request.getRequestDispatcher("./Manasuccess1.jsp").forward(request, response); } catch (SQLException e) { e.printStackTrace(); } } } }
用于封装用户以及分页信息session
管理员在查看用户信息界面,欲查看用户的介绍界面,会跳转到此类eclipse
/** * Servlet implementation class admin2Servlet */ @WebServlet("/admin2Servlet") public class admin2Servlet extends HttpServlet { private static final long serialVersionUID = 1L; protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doPost(request, response); } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String id; HttpSession session = request.getSession(); ResultSet rs = (ResultSet)session.getAttribute("rs"); Connection connection =null; PreparedStatement ps=null; String introduce = ""; String cur = ""; int i_d; try { //得到请求的id,并转换成int类型 id = request.getParameter("id"); id = java.net.URLDecoder.decode(id,"utf-8"); i_d = Integer.parseInt(id); //得到当前页信息,用于返回 cur = request.getParameter("cur"); cur = java.net.URLDecoder.decode(cur,"utf-8"); session.setAttribute("rs", rs); connection=JdbcUtils.getCon(); //静态sql语句 String sql = "select * from user1 where id=?"; ps = (PreparedStatement) connection.prepareStatement(sql); ps.setInt(1, i_d); rs = ps.executeQuery(); if(rs.next()){ introduce = rs.getString("introduce"); } //将introduce与cur放入request中 request.setAttribute("introduce", introduce); request.setAttribute("cur", cur); request.getRequestDispatcher("./Manasuccess2.jsp").forward(request, response); } catch (Exception e) { e.printStackTrace(); } finally { JdbcUtils.close(ps, connection); } } }
管理员在查看用户信息界面,欲删除某个用户,会跳转到此类
@WebServlet("/Delservlet") public class Delservlet extends HttpServlet { private static final long serialVersionUID = 1L; protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doPost(request, response); } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.setCharacterEncoding("utf-8"); response.setContentType("text/html;charset=utf-8"); HttpSession session = request.getSession(); ResultSet res = (ResultSet)session.getAttribute("rs"); if(res != null){ String id = request.getParameter("id"); String cur = request.getParameter("cur"); id = java.net.URLDecoder.decode(id,"utf-8"); //删除用户信息 UserDAO userDAO=new UserDAO(); userDAO.delUser(id); session.setAttribute("rs", res); request.setAttribute("cur", cur); request.getRequestDispatcher("adminServlet").forward(request, response); }else{ response.sendRedirect("./fail.jsp"); } } }
项目地址:
书写不易,转载请留言!