学生管理系统

学生管理系统

在这里插入图片描述

步骤:

  1. 先写 login.jsp , 并且搭配一个LoginServlet 去获取登录信息。
  2. 在数据库中创建用户表, 里面只要有id , username 和 password
  3. 创建UserDao, 定义登录的方法
 	/**
     * 该dao定义了对用户表的访问规则
     */
        public interface UserDao {

         /**
         * 这里简单就返回一个Boolean类型, 成功或者失败即可。
         * ​
         * 但是开发的时候,登录的方法,一旦成功。这里应该返回该用户的个人信息
         * @param userName 
         * @param password
         * ​
         * @return true : 登录成功, false : 登录失败。
         */
         boolean login(String userName , String password);
            }
  1. 创建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;
		}
	}
  1. 在LoginServlet里面访问UserDao, 判断登录结果。 以区分对待
  2. 创建stu_list.jsp , 让登录成功的时候跳转过去。
  3. 创建学生表 , 里面字段随意。
  4. 定义学生的Dao . StuDao
public interface StuDao {
/**
* 查询出来所有的学生信息
* @return List集合
*/
	List<Student> findAll();
}
  1. 对上面定义的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;
   		}
   	} 
  1. 在登录成功的时候,完成三件事情。
  2. 查询所有的学生。
1. 把这个所有的学生集合存储到作用域中。
2. 跳转到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("用户名或者密码错误!");
	}
}
  1. 在stu_list.jsp中,取出域中的集合,然后使用c标签 去遍历集合。
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
    
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>学生管理系统</title>
</head>
<body>
		<br>学生列表<br>
		
		<table border="1" width="700">
			<tr>
				<td>编号</td>
				<td>姓名</td>
				<td>年龄</td>
				<td>性别</td>
				<td>住址</td>
			</tr>
			
			<c:forEach items="${list }" var="stu">
			<tr>
				<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>
		</table>
</body>
</html>
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章