版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/amy260231120/article/details/85088448
##学生信息管理系统
- 需求分析
-
先写 login.jsp , 并且搭配一个LoginServlet 去获取登录信息。
-
创建用户表, 里面只要有id , username 和 password
-
创建UserDao, 定义登录的方法
/**
-
该dao定义了对用户表的访问规则
*/
public interface UserDao {/**
- 这里简单就返回一个Boolean类型, 成功或者失败即可。
- 但是开发的时候,登录的方法,一旦成功。这里应该返回该用户的个人信息
- @param userName
- @param password
- @return true : 登录成功, false : 登录失败。
*/
boolean login(String userName , String password);
}
- 这里简单就返回一个Boolean类型, 成功或者失败即可。
-
-
创建UserDaoImpl , 实现刚才定义的登录方法。
public class UserDaoImpl implements UserDao { @Override public boolean login(String userName , String password) { Connection conn = null; PreparedStatement ps = null; ResultSet rs = null; try { //1. 得到连接对象 conn = JDBCUtil.getConn(); String sql = "select * from t_user where username=? and password=?"; //2. 创建ps对象 ps = conn.prepareStatement(sql); ps.setString(1, userName); ps.setString(2, password); //3. 开始执行。 rs = ps.executeQuery(); //如果能够成功移到下一条记录,那么表明有这个用户。 return rs.next(); } catch (SQLException e) { e.printStackTrace(); }finally { JDBCUtil.release(conn, ps, rs); } return false; } }
-
在LoginServlet里面访问UserDao, 判断登录结果。 以区分对待
-
创建stu_list.jsp , 让登录成功的时候跳转过去。
-
创建学生表 , 里面字段随意。
-
定义学生的Dao . StuDao
public interface StuDao { /** * 查询出来所有的学生信息 * @return List集合 */ List<Student> findAll(); }
-
对上面定义的StuDao 做出实现 StuDaoImpl
public class StuDaoImpl implements StuDao {
@Override public List<Student> findAll() { List<Student> list = new ArrayList<Student>(); Connection conn = null; PreparedStatement ps = null; ResultSet rs = null; try { //1. 得到连接对象 conn = JDBCUtil.getConn(); String sql = "select * from t_stu"; ps = conn.prepareStatement(sql); rs = ps.executeQuery();
//数据多了,用对象装, 对象也多了呢? 用集合装。
while(rs.next()){ //10 次 ,10个学生Student stu = new Student(); stu.setId(rs.getInt("id")); stu.setAge(rs.getInt("age")); stu.setName(rs.getString("name")); stu.setGender(rs.getString("gender")); stu.setAddress(rs.getString("address")); list.add(stu); } } catch (SQLException e) { e.printStackTrace(); }finally { JDBCUtil.release(conn, ps, rs); } return list; }
}
-
在登录成功的时候,完成三件事情。
-
查询所有的学生
-
把这个所有的学生集合存储到作用域中。
-
跳转到stu_list.jsp
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //提交的数据有可能有中文, 怎么处理。 request.setCharacterEncoding("UTF-8"); response.setContentType("text/html;charset=utf-8"); //1. 获取客户端提交的信息 String userName = request.getParameter("username"); String password = request.getParameter("password"); //2. 去访问dao , 看看是否满足登录。 UserDao dao = new UserDaoImpl(); boolean isSuccess = dao.login(userName, password); //3. 针对dao的返回结果,做出响应 if(isSuccess){ //response.getWriter().write("登录成功."); //1. 查询出来所有的学生信息。 StuDao stuDao = new StuDaoImpl(); List<Student> list = stuDao.findAll(); //2. 先把这个集合存到作用域中。 request.getSession().setAttribute("list", list); //2. 重定向 response.sendRedirect("stu_list.jsp"); }else{ response.getWriter().write("用户名或者密码错误!"); }
}
-
-
在stu_list.jsp中,取出域中的集合,然后使用c标签 去遍历集合。
<table border="1" width="700"> <tr align="center"> <td>编号</td> <td>姓名</td> <td>年龄</td> <td>性别</td> <td>住址</td> <td>操作</td> </tr> <c:forEach items="${list }" var="stu"> <tr align="center"> <td>${stu.id }</td> <td>${stu.name }</td> <td>${stu.age }</td> <td>${stu.gender }</td> <td>${stu.address }</td> <td><a href="#">更新</a> <a href="#">删除</a></td> </tr> </c:forEach>
文章来源: 学生信息管理系统 jsp servlet