学生信息管理系统 jsp servlet

匿名 (未验证) 提交于 2019-12-02 23:03:14
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/amy260231120/article/details/85088448

##学生信息管理系统

  • 需求分析

  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);
          }
  4. 创建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;  	}    } 
  5. 在LoginServlet里面访问UserDao, 判断登录结果。 以区分对待

  6. 创建stu_list.jsp , 让登录成功的时候跳转过去。

  7. 创建学生表 , 里面字段随意。

  8. 定义学生的Dao . StuDao

     public interface StuDao {   	/**  	 * 查询出来所有的学生信息  	 * @return List集合  	 */  	List<Student> findAll();  } 
  9. 对上面定义的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;  } 

    }

  10. 在登录成功的时候,完成三件事情。

  11. 查询所有的学生

    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("用户名或者密码错误!");  } 

      }

  12. 在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> 
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!