
UserServlet 类使用 DispatcherServlet 工具类。
@WebServlet("/UserServlet/*")public class UserServlet extends DispatcherServlet {public String login(String username, String password, String code, HttpServletRequest request, HttpServletResponse response) {String sessioCode = request.getSession().getAttribute("code").toString();if(sessioCode.equalsIgnoreCase(code)){if("admin".equals(username) && "123".equals(password)){request.getSession().setAttribute("username",username);return ConstUtils.REDIRECT + ":EmpServlet?action=listEmp";}else{try {response.getWriter().write("用户名或密码错,<a href='index.jsp'>登录</a>");} catch (IOException e) {e.printStackTrace();}}}else{try {response.getWriter().write("验证码有误,重新<a href='index.jsp'>登录</a>");} catch (IOException e) {e.printStackTrace();}}return null;}public String logout(HttpServletRequest request) {request.getSession().invalidate();return ConstUtils.REDIRECT + ":index.jsp";}}
注意登陆、登出的响应要做相应更改。
// 登陆<form method="post" action="UserServlet/login">用户名:<input type="text" name="username" value="admin"> <br>密码:<input type="text" name="password" value="123"> <br>验证码:<input type="text" name="code"> <img src="CodeServlet?action=getCode"><br><input type="submit" value="登陆"></form>// 登出<a href="UserServlet/logout">登出</a>
分页功能。
基本步骤。
写实体类,定义页码、每页个数、数据总个数、总页数,每页数据。
数据库中查询每页数据、数据总个数,计算出总页数。
将实体类存储在域中,页面拿到实体类并做页面逻辑。
部分代码。
// 实体类@Datapublic class Page {private Integer page = 1;private Integer pageSize = 10;private Integer totalNum;private Integer totalPage;private List data;}
// DaoUtils 工具类// 查询数据个数public static int commonQueryTotal(String sql) {Connection connection = DBUtils.getConnection();PreparedStatement preparedStatement = null;ResultSet resultSet = null;int total = 0;try {preparedStatement = connection.prepareStatement(sql);resultSet = preparedStatement.executeQuery();if (resultSet.next()) {total = resultSet.getInt(1);}} catch (SQLException e) {e.printStackTrace();}return total;}
// dao 类//class EmpDaoImpl implements IEmpDao// 查询每页数据@Overridepublic List<Emp> getEmpListPage(Integer pageStart, Integer pageSize) {String sql = "select * from t_user limit ?,?";return DaoUtils.commonQueryPage(sql, Emp.class, pageStart, pageSize);}// 查询数据总数@Overridepublic int getEmpTotal() {String sql = "select count(1) from t_user";return DaoUtils.commonQueryTotal(sql);}
// 业务类// class EmpServiceImpl implements IEmpService@Overridepublic List<Emp> getEmpListPage(Page page) {return empDao.getEmpListPage((page.getPage() -1) * page.getPageSize(), page.getPageSize());}@Overridepublic int getEmpTotalNum() {return empDao.getEmpTotal();}// 计算总页数@Overridepublic int getEmpTotalPage(Page page) {int num = getEmpTotalNum();if (num % page.getPageSize() == 0) {return num / page.getPageSize();} else {return num / page.getPageSize() + 1;}}
//class EmpServlet extends HttpServletif ("listEmp".equals(action)) {// 查询int iPage = 1;// 在 链接中获取页码String sPage = request.getParameter("page");if (sPage != null && sPage.length() > 0) {iPage = Integer.parseInt(sPage);}Page page = new Page();page.setPage(iPage);page.setPageSize(5);page.setTotalNum(empService.getEmpTotalNum());page.setTotalPage(empService.getEmpTotalPage(page));page.setData(empService.getEmpListPage(page));// 在域中存储 pagerequest.setAttribute("page", page);request.getRequestDispatcher("selectListUser.jsp").forward(request, response);}
// 页面逻辑<body>欢迎【${sessionScope.username}】登陆<br><a href="UserServlet/logout">登出</a><a href="addUser.jsp?action=addEmp">添加用户</a><table border="1"><tr><th>id</th><th>用户名</th><th>密码</th><th>年龄</th><th>性别</th><th>邮箱</th><th>生日</th><th>编辑</th></tr><c:forEach items="${page.data}" var="emp"><tr><td>${emp.id}</td><td>${emp.username}</td><td>${emp.password}</td><td>${emp.age}</td><td>${emp.sex == 1 ? "男" : "女"}</td><td>${emp.email}</td><td>${emp.birthday}</td><td><a href="addUser.jsp?action=updateEmp&id=${emp.id}">修改</a><a href="EmpServlet?action=deleteEmp&id=${emp.id}&page=${page.page}">删除</a></td></tr></c:forEach></table><span>总页数:${page.totalPage}</span><br><span>总个数:${page.totalNum}</span><br><span>当前页</span>:${page.page}</span><br><a href="/EmpServlet?action=listEmp&page=1">首页</a><c:if test="${page.page > 1}"><a href="/EmpServlet?action=listEmp&page=${page.page - 1}">上一页</a></c:if><c:if test="${page.page < page.totalPage - 1}"><a href="/EmpServlet?action=listEmp&page=${page.page + 1}">下一页</a></c:if><a href="/EmpServlet?action=listEmp&page=${page.totalPage}">尾页</a></body>
文章转载自java小小小小栈,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




