javaweb 实验报告Word格式.docx
《javaweb 实验报告Word格式.docx》由会员分享,可在线阅读,更多相关《javaweb 实验报告Word格式.docx(27页珍藏版)》请在冰豆网上搜索。
任务
钱丽卿
1004060225
网页首页模块设计
孙杰
1004060226
网页用户中心模块设计
张浩成
1004060228
网页留言簿及产品地带模块设计
2系统分析
2.1需求分析
为了让产品快速推广,宣传是必要的手段,只要宣传做的好,产品的销售才会好,其中互联网就是对产品宣传最快的手段之一。
一个好的企业门户网站,会给客户留下很好印象,从而会促进客户购买该产品。
2.2可行性分析
企业网站建设所面对的不再是“被动”的读者,而是有目的的“客户”。
买主潜在的客户将通过Internet中东的找到企业网站,要求他们所需要的服务。
一个设计得当的企业网站,将能满足使用者的需求,甚至达到双向的沟通,这是一般传统媒体做不到的。
本系统主要用到了JSP+JavaBean技术。
JSP用来做页面,JavaBean用来做业务处理,一个JSP页面可以将数据指派多个JavaBean来完成,只需要在JSP页面上调用JavaBean即可,同时将代码从页面中分离出来,实现代码的可重复使用,从而更有效地维护了Web应用,这是典型的JavaWeb开发模式。
3系统设计
3.1系统目标
根据需求分析的描述及与用户的沟通,现制定系统实现目标如下:
界面设计简洁、友好、美观大方。
操作简单、快捷方便。
数据存储安全、可靠。
针对某行业或某一问题提供相应的解决方案。
为网站管理员提供方便、快捷的网站维护平台。
提高在线上传/下载软件数据包的功能。
网站运行安全稳定。
3.2系统功能结构图
企业门户网站前台功能机构图如图:
图3-1前台功能结构图
企业门户网站的后台功能结构图如图:
图3-2后台功能结构图
4数据库设计
4.1概念结构设计
总体结构E-R
图4-1总体E-R图
4.2逻辑结构设计
guestboard(留言ID,留言标题,留言人,留言时间,留言内容,是否回复,回复时间,回复内容)
soft(软件ID,软件名称,版本,价格,上传时间,上传人,贴图ID,运行环境,程序大小,推荐指数,下载次数,是否为正式版本,简介,下载路径,其他说明)
ssort(类别ID,类别名称,类别简介)
user(用户名,密码,真实姓名,密码问题,密码答案,头像ID,性别,年龄,联系电话,E-mail地址,OICQ号码,注册时间,个人地址,个人主页,权限级别,状态显示,个人简介)
guestboard(留言信息表)
字段名
数据类型
字段大小
描述
gid
int
11
留言ID
title
varchar
100
留言标题
gust
50
留言人
grime
datetime
留言时间
content
200
留言内容
rtime
回复时间
gflag
tinyint
1
是否回复
recontent
text
回复内容
表4-1guestboard表
soft(软件信息表)
sfid
软件ID
name
软件名称
edition
版本
price
float
价格
uptime
上传时间
uid
上传人
lid
贴图ID
sid
软件类别ID
environment
运行环境
lilesize
程序大小
commend
推荐指数
loadnum
下载次数
regular
path
varchar[50]
下载路径
resume
varchar[200]
其他说明
表4-2soft表
ssort(软件类别信息表)
类别ID
类别名称
resunme
类别简介
表4-3ssort表
user(用户信息表)
Uid
用户名
Password
密码
Name
真实姓名
Regqu
密码问题
Reqanswer
密码答案
Iid
头像ID
Sex
Tinyint
性别
Age
年龄
Tel
联系电话
Email
E-mail地址
Qq
OICQ号码
Regtime
Datetime
注册时间
Address
个人地址
http
个人主页
Status
Int
权限级别
State
状态显示
250
个人简介
表4-4user表
5公共模块设计
5.1数据库连接及操作类
基本数据库操作的JavaBean是一个公共类,通常包括数据的方法getConnection()、获取结果集总记录数的方法getRow()、删除数据的方法Delete()。
下面为企业门户网站中的基本数据库JavaBean“Database”。
(1)先将“Database”保存在指定的包中,并导入所需的类包,再定义“Database”类并定义静态变量及构造方法。
关键代码如下:
publicclassDatabase{
publicstaticConnectionconn=null;
publicStatementstmt=null;
publicResultSetrs=null;
privatestaticStringpropFileName="
/com/connDB.properties"
;
//指定资源文件保存的位置
privatestaticPropertiesprop=newProperties();
privatestaticStringdbClassName="
com.mysql.jdbc.Driver"
privatestaticStringdbUrl=
"
jdbc:
mysql:
//127.0.0.1:
3306/db_myEnterprise?
user=root&
password=123456&
useUnicode=true"
publicDatabase(){
try{
InputStreamin=getClass().getResourceAsStream(propFileName);
prop.load(in);
//通过输入流对象加载Properties文件
dbClassName=prop.getProperty("
DB_CLASS_NAME"
);
//获取数据库驱动
dbUrl=prop.getProperty("
DB_URL"
"
password=111&
useUnicode=true&
characterEncoding=gbk"
}
catch(Exceptione){
e.printStackTrace();
//输出异常信息
}
}
(2)创建连接数据库的方法getConection(),该方法返回Cnoection对象的一个实例。
publicstaticConnectiongetConnection(){
Class.forName(dbClassName).newInstance();
conn=DriverManager.getConnection(dbUrl);
catch(Exceptionee){
ee.printStackTrace();
if(conn==null){
System.err.println(
"
警告:
DbConnectionManager.getConnection()获得数据库链接失败.\r\n\r\n链接类型:
+
dbClassName+"
\r\n链接位置:
+dbUrl);
returnconn;
(3)定义getRow()方法获取结果集的总记录数。
由于ResultSet对象没有提供直接获取结果集总行数的方法,所以此处需要定义获取结果集总数的方法。
publicstaticintgetRow(Stringsql){
inti=0;
conn=Database.getConnection();
PreparedStatementps=null;
ResultSetrs=null;
ps=conn.prepareStatement("
SELECTCOUNT(*)FROM"
+sql,
ResultSet.TYPE_SCROLL_INSENSITIVE,
ResultSet.CONCUR_READ_ONLY);
rs=ps.executeQuery();
if(rs.next()){
i=rs.getInt
(1);
}catch(SQLException