Jsp课程设计企业信息管理系统设计Word下载.docx
《Jsp课程设计企业信息管理系统设计Word下载.docx》由会员分享,可在线阅读,更多相关《Jsp课程设计企业信息管理系统设计Word下载.docx(34页珍藏版)》请在冰豆网上搜索。
通讯录管理模块、短消息管理模块、日程安排模块、工作记录模块、公司公告模块和工作会议模块。
各功能模块间的结构如图2.2所示。
图2.2功能结构图
该系统采用JSP技术实现页面的设计,主要页面组成如表2.1所示:
表2.1主要页面组成表
页面名称
JSP页面
登陆页面
login.jsp
通讯录页面
address.jsp
工作记录页面
worklog.jsp
注册页面
register.jsp
短消息页面
sms.jsp
公司公告页面
notice.jsp
登陆欢迎页面
welcome.jsp
日程安排页面
schedule.jsp
工作会议页面
meeting.jsp
3详细设计
3.1数据库设计
本系统所用到的数据库数据信息如下表所示:
表3.1数据库逻辑表
表格
名称
说明
user
用户表
用户信息
address
通讯录管理表
通讯录信息
sms
短消息管理表
短消息信息
schedule
日程安排表
日程安排信息
worklog
工作记录表
工作记录信息
notice
公司公告表
公司公告信息
meeting
工作会议表
工作会议信息
表3.2用户表
类型
长度
id
int
10
用户编号(唯一,索引)
username
varchar
50
用户名
password
用户密码
email
用户E-mail
表3.3短消息管理表
消息编号
接收者用户名
sender
发送者用户名
message
text
——
消息内容
sendtime
20
发送时间
isrend
1
是否已读
课程设计说明书NO.4
表3.4通讯录管理表
记录编号
录入者用户名
name
联系人用户名
sex
联系人性别
mobile
联系人手机号码
联系人E-mail地址
qq
联系人QQ号码
company
100
联系人公司
联系人地址
postcode
联系人邮编
表3.5日程安排表
安排表编号
year
4
日程年份
month
2
日程月份
day
日程日期
plan
日程内容
表3.6公司公告表
公告表编号
公告提交人用户名
title
公告标题
content
公告内容
公告发布时间
课程设计说明书NO.5
表3.7工作记录表
记录人员用户名
工作年份
工作月份
工作日期
工作标题
description
工作具体内容
logtime
记录时间
表3.8工作会议表
会议记录编号
会议记录员
startime
会议开始时间
endtime
会议结束时间
会议地址
会议主题
会议内容
数据库采用MySQL进行存储,其实施情况如图所示:
图3.1数据库表
课程设计说明书NO.6
图3.2user表属性图3.3schedule表属性
图3.4sms表属性图3.5meeting表属性
图3.6notice表属性图3.7worklog表属性
3.2动态网页设计
3.2.1MySQL参数文件db.jsp的设计
由于每一个需要访问MySQL的文件都需要创建数据库连接,因此会多次访问MySQL连接的参数,为了防止多次参数的不同,我们统一了一个MySQL参数文件inc/db.jsp,该文件定义如下:
沈阳大学
课程设计说明书NO.7
<
%@page
%
Stringdrv=
Stringurl=
Stringusr="
root"
;
Stringpwd="
123456"
%>
3.2.2检查用户名功能模块checkUsername.jsp的设计
通过JDBC连接MySQL数据库,实现对user用户表的检查,执行的SQL语句为:
select*fromuserwhereusername=‘username’
取得结果集ResultSet对象后,使用next()判断是否有记录,如果有记录则该用户名就存在返回true,否则就不存在返回false,程序段如下:
response.setContentType("
text/xml"
);
response.setHeader("
Cache-Control"
"
no-cache"
Stringusername=request.getParameter("
username"
booleanisValid=false;
Stringsql="
select*fromuserwhereusername='
"
+username+"
'
try{
Class.forName(drv).newInstance();
Connectionconn=DriverManager.getConnection(url,usr,pwd);
Statementstm=conn.createStatement();
ResultSetrs=stm.executeQuery(sql);
if(rs.next())isValid=true;
rs.close();
stm.close();
conn.close();
}catch(Exceptione){
e.printStackTrace();
out.println(e);
}finally{}
if(isValid){
out.println("
content>
该用户名已经存在!
/content>
}else{
ok<
}
课程设计说明书NO.8
3.2.3登陆验证功能模块login.jsp的设计
该模块需要实现如下功能:
●包含数据库子文件db.jsp,以可以去的数据库的参数变量;
●使用request的getParameter()函数取得用户输入的用户名参数username和密码参数password;
●根据username和password组合查询user表的SQL语句;
创建数据库连接,执行SQL语句的查询,如果查询结果不为空,即rs.next()返回值为ture,则表示验证成功,否则验证失败;
●验证成功则将用户名保存在session中,并使用response.sendRedirect()跳转到欢迎页面welcome.jsp,验证失败则返回登陆页面login.jsp。
该文件的代码如下:
%@pagelanguage="
java"
pageEncoding="
UTF-8"
%@includefile="
../inc/db.jsp"
Stringpassword=request.getParameter("
password"
andpassword='
+password+"
try{Class.forName(drv).newInstance();
Connectionconn=DriverManager.getConnection(url,usr,pwd);
Statementstm=conn.createStatement();
ResultSetrs=stm.executeQuery(sql);
if(rs.next())isValid=true;
rs.close();
stm.close();
conn.close();
e.printStackTrace();
out.println(e);
session.setAttribute("
username);
response.sendRedirect("
../welcome.jsp"
../login.jsp"
}%>
课程设计说明书NO.9
3.2.4注册功能模块register.jsp的设计
该模块需要实现以下功能:
●包含数据库子文件db.jsp,以可以取得数据库参数变量。
●使用request的getParameter()函数取得用户输入的用户名参数username、密码参数password、E-mail参数email
●创建数据库的连接,查询user表中是否存在该username
●如果查询结果为空,即rs.next()返回值为false,则表示不存在,否则该用户名不可重复使用。
●当用户名可用时,组合插入表user的SQL,执行一个用户的插入。
●如果执行了插入则跳转到登录页面login.jsp,否则返回注册页面register.jsp
Stringpassword1=request.getParameter("
password1"
Stringemail=request.getParameter("
email"
if(!
rs.next()){sql="
insertintouser(username,password,email)
values('
'
+password1+"
+email+"
)"
stm.execute(sql);
isValid=true;
catch(Exceptione){
if(isValid){response.sendRedirect("
else{response.sendRedirect("
../register.jsp"
课程设计说明书NO.10
3.2.5通讯录管理功能模块address.jsp的设计
该页面首先需要数据库参数文件db.jsp。
然后取得请求参数method,用来决定执行什么操作。
根据method的参数值决定调用的处理函数如下:
●如果method参数值为list,则调用列表函数list();
●如果method参数值为delete,则调用删除函数delete();
●如果method参数值为insert,则调用插入函数insert();
●如果method参数值为edit,则调用修改函数edit();
●如果method参数值为update,则调用更新函数update();
完整的框架代码如下:
Stringmethod=request.getParameter("
method"
Stringtopage="
../address.jsp"
if(session.getAttribute("
)==null){
topage="
}else{
Stringusername=(String)session.getAttribute("
//当前登录用户名
StringpageSize=request.getParameter("
pageSize"
//每页显示行数
StringpageNo=request.getParameter("
pageNo"
//当前显示页次
if(pageSize==null){//为空时设置默认页大小为25
pageSize="
25"
}
if(pageNo==null){//为空时设置默认为第1页
pageNo="
1"
}//保存分页参数,传递给下一个页面
request.setAttribute("
pageSize);
pageNo);
if(method.equals("
list"
)){//列表操作
list(request,drv,url,usr,pwd,username,pageSize,pageNo);
topage="
//跳到列表页
}elseif(method.equals("
delete"
)){//删除操作
delete(request,drv,url,usr,pwd,username);
//执行删除
课程设计说明书NO.11
//查询数据
topage="
add"
)){//新增操作
../address_add.jsp"
//跳到新增页
insert"
)){//插入操作
insert(request,drv,url,usr,pwd,username);
//执行插入
edit"
)){//修改操作
select(request,drv,url,usr,pwd,username);
//执行查询
../address_edit.jsp"
//跳到修改页
update"
)){//更新操作
update(request,drv,url,usr,pwd,username);
//更新数据
}
jsp:
forwardpage="
%=topage%>
/>
!
--
(1)列表函数-->
%!
publicbooleanlist(HttpServletRequestrequest,Stringdrv,Stringurl,
Stringusr,Stringpwd,Stringusername,StringstrPageSize,
StringstrPageNo){
try{//创建数据库连接
Class.forName(drv).newInstance();
Connectionconn=DriverManager.getConnection(url,usr,pwd);
Statementstm=conn.createStatement();
intpageSize=Integer.parseInt(strPageSize);
intpageNo=Integer.parseInt(strPageNo);
intstart=pageSize*(pageNo-1);
Stringsql1="
selectcount(*)ascountallfromaddresswhereusername='
ResultSetrs1=stm.executeQuery(sql1);
if(rs1.next()){//计算总行数并保存
Stringcountall=rs1.getString("
countall"
introwCount=Integer.parseInt(countall);
request.setAttribute("
rowCount"
rowCount);
intpageCount=rowCount%pageSize==0rowCount/pageSize
:
rowCount/pageSize+1;
pageCount"
pageCount);
intpageFirstNo=1;
//首页
intpageLastNo=pageCount;
//尾页
课程设计说明书NO.12
intpagePreNo=pageNo>
1pageNo-1:
1;
//前一页
intpageNextNo=pageNo<
pageCountpageNo+1:
pageCount;
//后一页
pageFirstNo"
pageFirstNo);
pageLastNo"
pageLastNo);
pagePreNo"
pagePreNo);
pageNextNo"
pageNextNo);
}
rs1.close();
//取得当前页数据SQL
Stringsql2="
select*fromaddresswhereusername='
+username