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