学生管理-描述文档

有需要参考的可以进入,项目下载地址。
一:功能描述
该项目实现了以下功能:
 页面包括展示信息和管理信息两部分,并且实现了图片验证登录
 通过连接数据库并执行SQL语句实现对数据库的增、删、查、改
 使用DBUtils数据库工具(QueryRunner)
 页面基本美观且合理
 设置了过滤器解决乱码问题,并实现了退出返回主页
下面是部分截图:
1.主页

2.登录界面

3.登录成功
登陆时调用登录doLogin,该Servlet完成相应的逻辑操作(判断用户名、密码、验证码是否为空)、并且调用相应的BaseDao数据库访问层的相应组件,完成登陆校验,然后将结果返回给视图层 ,视图层提供给用户,以界面的形式展示。

4.修改

5.查看

6.添加

7.删除

二:实现方法
①实现该项目涉及的知识有:
HTML,CSS,JavaScript,MySQL数据库,JSP指令,JSP对象,JavaBean,JDBC,EL和JSTL,Servlet,Filter过滤器等最基本的知识。使用了JavaBean+JSP+Servlet开发模型,就是Model+View+Controller,即MVC设计模式。

②主要的思想和方法
• 继承HTTPServlet父类重写 doGet() 和doPost()方法
• 使用request.getParameter(String str); 获取前台(页面)的数据(获取参数)
• 给前台页面设置值用:request.setAttribute(String args, Object obj);
• Jsp重定向,使用的是HttpServletResponese对象中response.sendRedirect(Sting location)方法。是一个响应对象的方法,调用这个方法,表明整个请求已经结束。
• 请求转发,是javax.servlet.RequestDispatcher接口的forward(“”)方法来实现的。
③设计流程:
Servlet -> Service(业务类) -> DAO -> database
当浏览器提交请求到 Tomcat Web 服务器的时候,对应的 Servlet 的doGet/doPost 方法会被调用,接着在 Servlet 中调用 Service类,然后在 Service 类中调用DAO类,最后在 DAO 中访问数据库获取相应的数据。

**④实现该项目我所做的基本步骤:**需求分析,软件设计,编码及实现,美化以及完善。
首先需要搭建数据库,实现学生和老师实体类,这里不做具体描述。
1.数据库操作的基类BaseDao,实现连接、查询、释放资源,下面是部分代码:

try {Class.forName("com.mysql.jdbc.Driver");String url = "jdbc:mysql://localhost:3306/Student";String username = "root";String password = "123";
connection = DriverManager.getConnection(url, username, password);} catch (ClassNotFoundException e) {e.printStackTrace();return false;} catch (SQLException e) {e.printStackTrace();return false;}

2.定义学生操作的接口StudentDao,下面是部分代码:

public interface StudentDao {//获取所有学生信息public List<Student> getAllStudent();//获取指定学生信息public Student getStudentMoreInfo(Student student);//添加学生public int addStudent(Student student);//删除学生public int delStudent(Student student);//修改学生信息public int modifyStudent(Student student);
}

3.实现接口StudentDao,获取所有学生信息部分代码:

List<Student> list = new ArrayList<Student>();String sql = "select `id`,`name`,`gradeId`,`age`,`sex`,`profile` from student ";Object[] params = {};ResultSet rs = this.executeQuerySQL(sql, params);try {while (rs.next()) {Student stu = new Student();stu.setId(rs.getInt("id"));stu.setAge(rs.getInt("age"));stu.setGradeId(rs.getInt("gradeId"));stu.setSex(rs.getString("sex"));stu.setName(rs.getString("name"));stu.setProfile(rs.getString("profile"));list.add(stu);}} catch (SQLException e) {e.printStackTrace();}

下图为查询方法以及步骤:

4. 实现接口StudentDao,获取指定学生信息部分代码:

Student stu = new Student();
String sql = "select `name`,`gradeId`,`age`,`sex`,`profile` from student where `id`=?";
Object[] params = { student.getId() };
ResultSet rs = this.executeQuerySQL(sql, params);
try {while (rs.next()) {stu.setAge(rs.getInt("age"));stu.setGradeId(rs.getInt("gradeId"));stu.setSex(rs.getString("sex"));stu.setName(rs.getString("name"));stu.setProfile(rs.getString("profile"));}
} catch (SQLException e) {e.printStackTrace();
}

5 实现接口StudentDao,添加学生部分代码:

