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

 

目录

一.概述... 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大学教程》   清华大学出版社

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

  • 7
    点赞
  • 75
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值