目录

一.概述... 2

1.1 开发环境及安装配置... 2

1.2项目需求分析... 2

二.程序概要设计... 3

2.1功能模块、流程... 3

2.2 功能结构分析... 3

2.3 文件结构分析、数据库设计... 4

三.程序详细设计... 6

3.1选择登录界面及账号密码非空验证... 6

3.2连接检查... 7

3.3 主界面... 7

3.4信息查询... 8

3.5 信息增加... 9

3.6 数据库连接... 9

3.7 修改学生/宿舍信息... 10

3.8 删除学生/宿舍信息... 10

四.程序的发布和测试... 11

五.分析总结... 14

六.参考目录... 14

 

 

 

 

一.概述

1.1开发环境及安装配置

Window 10系统;NetBeans IDE 8.0.2;eclipse IDE for JavaEE ; MySQL ; Navicat;

安装JDK1.8 配置环境变量,安装配置部署Tomcat服务器在NETBEANS IDE中使用。

1.2项目需求分析

宿舍信息系统管理子模块

 

功能要求:

 

系统分为3级用户权限:超级管理员、宿舍楼管理员、学生。

超级管理员可以查询、管理宿舍楼信息,楼中的宿舍房间信息,宿舍楼管理员信息及所有入住的学生信息。

宿舍楼管理员可以查询、管理本宿舍楼已入住学生信息。可以批量导入将要入住的学生信息和宿舍分配信息、例如使用excel文件导入批量信息;安排学生入住、调换学生宿舍等。

学生不用注册,可以直接根据学号查看本人的宿舍信息。

 

首先要设计一个用于宿舍管理系统登录的界面login.jsp,设置字体等,添加文本框以用于输入账号密码,jButton用于账号密码信息的提交。最后定位好所有元素以便看起来更加整洁美观。要对输入的账号信息进行验证,建立checklogin.jsp用于账号密码验证,若错误,则无法进入系统。与此同时文件还写入了用于连接数据库的数据库账号密码以及验证。若信息错误会提示数据库连接失败。进入系统后可以用if语句实现查询并输出,以表格的形式显示宿舍以及学生信息。管理员系统里,可以进行增添或删除宿舍以及学生信息,若重复提示添加失败。分别用student。jsp,house.jsp,admin_house.jsp和admin_student.jsp实现功能。最后利用javabean写入Java文件,调用数据库进行数据同步。

 

 

 

二.程序概要设计

 

2.1功能模块、流程

 

springboot学生宿舍管理系统 基于javaee的宿舍管理系统_java

 

2.2 功能结构分析

1)学生

输入账号密码→进入查询界面

springboot学生宿舍管理系统 基于javaee的宿舍管理系统_springboot学生宿舍管理系统_02

查询类型:宿舍信息查询

输入信息:楼号,宿舍号

可查询信息:

楼号

宿舍号

入住性别

可住人数

费用

 

查询类型:学生信息查询

输入信息:学号,姓名,院系(院系用选择模式)

可查询信息:

学号

姓名

性别

院系

楼号

宿舍号

2)管理员模式

输入账号密码→验证为管理员→进入管理员信息系统

springboot学生宿舍管理系统 基于javaee的宿舍管理系统_数据库_03

添加宿舍信息

1.添加/修改/删除宿舍

输入信息:

楼号

宿舍号

2.输入详细信息

楼号:

宿舍号:

入住性别:

可住人数:

费用:

2.3 文件结构分析、数据库设计

springboot学生宿舍管理系统 基于javaee的宿舍管理系统_springboot学生宿舍管理系统_04

springboot学生宿舍管理系统 基于javaee的宿舍管理系统_springboot学生宿舍管理系统_05

 

 

 

三.程序详细设计

3.1选择登录界面及账号密码非空验证

login.jsp

在这里用if语句判断账号密码是否为空,利用js进行检查

<script type="text/javascript">
   function check(){
       if(document.form.username.value===""){     
           alert("请输入用户名");          
           return false;
           }else{
               if(document.form.password.value===""){
                   alert("请输入密码");
                   return false;
               }
           }
           return true;   
   }
</script>
 
