项目简述:

基于java web实现学生卡管理系统,用户包括学生和学生处,分别实现以下功能。

学生:

1.对本人登录密码的修改

2.申请补办学生卡

3.查看学生卡补办状态

学生处:

1.对学生信息的管理(包括对信息的增删改查)

2.受理学生证的补办申请

3.查询学生证补办记录


一、项目实现思路

在此次javaweb的项目中,我采用mysql数据库对数据进行管理,前端界面采用JSP编写,利用JavaBean实现用户与数据库之间的映射。难点在于实现学生端与学生处端的信息互动,说到底都是利用嵌入式sql语言对mysql数据库的读取、更新与在前端页面显示的问题。编写代码期间,还设置了session变量,将页面中所涉及并且需要利用的用户变量储存在session变量中。


二、数据库设计

该项目基于mysql数据库,在mysql中创建studentcard数据库,并且在studentcard中建立admin(学生处)、student(学生)、apply_info(申请信息)、log(补办日志)四张表。

数据库操作代码:

  1. Connection conn = null;
  2. Statement st = null;
  3. ResultSet rs = null;
  4. public BaseDAO()
  5. {
  6. try{
  7. Class.forName("com.mysql.jdbc.Driver");
  8. String url = "jdbc:mysql://localhost:3306/studentcard";// 连接url字符串
  9. String user = "root";// 数据库用户名
  10. String password = "";// 数据库密码
  11. this.conn=DriverManager.getConnection(url,user,password);
  12. this.st=this.conn.createStatement();
  13. this.rs=null;
  14. }catch(Exception ex)
  15. {ex.printStackTrace();
  16. }
  17. }
  18. public String doUpgrade(String sql)
  19. { //数据库更新操作
  20. try{
  21. if(this.st!=null)
  22. this.st.executeUpdate(sql);
  23. return "";
  24. }catch(Exception ex)
  25. {
  26. ex.printStackTrace();
  27. return ex.getMessage();
  28. }
  29. }
  30. public ResultSet doQuery(String sql)
  31. { //数据库查询操作
  32. try{
  33. this.rs=this.st.executeQuery(sql);
  34. }catch(Exception ex)
  35. {
  36. ex.printStackTrace();
  37. }
  38. return this.rs;
  39. }

三、功能展示 & 代码

1.登录

  1. //管理员身份验证登录关键代码
  2. sql="select * from admin where id='"+user.getUserId()+"' and password= '"+user.getUserPassword()+"'";
  3. ResultSet rs=db.doQuery(sql);
  4. if( rs.next())
  5. {
  6. String userName = rs.getString("name");
  7. System.out.println("sessionUserName" + userName);
  8. request.getSession().setAttribute("sessionUserId", user.getUserId());
  9. request.getSession().setAttribute("sessionUserName", userName);
  10. user.setPassed(true);
  11. out.print("Success!");
  12. response.sendRedirect("MainIndex.jsp");
  13. }
  14. else
  15. {
  16. out.print("<font color=red>用户名或口令不正确</font><br>");
  17. }

2.查询全部学生信息 & 查询个人学生信息

  1. //查询全部学生信息& 以表格的形式输出 关键代码
  2. ResultSet rs=db.doQuery("select * from student");
  3. out.println("学生信息如下:<br>");
  4. out.println("<table border=1><thead><tr>");
  5. out.println("<th>学号</th><th>姓名</th><th>学院</th><th>专业</th><th>密码</th></tr></thead>");
  6. out.println("<tbody>");
  7. while(rs.next())
  8. {
  9. String id=rs.getString("id");
  10. String un=rs.getString("sname");
  11. String co=rs.getString("college");
  12. String dp=rs.getString("sdept");
  13. String pd=rs.getString("password");
  14. out.println("<tr><td>"+id+"</td>");
  15. out.println("<td>"+un+"</td>");
  16. out.println("<td>"+co+"</td>");
  17. out.println("<td>"+dp+"</td>");
  18. out.println("<td>"+pd+"</td></tr>");
  19. }
  20. out.println("</tbody></table>");

