java毕业设计论文例Word文档格式.docx
《java毕业设计论文例Word文档格式.docx》由会员分享,可在线阅读,更多相关《java毕业设计论文例Word文档格式.docx(27页珍藏版)》请在冰豆网上搜索。
1.2.2JSP技术发展背景
Web技术的迅猛发展正推动Internet上信息服务类的进步。
WWW服务的基础是HTML语言。
这个系统模块中用到的JSP技术是在HTML语言的基础上使用脚本语言对网页的对象模型进行编程。
JSP全称JavaServerPages,它是由SunMicrosystems公司提出、许多公司参与建立的一种动态网页技术标准。
它诞生在1999年6月1日。
目前国内外已经在广泛地使用JSP。
随着JAVA语言得到普及,越来越多的公司开始关注JSP的前景。
传统的动态网页制作包括CGI、ASP、JSP三种,而JSP具有明显的优势。
使用CGI-BINJ接口是一个最早的动态WEB页面问题的解决方案。
缺点,CGI程序必须从CGI接口读入一长串的字符串,再从字符串中取得所需要的数据并加以处理。
过程十分繁琐。
另一个缺点,除了Perl是解释语言外,其他都是编译式的语言。
每次修改后,都必须重新编译一次,这给开发人员带来麻烦,增加了工作量。
ASP和JSP都能取代CGI使网站建设和发展变得简单快捷。
尽管JSP技术和ASP在许多方面都有相似的,但仍然存在很多不同之处,其中最本质上的区别在于:
两者是来源于不同的技术规范组织,其实现的基础,WEB服务器平台要求不相同。
1)作为Java平台的一部分,JSP拥有Java编程语言“一次编写,各处运行”的特点。
一次写入,之后,可以运行在任何具有符合JavaTM语法结构的环境。
取代之过去单一平台开发。
ASP主要工作环境是微软的IIS应用程序结构,又因Activex对象具有平台特性,所以ASP技术不能很容易地实现在跨平台的WEB服务器的工作。
2)从开发人员的角度来看其区别在于:
ASP仅支持组件对象模型COM,而JSP技术提供的组件都是基于JavabeansTM技术或JSP标签库。
3)JSP标签可扩充性。
JSP技术能够使用开发者扩展JSP标签,JSP开发者能定制标签库,减少对脚本语言的依赖
4)生成可重用的组件。
JSP基于组件的技术方法加速了总体开发过程。
JSP组件(Javabeans,或定制的JSP标签)是跨平台可重用的。
Javabeans组件可以访问数据库,并能以分布式系统模式工作于UNIX和WINDOWS平台。
5)易于维护性。
基于JSP技术的应用程序比基于ASP的应用程序易于维护和管理。
JSP突出的组件技术使修改内容而不影响逻辑或修改逻辑而不影响内容变得很容易实现。
如上的比较不难看出,JSP技术编写的程序运用要更加灵活,可扩展性更强。
第2章需求分析
2.1任务描述
系统模块的设计应该遵循整个系统总体设计思路。
即基于B/S模型构建校友录。
系统的总体设计应该是提供给上网浏览者一个效率高,能容丰富的网络空间。
包括用户可以在线聊天,上传下载图片,网上购物等种种功能。
其中校友录中必不可少的主体模块之一就是网上虚拟班级的创建,它将提供的是一个互动的虚拟空间。
班级作为一个整体包含了许多的个体,用户作为班级的个体可以在班级范围能有自己的行为。
与其相关涉及到班级的长期维护和管理等功能。
班级管理员充当维护者这个角色,他可以将班级成员组织在一起,而且拥有班级管理功能的使用权。
而针对用户将使用到的功能和特点,将此系统模块划分为班级注册、管理员信息注册、管理员权限操作(包括:
班级成员的删除、班级的删除、更改班级名称、添加班级管理员、班级留言等),数据库设计等几个子模块。
那么系统功能的使用者应该是班级管理员,所有的功能设计都应该以管理员的权限为核心。
此处管理员权限的功能设计定要引用到大量的数据库操作,这就需要考虑到为虚拟班级分配系统存储空间,建立数据库表。
那么,选择数据库,创建数据库用户和表,建立与数据库的连接,使用SQL语言操作数据库就是系统后台设计围绕的主体。
能否将系统的前后台合理有效的关联是整体系统模块成功的关键。
2.2用户特点
系统应该围绕着用户特点设计。
管理员有权将普通班级成员升级为班级管理员,协调日常工作。
有权将班级管理员降级为普通班级成员,将违反网站用户协议的,对班级造成不良影响的普通班级成员从本班级中除名。
有权将班级的名称进行合理更改,使其更容易查询。
有义务定期维护班级校友录,发展班级成员,使旧时的班级重新成为一个整体。
以便参加网站为校友们不定期举办的丰富多彩的活动,发布班级通知等。
遵守网站用户协议,管理班级成员不传播任何非法的、伤害性的、淫秽等信息资料。
有义务作为班级成员与网站之间的沟通纽带,及时将双方所需的信息进行沟通。
可以将自己的所有权利移交给另一位班级成员。
2.3条件与限制
此系统模块的设计主要突出班级管理员的功能和特点,它与普通的用户有很大的区别。
系统虽然对所有用户开放,但部分资料和功能只针对班级管理员开放;
新增用户需要通过申请、注册等方式获得希望得到的权限和信息;
如果不遵守网站用户协议,或传播任何非法的、淫秽等信息资料,将立即取消用户服务帐号,并视情节的严重性付诸于法律。
数据库中要以班级名称和用户名为主键,这就要求用户创建初始信息是必须填写这两项。
为了确保用户输入数据的有效性并与数据库字段设计相符,所以对用户输入的表单项也要做相应的约束。
2.4系统配置
2.4.1Hardware(硬件)
硬件环境(访问者):
建议用户在力所能及的情况下采用较高配置的硬件资源。
硬件环境(开发者):
pentiumIII处理器,256M内存,10G磁盘空间。
2.4.2Software(软件)
访问者:
IE、Netscape等浏览器。
最好是IE浏览器,本网页在IE浏览器下通过了测试。
开发者:
1)OperatingSystem(操作系统):
Windows2000/NT/XP
2)Tools(工具):
EditPlus2,DreamweaverMX
3)Database(数据库):
Oracle8i
4)Server(服务器):
ApacheTomcat/WebSphere
5)RunCircumstance(运行环境):
安装JDK1.4支持Java运行。
6)Technic(技术):
前台网页的设计采用JSP技术制作。
JSP网页吸引人的地方之一就是能结合JavaBeans技术来扩充网页中程序的功能。
JSP程序实际上JSP元素、Java程序和HTML文档的混合体,JSP以Java作为其脚本语言,几乎继承了Java语言的所有特点。
2.5编码规范
1)文件名用英文表示其功能,起到一目了然的作用。
2)文件归类,以不同文件夹存放
图片——Lifeng\Image
JSP——Lifeng\JSP
JavaBean——WEB-INF\classes\lifeng\works
3)出错信息页的制作。
用户操作错误时,返回出错信息。
第3章系统设计
3.1模块划分
此系统模块要的功能是创建班级和班级管理员操作权限的实现,围绕着这个目标把系统制作划分为登录子模块、创建班级子模块、管理员权限子模块和数据库模块。
如图3-1所示。
首页可以作为其它功能项的一个向导,起连接的作用,而管理员权限子模块又被细分为删除功能子模块、查询功能子模块、管理员班级留言功能块。
图3-1模块划分结构图
登录子模块和创建班级子模块在系统中的实现其功能对所有用户可见,而删除、查询、管理员班级留言功能只针对身份被标识为管理员的用户开放。
3.2设计模式
模块1:
用户身份验证设计。
用户进入该系统,首先需要进行身份验证。
如果通过了身份验证,则为合法用户,同时其帐号和权限等资料将会保存在Session对象,Session对象储存的信息是局部的,随用户不同而不同的。
当用户访问系统的各个子系统时,系统自动从Session对象中获取用户的资料,而无须将用户的资料作为请求方法、参数名、参数值追加到URL中。
这样可以避免用户恶意修改URL中的值来非法访问。
Session对象中的变量设置:
Session[“UserID”]用户帐号
Session[“Roles”]用户权限
模块设计流程如图3-2所示。
是否
图3-2登录验证流程图
用户登录这个过程是必须的,因为只有这样才能从数据库中得到用户的帐号和权限。
模块2:
创建班级功能的设计。
通过了注册后的用户才可以创建新班。
用户创建时必须输入合法的班级名称和基本信息,班级名被设定为数据库Class_table的主键,系统将判断新班级的名称是否与数据库中现有的记录重复,如果重复就违反了主键唯一的原则,数据将不能够被正确的输入数据库,所以要返回给用户一个信息。
否则,班级创建成功,创建者还需要补充用户信息。
此模块的设计流程如图3-3所示。
是否
是
否
图3-3创建班级流程图
模块3:
查询功能设计。
提供给用户查询功能,方便使用者查找亲友同学所属哪个班级,还可以统计出目前班级拥有多少成员。
此项功能是根据使用者输入的关键字遍历数据库,查找有无匹配的记录。
如果记录存在将记录输出到用户浏览端,否则返回一条用户信息。
例如,查询姓名为‘李四’的人。
模块设计流程如图3-4所示。
接口(否)接口(是)
图3-4查询功能流程图
模块4:
删除功能设计。
作为班级管理员应该有管理班级的能力,删除功能的设计正是为班级管理员设置的管理功能之一。
其中包括两部分,一是删除班级成员,二是删除整个班级。
这个功能的实现需要使用SQL语言判断管理员所在的班级,遍历数据库中有无使用者欲删除的记录。
如果记录存在,将记录删除。
否则,返回信息到用户浏览端。
例如把姓名为‘李四’的人删除或删除班级‘计算机一班’。
模块设计流程如图3-5所示。
图3-5删除功能流程图
3.3数据库安全及设计描述
数据库设计无疑是以上功能实现的基础。
制作数据库表首先要确定实体的属性和实体间的关系。
数据库要存储所有的班级信息和用户信息,这些信息是班级的属性和用户的属性。
一个班级可以有若干的成员,也可以有一个以上的管理员。
一个管理员只属于一个班级。
实体间关系如图3-6所示。
图3-6E-R图
1)角色设计初步将系统中的用户角色分成三级,如表3-1所示。
表3-1角色划分
权限
描述
标记(Roles)
一般用户
查询资料
1
班级管理员
查询;
数据的录入、修改和删除
2
系统管理员
数据的录入、修改和删除;
用户帐号、权限的维护
3
2)权限设置使不同用户对不同模块有不同的操作权限。
如表3-2所示。
表3-2权限设置
模块
标记
说明
班级情况
SchoolWrite
“1”:
在该模块中有数据录入、修改的权限“0”:
在该模块中只能查看
用户档案
UserWrite
计划、总结、保留文件
FileWrite
3)学校名称录入用于录入班级的名称、类型,并自动生成唯一的ID号。
ID号为长整型数字类型。
ID将根据班级录入的顺序,自动从1递加上去。
3.4页面设计
客户端页面是用户和服务器之间实现人机交互的一个介质。
对它的制作要求简洁大方,色彩搭配要协调。
第4章系统实现
4.1模块的详细设计
4.1.1登录机制
网页中建立用户登录机制,为的是限制未经过登录的浏览者不能创建班级。
让用户以帐号方式登录网页是一种可行的网页管理方法。
在这个系统模块的后台数据库中建立USER_TABLE表,用来对用户的登录帐号和密码加以保存。
此处设置了用户对象的session值。
通过获取session值,遍历数据库,可以确定用户属于哪个班级和用户在班级中的身份。
结构图如4-1所示。
图4-1登录机制
表4-1是这个模块的实现文件。
表4-1实现文件
文件
说明
login.JSP
输入用户登录名和密码。
login_confirm.jsp
读取lifeng.jsp中用户输入的班级的属性。
用户若成功登录,将把登录的帐号和密码写入session对象。
Session.setPutValue(“userName”,userName);
Session.setPutValue(“userPassword”,Password);
4.1.2创建班级
班级创建是这个系统模块的核心功能之一。
系统通过在数据库中遍历用户输入的班级名来判断班级的建立是否有效。
使用脚本语言限制表单内的输入方式,如果表单值为空,在用户端输出“班级名不能为空”。
如下图所示;
图4-2创建班级页
为了保证不重复创建班级,同时也防止数据库冲突,在得到request.getParameter(“class_name”)时必须对数据库遍历。
如果班级名已经存在,返回信息“班级已经存在”。
此处将bean文件引入,做数据库的连接工作,通过Insert语句把班级的属性插入到数据库中。
<
%@pagecontentType="
text/html;
charset=gb2312"
%>
%@pageimport="
java.sql.*"
jsp:
useBeanid="
RegisterBean"
scope="
page"
class="
lifeng.works.linkDB"
/>
SQL条件查询语句检查表单中输入的班级信息是否与数据库中重复。
Stringsql="
select*fromCLASS_TABLEwhereclass_name='
"
+name1+"
'
;
ResultSetrs=RegisterBean.executeQuery(sql);
如果用户输入的班级名称在数据库中已存在,那么返回到register.jsp页,得到session值。
if(搜索到相同记录)
{
关闭数据库;
session.putValue("
register_message"
"
班级已存在!
);
//设置返回信息。
从新导回到创建页面<
%
}else
创建成功,记录存入数据库;
}
此处从表单中取出客户端的输入值必须被转换成与数据库中字段类型相一致的类型,否则不能够将出客户端的输入值正确存入数据库。
此子模块使用的文件如下表所示。
表4-2实现文件
Lifeng.jsp
输入要创建的班级的属性,包括,班级名称、学校、入学年级、所在系等。
Rerere.jsp
do_register.jsp
验证数据库数据的唯一性,并将合法数据存储到数据库。
4.1.3班级管理员的生成
班级管理员这个角色起到对班级日常工作的维护和管理的作用,角色权限高于普通的班级成员,那么需要特定的属性来标识管理员的身份。
系统表中增加Admi字段,若为管理员此列不为空,否则此列为空。
从图4-3可以看出ADMI列不为空的都是班级管理员。
图4-3user_table表结构
班级管理员也属于这个班级的一个成员,将他们存放在一个表中可以节省系统表空间,减少数据冗余和表之间复杂的关联。
首位班级的创建者被系统默认成为该班级的管理员,他的session值被保留,班级建立成功的同时把他的登录名存入class_table表的Admi字段中。
4.1.4删除功能的实现
主要技术环节是如何有效地与数据库连接,并通过使用SQL语句对数据库进行操作。
删除班级成员和班级是管理员权限的一项重要功能。
设计的实施如下所述。
从表单中取得字符串,然后查询数据库有无与其相等的记录。
如果有,按下删除键可以将其删除,如果记录不存在,返回用户信息,并可以继续重新操作。
具体流程:
if(表单为空)
输出班级成员数据库表
}else(不为空)
查询数据库中有无匹配的记录
StringstrSQL="
select*fromindividualwherezm='
+newString(zm.getBytes("
8859_1"
))+"
rs=st.executeQuery(strSQL);
输出结果集
if(!
rs.next())//遍历到数据库末没有匹配记录
返回给用户信息:
没找到“”
}
else(记录存在)
执行删除,并刷新数据库。
StringstrDel="
deletefromindividualwherezm='
st.executeUpdate(strDel);
rs=st.executeQuery("
select*fromindividual"
}//删除后更新数据库;
查询语句的执行
继续操作:
Ahref=delete3.jsp>
继续删除<
/A>
//自身连接,刷新后返回到自身。
}
关闭数据库。
删除班级是判断管理员属与那个班级,通过user_table表中class_name属性和class_table表中class_name属性把两个表关联起来。
这样班级管理员就只能删除与他班级属性相同的班级名和班级成员了。
此处从表单中取出客户端的输入值必须被转换成与数据库中字段类型相匹配的类型,否则不能够正确的进行数据库遍历。
图4-4删除页
4.1.5查询功能的实现
如果用户想要查找某人的信息或者想寻找某个班级中是否存在某人,那么这项功能正好满足使用者的需要。
设计思路是从表单中提取用户输入的字符,连接并查询数据库,如果查找到数据库中存在相匹配的记录,将其记录输出,否则返回一条用户信息“不存在”。
查询数据库表
返回给用户信息:
执行查询语句,并刷新数据库。
strSQL="
ResultSetrs10=st.executeQuery(strSQL);
//输出结果集。
Ahref=query.jsp>
继续查找<
}关闭数据库。
4.1.6留言功能的实现
此模块中通过获取管理员的session值来确定数据库操作的对象。
班级管理员可以使用这个功能在本班能留言。
具体实现:
java.io.*"
%
连接数据库对象;
Stringuser_name2=(String)session.getValue("
username"
//取得管理员的session值;
StringMytear=new
String(request.getParameter("
MyTeAr"
).getBytes("
));
//获取表单值;
st.executeUpdate("
updateuser_tablesettalk='
+Mytear+"
whereuser_name='
+user_name2+"
//将获得的表单信息存储到与session值对应的数据库记录中,获取数据库中user_name等于session值的留言记录值;