写入界面,完成界面设置
<h1 align="center"> 宿舍管理系统</h1>
<hr width="600" >
</blockquote>
<p align="center">
用户名:
<input type="text" name="username" size="20" />
</p>
<p align="center">
密   码:     
<input type="text" name="password" size="20" />
</p>
   
   
<p align="center">
<input type="submit" name="button"  value="确定" />
<input type="reset" name="button2"  value="取消" />
</p>

 

3.2连接检查

Checklogin.jsp

    加载数据库驱动,注册到驱动管理器。再数据库连接字符串,对应数据库用户名、数据库密码创建Connection连接。在此前遇到打不开的问题java.sql.SQLException: Unknown initial character set index '255' received from server. Initial client character set can be forced via the 'characterEncoding' property.是因为我没有在url加上?useUnicode=true&characterEncoding=utf8

 

try {
            out.print("b");
        Class.forName("com.mysql.jdbc.Driver");
                out.print("c");
String url = "jdbc:mysql://localhost:3306/sushe";导致无法正常连接数据库
       String usename = "root";
       String psw = "******";
       Connection conn = DriverManager.getConnection(url,usename,psw);

3.3 主界面

Main.jsp
 
主界面包含的信息
<tr>
<td align="center" >宿舍管理系统</td>
</tr>
<tr>
<td align="center"><a href="query_house.jsp"/>查询房间信息</td>
</tr>
<tr>
<td align="center"><a href="query_student.jsp"/>查询学生信息</td>
</tr>
<tr>
<td align="center"><a href="addroom.jsp"/>房间信息录入</td>
</tr>
<tr>
<td align="center"><a href="addstudent.jsp"/>学生信息录入</td>
</tr>

 

3.4信息查询

room.jsp
宿舍信息查询界面的定义
<strong><font size="5">宿舍信息查询</font></strong>
</div></td></tr><tr>
<td width="35%" height="30">
<div align="center">楼号</div>
</td>
<td width="65%"><input name="buildingid" type="text" size="20" />
</td></tr>
<tr>
<td height="34">
<div align="center">宿舍号</div>
</td>
<td><input name="houseid" type="text" size="20" /></td>
</tr>
<tr>
<td height="47" colspan="2">
<div align="center">
<input name="Submit" type="submit" value="查询" />
 
Student.Jsp
学生信息查询
查询方式与信息显示方式与room.jsp采用方法一致。
1)院系查询下拉框设置
<td height="30"><select name="department">
<option value="0" selected>请选择</option>
<option value="计算机学院">计算机学院</option>
<option value="机械工程学院">机械工程学院</option>
<option value="经济学院">经济学院</option>
<option value="国际商学院">国际商学院</option>
<option value="外国语学院">外国语学院</option>
</select></td>
3.5 信息增加
addroom.Jsp
1)信息录入
用if-else语句判断是否为空,空则录入信息,非空会出现无法录入信息。同时引用js验证。(此为部分信息录入代码)
<script type="text/javascript">
    function datacheck() {
        if (form.buildingid.value == "") {
           alert("请输入楼号!");
           document.form.buildingid.focus();
        } else {
addstudent.Jsp
同上用if-else语句判断是否为空,空则录入信息,非空会出现无法录入信息。同时引用js验证。
 
3.6 数据库连接
DBconnect.Java
 引用try-catch处理程序。当try{}程序段中出现异常时,则会转到catch{}中处理异常。
public static Connection getConnection(){
        Connection con=null;
        try {
           Class.forName("com.mysql.jdbc.Driver");
           String url="jdbc:mysql://localhost:3306/sushe?useUnicode=true&characterEncoding=UTF-8";
           String user="root";
           String password="111";
con=DriverManager.getConnection(url, user, password);
          
        } catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
        }
        return con;
       
    }

3.7 修改学生/宿舍信息

Alter-.Jsp
利用if-else语句进行判断,新输入的信息替换原来的信息。
if(buildingid!=null&&roomid!=null){
      String sqlText="select*from room where building='"+buildingid+"'and room='"+roomid+"'";
      ResultSet rsaddroom;
      rsaddroom=myconnect.DBQuery(sqlText);
      if(rsaddroom!=null&&!rsaddroom.next())
          out.print("<script>alert('该楼号的房间未登记!');window.location.href='alter_room.jsp'</script>");
      else{
          int id=rsaddroom.getInt(1);
          String updateText="";
          updateText="update room set sex='"+sex+"',amount='"+amount+"',expense='"+expense+"'"+"where id='"+id+"'";
          myconnect.DBUpdate(updateText);
          out.print("<script>alert('数据更改成功!');window.location.href='alter_room.jsp'</script>");
      }
  }

3.8 删除学生/宿舍信息

delete-.jsp
String deleteText="";
          deleteText="delete  from room where building='"+buildingid+"'and room='"+roomid+"'";
          myconnect.DBUpdate(deleteText);
          out.print("<script>alert('数据删除成功!');window.location.href='delect_room.jsp'</script>");
         //用数据库语句进行数据的删减

 

四.程序的发布和测试

springboot学生宿舍管理系统 基于javaee的宿舍管理系统_java   javaee   源码_06

 

图4-1.运行界面截图

springboot学生宿舍管理系统 基于javaee的宿舍管理系统_springboot学生宿舍管理系统_07

springboot学生宿舍管理系统 基于javaee的宿舍管理系统_java   javaee   源码_08

 

 

 

图3-2、3系统登录界面(宿舍楼管理员)

springboot学生宿舍管理系统 基于javaee的宿舍管理系统_java_09

 

 

图4-4.登陆后主界面

springboot学生宿舍管理系统 基于javaee的宿舍管理系统_java   javaee   源码_10

 

图4-5.学生信息查询界面

springboot学生宿舍管理系统 基于javaee的宿舍管理系统_springboot学生宿舍管理系统_11

springboot学生宿舍管理系统 基于javaee的宿舍管理系统_web_12

 

图4-6.学生信息录入

springboot学生宿舍管理系统 基于javaee的宿舍管理系统_springboot学生宿舍管理系统_13

springboot学生宿舍管理系统 基于javaee的宿舍管理系统_java   javaee   源码_14

 

 

 

 

图4-7.学生信息更改界面

springboot学生宿舍管理系统 基于javaee的宿舍管理系统_springboot学生宿舍管理系统_15

 

图4-8.学生信息删除界面

 

五.分析总结

平时在校学习,除了理论实习,顶多也就在机房和宿舍做一点上机练习和实操作业。做本次的JavaWeb项目开发的程序过程犹如一场战场、开始的时候一点头绪都没有,不知道如何去结合上学期学习过得内容。然后不停得看书看课件,问同学,上网查资料,刚开始看过《JavaEE大学教程》使用了Java IDE for jee。然后改用上学期教的集成开发工具NetBeans去实现。通过本次,我巩固了使用Javaweb以及数据库的知识,如JSP环境配置、运行原理、页面组成元素等等。综合JSP和JDBC的技术、利用MySQL数据库完成JDBC在JSP的基本操作(JDBC的使用)。我的程序实现用户登陆,登陆之后,可以发表、修改、浏览全部信息、查询、删除信息。本次课程设计的程序的运行结果跟预期的一致,说明该程序能顺利达到并完成设计要求中的问题,实现了本次课程设计的目的。也帮助我掌握了JSP的基础语法、request对象、response对象、Session对象、JDBC操作、HTML表单等技术。

虽然系统的基本功能可以实现,但还是存在挺多现实生活上的实际问题有待改进。一方面是自己的知识存储不足,另一方面是考虑不够周全。如没有养成良好的编程习惯、不注释,回头看自己的代码时看的一脸懵。所以我也意识到了,编程的结构不好,维护和修改代码效率真的特别差。收获任何一门知识的掌握,仅靠学习理论知识是远远不够的,要与实际动手操 作相结合才能达到功效。在这次课程设计中,不但对专业知识有了更深的理解,更使自己认识到实践的重要性,理论、实践相结合才能达到很好的学习效果,特别是程序语言学无止境呀。

六.参考目录

周平   《Java EE大学教程》   清华大学出版社