3.学生申请补办学生卡

  1. //学生申请补办学生卡 & 将申请信息插入到apply_info表中
  2. String name=request.getParameter("name");
  3. String id=request.getParameter("id");
  4. String college=request.getParameter("college");
  5. String department=request.getParameter("department");
  6. String userId = session.getAttribute("sessionUserId").toString();
  7. if(name!=null && id!=null && college!=null && department!=null && userId.equals(id))
  8. { String sql="insert into apply_info(id,sname,college,sdept,state) values("+ "'"+ id+"','"+name+"','"+college+"','"+department+"','"+"未补办"+"')";
  9. //System.out.println(sql);
  10. String rs=db.doUpgrade(sql);
  11. out.print("申请成功");
  12. }

4.学生处受理学生卡补办

  1. //完成补办
  2. String id=request.getParameter("id");
  3. String name = request.getParameter("name");
  4. //System.out.println(id);
  5. if(id != null){
  6. String sql = "update apply_info set state = '补办完成' where id='" + id +"'";
  7. //System.out.println(sql);
  8. String rs1 =db.doUpgrade(sql);
  9. String userId = session.getAttribute("sessionUserId").toString();
  10. String userName = session.getAttribute("sessionUserName").toString();
  11. //System.out.println("userId = "+ userId);
  12. //System.out.println("userUserName = "+ userName);
  13. sql="insert into log(id,name,sid,sname) values("+"'"+userId+"'"+",'"+userName+"','"+id+"','"+name+"')";
  14. //System.out.println(sql);
  15. String rs2 = db.doUpgrade(sql);
  16. response.sendRedirect("Repair.jsp");
  17. sql = "delete from apply_info where state = '补办完成'";
  18. String rs3 = db.doUpgrade(sql);
  19. //response.sendRedirect("Repair.jsp");
  20. }

5.学生查看受理状态

  1. //在apply_info表中读数据并且输出到jsp界面中,只能查看当前用户的受理补办状态
  2. String userId = session.getAttribute("sessionUserId").toString();
  3. System.out.println(userId);
  4. String sql = "select * from apply_info where id = '" + userId+ "'";
  5. ResultSet rs=db.doQuery(sql);
  6. if(rs.next()){
  7. String id=rs.getString("id");
  8. String name=rs.getString("sname");
  9. String college=rs.getString("college");
  10. String department = rs.getString("sdept");
  11. String state = rs.getString("state");
  12. out.print("您的补办信息:<br>");
  13. out.print("........................................................................<br>");
  14. out.print("学号:"+id+"<br/>");
  15. out.print("姓名:"+name+"<br/>");
  16. out.print("学院:"+college+"<br/>");
  17. out.print("专业:" + department + "<br/>");
  18. out.print("状态:" + state + "<br>");
  19. out.print("........................................................................");
  20. }else{
  21. out.print("无申请,你看什么看!");
  22. }

6.学生处查看受理日志

  1. //从log表中读出所有的补办日志输出到JSP页面中
  2. ResultSet rs=db.doQuery("select * from log");
  3. out.println("发放记录如下:<br>");
  4. out.println("..............................................................................................<br>");
  5. while(rs.next())
  6. {
  7. String userId=rs.getString("id");
  8. String userName=rs.getString("name");
  9. String sid=rs.getString("sid");
  10. String sname=rs.getString("sname");
  11. //String pd=rs.getString("password");
  12. out.print("管理员id:" + userId + " " );
  13. out.println("管理员name:" + userName + "<br>");
  14. out.print("学生id:" + sid + " ");
  15. out.println("学生name:" + sname + "<br>");
  16. out.println("............................................................................................." + "<br>" );
  17. }

对于其他的学生信息增、删、改、查功能不在一一赘述,代码部分与上述功能代码相似。

四、项目地址链接

项目链接请点击:Student_Card_System

