Web数据库设计课程设计指导书.docx
《Web数据库设计课程设计指导书.docx》由会员分享,可在线阅读,更多相关《Web数据库设计课程设计指导书.docx(34页珍藏版)》请在冰点文库上搜索。
Web数据库设计课程设计指导书
Web数据库设计
课程设计指导书
丁勇编著
南京理工大学泰州科技学院
二OO七年八月
目录
第1章课程设计总体要求4
1.1课程设计目的和意义4
1.2课程设计内容4
1.3课程设计要求4
1.4课程设计步骤5
1.5课程设计报告要求5
1.6课程设计验收6
第2章开发环境7
2.1JDK安装7
2.2Eclipse安装8
2.3Web服务器安装10
第3章总体设计11
3.1设计思想11
3.2原理图11
第4章表示层设计12
4.1Jsp技术12
4.2、界面编程实现12
4.2.1登陆界面12
4.2.2学生信息管理界面14
4.2.3教师信息管理界面15
第5章应用层设计18
5.1、Java/JavaBean18
5.2类的详细设计及实现19
5.2.1数据库操作类19
5.2.3登陆校验类20
5.2.4实体对象类21
5.2.5权限管理类22
第6章数据层设计23
6.1关系数据库模型23
6.2持久对象模型24
第7章系统发布与调试25
附录:
学生自选课题26
第1章课程设计总体要求
1.1课程设计目的和意义
随着网络技术的日趋成熟,基于B/S架构的Web应用技术受到广泛应用。
本次课程设计的目的旨在使学生掌握Java编程技术、JSP动态网页技术、数据库技术、Web应用服务器技术的基本原理以及WEB信息系统多层应用开发的基本步骤和流程,具备B/S架构的信息系统分析、设计、开发及实施的能力。
同时,加深对面向对象及MVC编程思想的理解。
本次课程设计的意义在于使学生的分析设计、应用开发能力以及团队合作意识受到较为全面、系统的训练,为今后的毕业设计及就业奠定坚实的基础。
1.2课程设计内容
课程设计详细地介绍了一个基于Web的学生成绩管理系统的分析、设计、编码、调试的过程,通过具体事例的讲解使学生掌握以下内容:
Ø构建Web应用开发平台,包括JDK、Eclipse开发工具、Web应用服务器以及MVC框架的安装与配置。
Ø表示层设计,包括JSP动态网页技术的基本原理,灵活结合框架技术构建表示层的界面应用。
Ø应用层设计,包括Java/JavaBean技术,应用JavaBean实现对应用层业务逻辑的封装,实现页面显示和业务逻辑的分离。
Ø数据层设计,包括数据库系统的基本原理和技术,应用现有的数据库管理系统软件,规范地完成一个小型数据库的设计与实现。
1.3课程设计要求
课程设计集中安排2周进行课程设计,以小组为单位,一般4-6人为一组。
要求学生根据题目的需求描述,独立完成相关的课题,具体要求如下:
(1)充分认识课程设计的重要性,认真做好设计前的各项准备工作。
(2)虚心接受老师的指导,充分发挥主观能动性。
结合课题,独立思考,努力钻研,勤于实践,勇于创新。
(3)独立按时完成规定的工作任务,不得抄袭他人内容,否则成绩以不及格计。
(4)课程设计期间,无故缺席按旷课处理;缺席时间达四分之一以上者,其成绩按不及格处理。
(5)小组成员之间,分工明确,但要保持联系畅通,密切合作,培养良好的互相帮助和团队协作精神。
1.4课程设计步骤
课程设计主要由学生自选课题,分小组完成整个Web应用系统开发的全过程,从软件工程的角度粗略分为以下几步:
1.需求分析及总体设计
本阶段根据课题要求,完成系统的总体设计,完成后台数据库系统的逻辑结构设计,分析实体及实体之间的联系并绘制出主要的E-R图。
构建应用开发平台。
2.详细设计、编码
本阶段对上述总体设计的各功能模块逐步分解、编码实现,这一阶段每小组需提供详尽的软件文档,具体包括:
数据库设计文档、Jsp页面、Java类、使用的JavaBean等。
3.测试和试运行
本阶段在系统编码完成后,每组要输入一些模拟数据,对系统进行试运行,要求写出相应的测试报告,对于比较有代表性的界面,选择2-3个粘贴到的课程设计报告中。
4.课程设计小结报告。
本阶段作为本课程的一个终结,要求对每组设计的系统有哪些不足之处,需要在哪些方面加以完善,作一个总结和展望。
1.5课程设计报告要求
学生提交的课程设计报告有以下四个方面的要求:
(1)问题描述,对所选课题的需求做一个详细的描述。
(2)分析设计,包括总体设计、表示层设计、应用层设计及数据库设计,设计要考虑安全性和完整性的要求。
(3)具体的实现算法及详细源代码,在代码中必须要有足够的注释,以保证程序的可读性。
(4)运行测试,包括测试代码及重要的运行界面。
(5)课程设计小结,重点谈谈本次课程设计的收获、体会、心得。
1.6课程设计验收
本次课程设计结果验收通过学生问题答辩、现场调试、运行结果、提交材料等环节进行把关,具体评分标准如下:
序号
报告内容
所占
比重
评分原则
不给分
及格
中等
良好
优秀
1
问题描述
10%
没有
不完整
基本正确
描述正确
描述准确
2
分析设计
30%
没有
不完整
基本可行
方案良好
很有说服力
3
具体的算法及源代码
40%
没有
不完整
基本正确、清晰
正确,清晰
正确,清晰
4
运行测试
10%
没有
不完整
基本完整
完整
有价值,并可以实际演示。
5
其他
10%
包括是否按时完成,报告格式,字迹、语言等等
第2章开发环境
2.1JDK安装
JDK是Java开发工具包(JavaDevelopmentKit)的缩写。
它是一种用于构建在Java平台上发布的应用程序、Applet和组件的开发环境。
JDK是一切Java应用程序的基础,所有的Java应用程序都是构建在JDKAPI之上的。
本系统使用的JDK版本为jdk-1_5_0_12。
安装完JDK后为了“告诉”Java执行环境,在哪些目录下可以找到所需要执行的Java程序,需要设置环境变量,选中"我的电脑"右击后选属性-->>高级-->>环境变量新建环境变量,如图2-1所示,假设本系统安装的JDK路径为C:
\program\java,则系统用到的环境变量设置如下:
ClassPath=.;%JAVA_HOME%\lib\tools.jar;%JAVA_HOME%\lib\dt.jar
Path=%JAVA_HOME%%;JAVA_HOME%\bin
Java_Home=C:
\ProgramFiles\Java\jdk1.5.0_12
图2-1环境变量设置
2.2Eclipse安装
Eclipse的是IBM公司提供的开源的Java集成开发环境(IDE),本系统选用Eclipse3.3.0版本进行Java程序开发,具体的开发步骤如下:
第一步:
新建Java项目
选择“File→New→Project...”,选择“JavaProject”,点击“Next”,便打开了“NewJavaProject”向导。
在“Projectname”中填入“TestApp”如图2-2所示。
图2-2新建Java项目
第二步:
新建TestJava类
选择“File→New→Class”,在“NewJavaClass”向导中的Name框中输入“TestJava”,并完成一个简单的Java测试类,如图2-3所示。
publicclassTestJava
{
publicstaticvoidmain(Stringarg[])
{
System.out.println("testsuccess!
"); //输出测试信息
}
}
图2-3新建Java类
第三步:
运行Java程序
按下“Run→Run...”,Eclipse会弹出运行设置向导,询问运行配置。
这个程序是一个Java程序,所以在Configurations里面选择“JavaApplication”,然后按下“New”按钮。
当Eclipse创建好配置以后,只需要按下Run便能够看到调试结果,如图2-4所示。
图2-4Eclipse调试界面
2.3Web服务器安装
Web服务器作为一种中间件,为Internet上的客户请求提供服务,本系统采用Tomcat6.0,打开bin目录下的startup.bat批处理文件,可启动Web服务器,如图2-5所示。
在浏览器中输入http:
//localhost:
8080进入JSP测试页面。
图2-5tomcat服务器
第3章总体设计
3.1设计思想
系统采用MVC设计模式,主要思想是将应用程序分为三个部分:
模型(Model)、视图(View)和控制器(Controller),以提高应用程序的可扩展性。
这三个部分分别为:
(1)视图View是模型的表示,用于表示逻辑,典型的View视图层由HTML和JSP页面和JavaScript组成。
(2)模型Model封装系统中的业务逻辑,通常由JavaBean实现。
(3)控制器Controller是Model与View之间沟通的桥梁,它可以分派用户的请求并选择恰当的视图以用于显示,同时它也可以解释用户的输入并将它们映射为模型层可执行的操作。
Controller通常是一个JavaServlet。
3.2原理图
图3-1多层应用原理图
第4章表示层设计
4.1Jsp技术
JSP(JavaServerPages)是由SunMicrosystems公司倡导、许多公司参与一起建立的一种动态网页技术标准。
它是在传统的网页HTML文件(*.htm,*.html)中插入Java程序段(Scriptlet)和JSP标记(tag),从而形成JSP文件(*.jsp)。
Web服务器在遇到访问JSP网页的请求时,首先由引擎执行其中的程序段,然后将执行结果连同JSP文件中的HTML代码一起返回给客户。
4.2、界面编程实现
4.2.1登陆界面
登陆界面由Login.jsp来实现,具体的用户名和密码校验程序由Login_confirmServlet来实现,根据不同的角色(学生、教师、管理员)定位到不同的页面,如图4-1所示
Student.jsp,学生页面导航,负责管理学生的基本信息。
Teacher.jsp, 教师页面导航,负责管理教师的基本信息。
Admin.jsp, 管理员页面导航,负责系统管理及权限分配。
ErrorPage.jsp出错导航,负责捕捉异常,提示用户错误信息。
图4-1 登陆流程
登陆页面客户端的校验由javascript脚本语言实现,部分代码如下:
functionisValid()
{
//检查是否输入帐号资料
if(frmLogin.id.value=="")
{
window.alert("您必须完成帐号的输入!
");
//显示错误信息
document.frmLogin.elements(0).focus();
//将光标移至帐号输入栏
returnfalse;
}
//检查是否输入帐号密码
if(frmLogin.password.value=="")
{
window.alert("您必须完成密码的输入!
");
//显示错误信息
document.frmLogin.elements
(1).focus();
//将光标移至密码输入栏
}
frmLogin.submit();//提交表单中的资料
}
运行界面如图4-2所示:
图4-2系统登陆界面
4.2.2学生信息管理界面
学生登陆以后,首先可以查看自己的基本信息,并可以更新自己的基本信息,如,所属系部、电子邮件等。
其次,登陆以后可以选报课程,系统会根据学生所在系及课程的预修课判断其选课情况。
系统会列出所有满足该生系别以及该生尚未选报的课程,如果该生选报了未满足预修课要求的课程,系统会有相关的错误提示。
最后,学生可以查看自己的成绩,包括该生已选课程的名称、学分以及该生的总学分。
如果教师还未给出成绩,则系统会提示。
图4-3学生信息管理流程
student.jsp学生菜单页面,
DisplayCourse.jsp显示学生选修的课程
Updateinformation.jsp添加/删除/修改学生的基本信息
根据用户不同的操作,判断程序跳转到不同的JSP页面,代码如下:
<%
Stringaction=(String)session.getAttribute("action"); //判断操作类型
if(action.equals("add")) {response.sendRedirect("login.jsp");}//转到addcourse.jsp
if(action.equals("select")){response.sendRedirect("login.jsp");}//转到dispalycourse.jsp
if(action.equals("select")){response.sendRedirect("login.jsp");}//转到updateinformation.jsp
%>
图4-4学生信息管理界面
4.2.3教师信息管理界面
教师在本系统中拥有是否接受学生所选课程,以及给学生打分的权力。
首先教师在登陆后具有查看、更新基本信息的权限。
其次,系统要求教师选择学生,系统会列出该教师所代课程的班级,系统会列出选报了该课程的所有学生,然后就可以给该生的这门课打分,系统会校验教师的输入信息是否正确。
最后,在教师给出了学生成绩之后,系统会根据成绩来判断该生是否通过了考试,如果该成绩及格,则在该生的学分上加上该课程的学分。
Teacher.jsp,教师的基本信息导航。
Displaystu.jsp,选修了教师所代课程的学生。
Score.jsp,教师的打分信息。
Marking.jsp,学分信息处理。
MarSvltServlet作为控制器,根据用户的不同动作,跳转不同的处理界面。
<%
//跳转到基础信息页面
if("display".equalsIgnoreCase(action)){res.sendRedirect("display.jsp");}
//跳转到打分处理页面
if("score".equalsIgnoreCase(action)){res.sendRedirect("display.jsp");}
//跳转到学分处理页面
if("marking".equalsIgnoreCase(action)){res.sendRedirect("marking.jsp");}
%>
图4-5教师信息管理流程图
例:
教师基本信息管理Displaytea.jsp如图4-6所示,代码如下:
工号 | 姓名 | 性别 | 年龄 | 职称 | 课程 | 基本操作 |
<%
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver").newInstance();
Stringurl="jdbc:
odbc:
test";
Stringuser="sa";
Stringpassword="sa";
//获得数据库连接,进行相应的查询处理
Connectionconn=DriverManager.getConnection(url,"sa","sa");
Statementstm=conn.createStatement();
Stringsql="select*fromteacher";
ResultSetrs=stm.executeQuery(sql);
while(rs.next())
{
id=rs.getString("id");
name=rs.getString("name");
sex=rs.getString("sex");
age=rs.getString("age");
xueli=rs.getString("xueli");
juanye=rs.getString("juanye");
%>
<%=id%> | <%=name%><%=sex%><%=age%><%=xueli%><%=juanye%>删除 | 更新 | | | | | |
<%}%>
显示教师基本信息dispalytea.jsp运行界面如下图所示:
图4-6教师信息管理界面
第5章应用层设计
5.1、Java/JavaBean
JavaBean是一种可重用的Java组件模型,用户可以使用JavaBean将功能、处理、值、数据库访问和其他任何可以用java代码创造的对象进行打包,并且其他的开发者可以通过JSP页面、Servlet、JavaBean、Applet程序等来使用这些对象。
以下为一段JSP页面调用JavaBean的测试代码。
<%@pageimport="tzkjxy.TestBean"%>
<%
TestBeantestBean=newTestBean
testBean.setName("Thisisatestjavabean.");
%>
JavaBeannameis:
<%=testBean.getName()%>
//JavaBean测试类
packagetzkjxy;
publicclassTestBean
{
privateStringname=null;
publicvoidsetName(Stringname)
{this.name=name;}
publicStringgetName()
{returnthis.name;}
}
图5-1JSP调用JavaBean
5.2类的详细设计及实现
5.2.1数据库操作类
应用层提供应用所需的业务逻辑,该层包含常用的一些业务逻辑,通常以JavaBean的形式进行封装。
系统使用JDBC实现对后台数据库的访问,JDBC为应用程序访问关系数据库提供了API,系统中对数据库的操作封装在DBOperJavaBean中,以便在其他应用中调用。
importjava.sql.*;
publicclassDBOper{
privateConnectionconn;//定义连接对象
privateStringurl="jdbc:
odbc:
test";//定义数据源
privateStringuser="sa";//定义用户名
privateStringpassword="sa";//定义密码
//返回数据库连接
publicConnectiongetConnection()
{
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");//加载驱动程序
conn=DriverManager.getConnection(url,user,password);//获得连接
if(conn!
=null){
System.out.println("数据库连接成功!
");
}
}catch(Exceptione){//捕捉异常
System.out.println("connectdberror"+e.getMessage());}
returnconn;
}
//数据库操作,返回记录集
publicResultSetexecuteQuery(Stringsql){
try{
conn=DBOper,getConnection();//获得一个连接
Statementstmt=conn.createStatement();
rs=stmt.executeQuery(sql);//执行sql语句
}catch(SQLExceptionex){
System.out.print("执行查询有错误:
"+ex.getMessage());//捕捉异常,输出到客户端
}
returnrs;//返回记录集
}
}
5.2.3登陆校验类
每一次不同角色的用户(学生、教师、管理员)访问JSP页面时都必须对其操作权限进行校验,在本系统中使用JavaServlet封装一个统一的校验类,以便在调用JSP页面时使用,代码如下:
importjava.sql.*;
importjavax.servlet.*;
publicclasslogin_confirmextendsHttpServlet{
publicvoiddoPost(HttpServletRequestreq,HttpServletResponseres)
throwsServletException,IOException
{
Stringid=null;
id=req.getParameter("id");//得到用户ID
HttpSessionsession=req.getSession(true);
session.setAttribute("id