Java Web应用开发项目实践--宿舍信息管理系统

    技术2024-12-10  18

     

    目录

    一.概述... 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功能模块、流程

     

     

    2.2 功能结构分析

    1)学生

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

    查询类型:宿舍信息查询

    输入信息:楼号,宿舍号

    可查询信息:

    楼号

    宿舍号

    入住性别

    可住人数

    费用

     

    查询类型:学生信息查询

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

    可查询信息:

    学号

    姓名

    性别

    院系

    楼号

    宿舍号

    2)管理员模式

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

    添加宿舍信息

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

    输入信息:

    楼号

    宿舍号

    2.输入详细信息

    楼号:

    宿舍号:

    入住性别:

    可住人数:

    费用:

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

     

     

     

    三.程序详细设计

    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>");

             //用数据库语句进行数据的删减

     

     

     

    四.程序的发布和测试

     

    图4-1.运行界面截图

     

     

     

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

     

     

    图4-4.登陆后主界面

     

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

     

    图4-6.学生信息录入

     

     

     

     

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

     

    图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大学教程》   清华大学出版社

    网络资料来源:社区 百度文库

    Processed: 0.009, SQL: 9