int row = 0;String sql = "insert into student(`id`,`name`,`age`,`sex`,`gradeId`,`profile`) values(?,?,?,?,?,?)";Object[] params = {student.getId(),student.getName(),student.getAge(),student.getSex(),student.getGradeId(),student.getProfile()};row = this.executeUpdateSQL(sql, params);if(row>0){System.out.println("增加学生成功");}else{System.out.println("增加学生失败");}return row;

删除学生和添加学生操作类似,这里不再做具体描述。
6. 下面是处理登录的Servlet,用来处理登录请求,部分代码如下:

 public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {String userName = request.getParameter("username");String password = request.getParameter("password");String checkCode = request.getParameter("check_code");String savedCode = (String) request.getSession().getAttribute("check_code");
if(userName!=null && !userName.equals("")&& checkCode.equals(savedCode)){UserService uerService = new UserServiceimp();User user = new User();user.setUsername(userName);user.setPassword(password);if(uerService.findUser(user)){//存在这个用户,可以正常访问学生信息request.getSession().setAttribute("user", user);response.sendRedirect("/Student/pages/stuList.jsp");
}else {//不存在这个用户,给出提示,转回登录页面String message = "用户名或密码错误";request.getSession().setAttribute("msg", message);response.sendRedirect("/Student/login.jsp");}}else {//判断验证码是否正确String message = "验证码输入错误!!!";request.getSession().setAttribute("msg", message);response.sendRedirect("/Student/login.jsp");}}
  1. 下面是addStudent Servlet类实现添加学生到数据库的部分代码,其他不做详细描述:

    public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

        String name = request.getParameter("stuName");String sex = request.getParameter("sex");int age = Integer.parseInt(request.getParameter("stuAge"));String gradeName = request.getParameter("stuGrade");String profile = request.getParameter("showProfile");GradeService gService = new GradeServiceimp();Grade grade = gService.getGrade(gradeName);Student stu = new Student();stu.setName(name);stu.setAge(age);stu.setSex(sex);stu.setProfile(profile);stu.setGradeId(grade.getGradeId());StudentService studentService = new StudentServiceimp();String opr = request.getParameter("opr");//根据传的opr参数决定是添加学生还是修改学生信息int n = 0;if(opr.equals("addStu")){ //添加n = studentService.addStudent(stu);}else if(opr.equals("modifyStu")){//修改int id = Integer.parseInt(request.getParameter("stuId"));stu.setId(id);n = studentService.modifyStudent(stu);}         if(n>0){response.sendRedirect("/Student/pages/stuList.jsp");}else{response.sendRedirect("/Student/pages/addStu.jsp");}}
    

此外,jsp中使用了css来统一控制样式,用JavaScript在本地处理一些简单的判断,例如:

<script type="text/javascript">function validate_form() {var name = document.getElementById("username").value;var password = document.getElementById("password").value;if (name == null || name == "") {alert("姓名不能为空");return false;}if (password == null || password == "") {alert("密码不能为空");return false;}return true;}

三、项目小结
总的来说从这个实验中我学到了不少的东西,比如如何将web的MVC设计模式付诸于现实等等,并且我还将这学期学的专业核心课《软件工程》运用到了这个项目,非常的开心。虽然有很多问题都不是很会,通过查阅资料或者看了课本后,我还是大概知道了,我学会了独立解决问题的能力,遇到的问题主要是如何实现对数据库增、删、查、改,通过对书上的例子以及网上查阅资料,最后还是大概懂了,我深知自己还有很多不足的地方,路漫漫其修远兮,吾将上下而求索。我从这个项目中学到的还有很多,非常的充实。

Javaweb学生管理系统期末设计相关推荐

  1. Java-GUI编程实战之管理系统 Day3【学生管理系统GUI设计、学生管理系统增删改查、项目MVC结构介绍、Java技能图谱】

    视频.课件.源码[链接:https://pan.baidu.com/s/13ffqGDzH-DZib6-MFViW3Q 提取码:zjxs] Java-GUI编程实战之管理系统 Day1[项目开发流程. ...

  2. php课设报告致谢_PHP学生管理系统毕业论文设计.doc

    实用文档 PAGE 文案大全 大连理工大学 毕 业 论 文 题目 学生管理系统 系别 电子信息工程系 专业 计算机应用技术 班级 姓名 学号 071021121 指导教师 日期 实用文档 文案大全 目 ...

  3. 学生管理系统c#语言代码,基于C#语言的学生管理系统的设计(ASP.NET2.0)

    摘  要 随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用.学生管理系统是学校管理中不可少的一部分.而基于B/S架构的学生管 ...

  4. 学生管理系统的mysql数据库设计_MySQL数据库--学生管理系统数据库设计

    目录 学生管理系统数据库设计 学生管理系统功能介绍 数据库设计步骤 第1步: 找对象 第2步:找属性 第3步: 找关系 建表原则 第4步: 找特例: 等级明显而且不包含敏感数据的信息建议保持为1张表 ...

  5. 学生管理系统课程设计

    学生管理系统课程设计 文章目录 一.课程设计目的 二.课程设计内容和要求 三.任务完成情况 四.设计报告 4.1需求分析 4.1.1用户需求 4.2概要设计 4.2.1总体设计 4.2.2各功能函数的 ...

  6. 用mysql设计数据库管理系统_MySQL数据库--学生管理系统数据库设计

    学生管理系统数据库设计 设计一套数据库首先要熟悉当前系统有哪些功能,具体的业务流程是什么 学生管理系统功能介绍 一套学校用的学生管理系统,最核心的功能如下 学生信息管理(增加学生,删除学生,修改学生, ...

  7. 学生管理系统的mysql数据库设计_MySQL 数据库 -- 学生管理系统数据库设计

    MySQL 数据库 -- 学生管理系统数据库设计 目录 学生管理系统数据库设计 学生管理系统功能介绍 数据库设计步骤 第 1 步: 找对象 第 2 步: 找属性 第 3 步: 找关系 建表遵守原则 第 ...

  8. 基于javaweb固定资产管理系统的设计与实现(论文+程序设计源码+数据库文件)

    目录 摘要: 2 1 绪论 4 1.1 项目开发背景 4 1.2 项目开发意义 4 1.3 项目主要的内容 4 2 相关技术介绍及系统环境开发条件 4 2.1相关技术介绍 5 2.2系统环境开发条件 ...

  9. 基于javaweb停车场管理系统的设计与实现

    大家好,这里是天行IT科技馆,我是你们的馆长! 本期项目是<基于javaweb停车场管理系统的设计与实现>,下面是对应的视频教程 计算机毕业设计-Java课程设计项目之基于javaweb停 ...

最新文章

  1. 现实版“神笔马良”!“90后”小伙把贫困村画成网红景点,网友:一个人带动整个村GDP...
  2. 寄存器在哪里_二、汇编之寄存器
  3. linux线程多参数传递参数,Linux中多线程编程并传递多个参数
  4. jbehave_使用JBehave,Gradle和Jenkins的行为驱动开发(BDD)
  5. 【GitLab】CentOS安装GitLab最佳实践
  6. C++程序的单元测试
  7. windows2016安装.netFramework 3.5
  8. Atitit 基于dom的游戏引擎
  9. 【nginx】nginx 反向代理 指令说明
  10. SSH框架下的在线人数统计的一种解决途径
  11. GBDT+LR算法解析及Python实现
  12. Helm 3 完整教程(二十二):如何设置 Chart 安装完成后提示 NOTE 信息
  13. zul使用java_zk中zul页面中组件的id和java类中的变量绑定实现
  14. uc如何HTML编辑,电脑端UC浏览器如何对书签进行编辑
  15. pioneer软件VoLTE测试步骤,世纪鼎利Pioneer连接移动平台进行VoLTE测试操作说明综述...
  16. canvas练习 - 七巧板绘制
  17. altium designer自动布线设置GND或其他网络不布线的方法
  18. bzoj2005 NOI2010 方案统计
  19. 摸个鱼(算最大捕捞量)
  20. 10005---CSS语法

热门文章

  1. apns php流程
  2. PHP对接阿里云虚拟号-号码隐私保护
  3. jar调用dll文件提示找不到指定的模块Unable to load library
  4. hive小文件处理方法
  5. Ray+GPU支持高性能计算
  6. TechPowerUp GPU-Z - Windows GPU 信息查询
  7. 成功的创业者靠什么做重大决策
  8. 如何搭建量化投资研究系统?(工具篇之quantmod)
  9. 2023计算机毕业设计SSM最新选题之java光明小区物业管理系统wjomh
  10. 按要求编写一个Java应用程序:(1)定义一个类,描述一个矩形,包含有长、宽两种属性,和计算面积方法。(2)编写一个类,继承自矩形类,同时该类描述长方体,具有长、宽、高属性