web项目_学生证管理系统的更多相关文章

  1. Java Web项目 慧心人力资源管理系统

    题目:慧心人力资源管理系统 文档下载:https://download.csdn.net/download/weixin_44893902/16336711 完整项目下载:https://downlo ...

  2. 第一个Java web项目:员工管理系统

    要求: 做一个登陆页面,实现登录,用户名和密码都是admin,登录成功后,用session记录用户名,登录失败,请提示失败原因. 做一个简单的管理系统,实现注册,修改,查询,删除 员工的功能,注册内容 ...

  3. Java Web项目_部门内部留言板

    t_user用户登录数据表 用户登录界面 JSP开发 通过post请求提交给Servlet处理 Servlet处理连接数据库的处理 登陆成功服务器跳转RequestDispatcher到main.js ...

  4. java web 项目 图书管理系统的设计与实现

     java web 项目 图书管理系统的设计与实现

  5. 简易商品信息管理系统——首个Web项目

    正文之前 在学习了一段时间的Java Web的内容之后,当然需要有个项目来练练手,我相信大多数人的首选项目都是信息管理系统吧,所以我选择了商品信息管理系统 目前项目源码已全部上传至GitHub,欢迎大 ...

  6. 【Java Web】简易商品信息管理系统——首个Web项目

    正文之前 在学习了一段时间的Java Web的内容之后,当然需要有个项目来练练手,我相信大多数人的首选项目都是信息管理系统吧,所以我选择了商品信息管理系统 目前项目源码已全部上传至GitHub,欢迎大 ...

  7. web项目自定义路由_实现静态资源URL控制

    前言: IIS会默认把:图片.JS.HTML.CSS这些文件当成静态资源处理,为了减少服务器压力,默认这些静态资源是不走URL路由规则控制的. 作为小白及初学者,本人对这些了解甚少,补充基础知识吧: ...

  8. Spring_day01--注入对象类型属性(重点)_P名称空间注入_注入复杂类型属性_IOC和DI区别_Spring整合web项目原理

    注入对象类型属性(重点) Action要new一个service对象,Service中又要new一个Dao对象,现在把new的过程交给spring来操作 1 创建service类和dao类 (1)在s ...

  9. Maven创建web项目:SpringMVC+Mybatis 【转】

    IDEA14创建Maven管理的SpringMVC+Mybatis,web项目 项目构建步骤 1.File->New->Project 勾选Create from archetype 点击 ...

随机推荐

  1. Solving the SQL Server Multiple Cascade Path Issue with a Trigger (转载)

    Problem I am trying to use the ON DELETE CASCADE option when creating a foreign key on my database, ...

  2. 判断Exception类中是否有InnerException属性

    public static class ExceptionExtend { /// <summary> /// 利用反射来判断对象是否包含某个属性 /// </summary> ...

  3. 【redis】redis的雪崩和穿透

    1.什么是缓存穿透 一般的缓存系统,都是按照key值去缓存查询,如果不存在对应的value,就应该去DB中查找 .这个时候,如果请求的并发量很大,就会对后端的DB系统造成很大的压力.这就叫做缓存穿透. ...

  4. Linux命令网络命令之netstat

    Linux命令网络命令之netstat 这一年感觉到技术上成长到了一个瓶颈.可能是感觉自己学的东西足够应付目前的工作了,因此精神上就产生了懈怠,不思进取.到了一个技术氛围不错的公司,有许多专业能力很不 ...

  5. 阿里八八Alpha阶段Scrum(3/12)

    今日进度 叶文滔: 实现了悬浮按钮的拖动. 问题困难:第三方库调入不成功,多级悬浮按钮的实现仍未完成. 刘晓: 完成注册.修改密码的UI部分,创建了注册Activity,修改密码Activity. 问 ...

  6. 【Alpha】团队项目测试报告与用户反馈

    测试报告 一 . WEB端测试 测试页面 测试功能/界面 功能/界面简述 测试预期效果 测试目的 是否完成(Y/N) Internet Explorer Google chrome Firefox S ...

  7. 《JavaScript高级程序设计》读书笔记--ECMAScript中所有函数的参数都是按值传递的

    ECMAScript中所有函数的参数都是按值传递的.也就是说把函数外部的值复制给函数内部的参数(内部参数的值的修改不影响实参的值). 基本类型变量的复制: 基本类型变量的复制,仅仅是值复制,num1和 ...

  8. 将Vue-cli搭建的项目改造成多页面应用时对项目结构和配置的调整

    创建项目 首先初始化一个Vue项目模板,之后在模板下载时候会弹出如下配置选项 vue init webpack demo 配置好后按下回车就构建完成了Vue脚手架,之后cd进入项目,并且进行node模 ...

  9. [C++] set与multiset的常用函数

    参考资料:[C++ STL]Set和Multiset set 与 multiset set不允许重复 multiset允许重复 例: set : 1 2 3 4 5 6 multiset : 1 2 ...

  10. Thinkphp5.0分页和跳页

    后台查询商品或者会员量需要用到分页展示列表,当页数比较多的时候为了体高用户体验度,需要添加一个跳页也就是手动输入页码数进行快速跳转指定页面.由于手动编写分页比较麻烦,又想使用TP5自带的分页,但是TP ...