WEB课程设计报告范本模板Word下载.docx
- 文档编号:21214796
- 上传时间:2023-01-28
- 格式:DOCX
- 页数:23
- 大小:385.84KB
WEB课程设计报告范本模板Word下载.docx
《WEB课程设计报告范本模板Word下载.docx》由会员分享,可在线阅读,更多相关《WEB课程设计报告范本模板Word下载.docx(23页珍藏版)》请在冰豆网上搜索。
第二章系统开发模式及技术
2。
1JSP简介
JSP(JavaServerPages)是一种建立在Servlet规范提供的功能之上的动态网页技术,和ASP类似,他们都是在通常的网页中嵌入脚本代码,JSP文件中嵌入的是Java代码和JSP标记。
用JSP开发的Web应用是跨平台的,既能在Linux下运行,也能在其他操作系统上运行。
2JSP的特点
JSP技术在多个方面加速了动态Web页面的开发,具有以下特点。
(1)将内容的生成和显示进行分离
使用JSP技术,Web页面开发人员可以使用HTML或者XML标识来设计和格式化最终页面。
使用JSP标识或者小脚本来生成页面上的动态内容(内容是根据请求来变化的,例如请求帐户信息或者特定的一瓶酒的价格)。
(2)强调可重用的组件
绝大多数JSP页面依赖于可重用的,跨平台的组件(JavaBeans或者EnterpriseJavaBeansTM组件)来执行应用程序所要求的更为复杂的处理.开发人员能够共享和交换执行普通操作的组件,或者使得这些组件为更多的使用者或者客户团体所使用.基于组件的方法加速了总体开发过程,并且使得各种组织在他们现有的技能和优化结果的开发努力中得到平衡。
(3)采用标识简化页面开发
Web页面开发人员不会都是熟悉脚本语言的编程人员。
JavaServerPage技术封装了许多功能,这些功能是在易用的、与JSP相关的XML标识中进行动态内容生成所需要的。
标准的JSP标识能够访问和实例化JavaBeans组件,设置或者检索组件属性,下载Applet,以及执行用其他方法更难于编码和耗时的功能。
(4)健壮性与安全性
由于JSP页面的内置脚本语言是基于Java编程语言的,而且所有的JSP页面都被编译为JavaServlet,JSP页面就具有Java技术的所有好处,包括健壮的存储管理与安全性.
(5)良好的移植性:
作为Java平台的一部分,JSP拥有Java编程语言"
一次编写,隋处运行”的特点。
(6)企业级的扩展性和性能:
当与Java2平台、企业版(J2ee)和EnterpriseJavaBeans技术整合时,JSP页面将服务器JSP页面中的程序代码的识别就是依靠一些基本指令完成.
2.3JSP技术
JSP技术使用Java编程语言编写类XML的tags和scriptlets,来封装产生动态网页的处理逻辑。
网页还能通过tags和scriptlets访问存在于服务端的资源的应用逻辑。
JSP将网页逻辑与网页设计和显示分离,支持可重用的基于组件的设计,使基于Web的应用程序的开发变得迅速和容易.
4访问WEB数据库常见技术
目前在WINDOWS环境下有多种访问WEB数据库的技术,主要有:
(1)公共网关接口CGI(CommonGatewayInterface)
CGI是较早实现的技术。
适用于多种服务器平台,如UNIX、WINDOWS等,但CGI的开发成本高、维护困难、功能有限、不具备事务处理功能、占用服务器资源较多。
(2)INTERNET数据库连接器IDC(InternetDatabaseConnector)。
IDC集成在ISAPI(InternetServerAPI)中,充分利用了DLL技术,易扩充,但编程较CGI更为复杂,只适用于小型数据库系统.
(3)先进数据库连接器ADC(AdvanceDatabaseConnector)
ADC提供了ActiveXControl来访问数据库,它的主要特点是数据查询由用户端浏览器执行,因而需将服务器端数据库中的部分记录下载到用户端,系统开销较大、响应慢,只适用于特别频繁的数据库查询操作。
(4)JAVA/JDBC语言编程
JAVA语言是一种面向对象、易移植、多线程控制的语言,可通过JDBC去连接数据库。
用JAVA/JDBC编写的软件可移植性强,适用于多种操作系统,但其执行效率和执行速度还不理想,目前无法建立高效、高速的应用。
(5)动态服务器页面JSP(ActiveServerPage)
JSP是微软公司推出的WEB应用开发技术,着重于处理动态网页和WEB数据库的开发,编程灵活、简洁,具有较高的性能,是目前访问WEB数据库的非常好的选择。
5本系统采用的数据库访问技术
本新闻发布系统使用JDBC访问MySql数据库,JDBC(JavaDataBaseConnectivity,java数据库连接)是一种用于执行SQL语句的JavaAPI,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。
JDBC为工具/数据库开发人员提供了一个标准的API,据此可以构建更高级的工具和接口,使数据库开发人员能够用纯JavaAPI编写数据库应用程序,同时,JDBC也是个商标名。
有了JDBC,向各种关系数据发送SQL语句就是一件很容易的事.换言之,有了JDBCAPI,就不必为访问Sybase数据库专门写一个程序,为访问Oracle数据库又专门写一个程序,或为访问Informix数据库又编写另一个程序等等,程序员只需用JDBCAPI写一个程序就够了,它可向相应数据库发送SQL调用。
同时,将Java语言和JDBC结合起来使程序员不必为不同的平台编写不同的应用程序,只须写一遍程序就可以让它在任何平台上运行,这也是Java语言“编写一次,处处运行”的优势.
Java数据库连接体系结构是用于Java应用程序连接数据库的标准方法。
JDBC对Java程序员而言是API,对实现与数据库连接的服务提供商而言是接口模型。
作为API,JDBC为程序开发提供标准的接口,并为数据库厂商及第三方中间件厂商实现与数据库的连接提供了标准方法。
JDBC使用已有的SQL标准并支持与其它数据库连接标准,如ODBC之间的桥接。
JDBC实现了所有这些面向标准的目标并且具有简单、严格类型定义且高性能实现的接口。
访问并操纵数据库服务器中的数据。
JDBC由JSP技术支持,其数据库访问模型如下图所示。
图2-1采用JDBC技术实现数据库访问模型
6B/S开发模式
B/S结构,即Browser/Server—-浏览器/服务器结构,浏览器发送请求而服务器应答请求.其工作原理如下
图2—2B/S结构的三层模型
前台通过IE、Firefox等浏览器向Web服务器发送HTTP请求,web服务器通过JSP和一些中间件访问后台数据库,并将操作的结果以HTML页面的形式返回给前端的浏览器。
比与C/S模式,采用B/S模式用户的操作更加简单,不像C/S需要在客户端进行客户端程序,只需要一个通用浏览器即可完成数据的请求与接收,大幅的减少了客户端的维护工作.同时,B/S模式使用的技术是Internet的Web技术,因而更适合于网上的信息发布。
第三章总体设计
因为网络中新闻发布的频率非常高,如果没有一个高效的新闻发布管理系统,则维护工作将非常繁琐,浪费很多时间和精力。
通过使用新闻发布系统,管理员只需设置标题、内容和图片等新闻,系统将自动生成对应的网页,使新闻发布和管理变得很轻松。
而对于前台界面,为适应多个用户的需求,必须达到友好,方便,简洁,易用的特点.本文将根据前期的需求分析,对新闻发布系统进行总体设计。
3。
1系统功能描述
新闻发布系统包括新闻类别管理、新闻发布管理、新闻搜索、留言评论管理等模块.具体描述如下:
(1)新闻类别管理:
a。
新闻类别的添加;
b.新闻类别的修改;
c。
新闻类别的删除;
(2)新闻发布管理:
基本新闻信息的发布,包括新闻标题、新闻内容等;
b.基本新闻信息的修改;
基本新闻信息的删除;
(3)新闻统计模块
a.对点击次数的统计
b。
根据点击次数排除点击排行榜
c.根据发布时间的先后时间排出最新文章
(4)新闻搜索模块:
按照新闻标题搜索;
—
按照新闻内容搜索.
c.搜索结果的显示
(5)评论管理模块:
网友发表评论、留言;
对留言的过滤
c.管理员对留言的管理
2E-R模型
根据分析可划分出新闻信息、新闻类别信息、评论信息和用户信息和几个实体,其具体的E-R模型如下
(1)新闻信息
图3—1新闻信息实体的E-R模型
(2)评论信息
图3—2评论信息实体的E—R模型
(3)用户信息
图3—3用户信息实体的E—R模型
(4)新闻类别信息
图3—4新闻类别信息实体的E—R模型
(5)ER关系图
图3-5ER关系模型图
3.3系统流程图
图3—6系统的基本流程
任何用户从浏览器输入地址进入本新闻发布系统后首先进入新闻主界面,即可进行新闻的查看,根据标题或内容进行新闻的搜索,以及进入评论页面进行新闻的评论。
输入管理员登录页面的地址,进入登录页面,用户输入用户名和密码以及正确的验证码后可进入后台管理,有新闻的发布,新闻的管理,新闻类别的管理,新闻评论的管理等。
断开与服务器的连接即退出本新闻系统。
3.4数据流图
(1)前台数据流图
图3-7前台的数据流图
数据库中有两个表用于前台的数据的存放,新闻信息表newsinfo中存放新闻的内容,标题,点击量等数据,通过各种命令与前台进行数据交换.留言信息表存放用户的留言.
(2)后台数据流图
图3-8后台数据流图
3.5系统功能模块划分
从功能描述的内容可以看到,本系统可以实现五个完整的功能.根据这些功能,设计出系统的功能模块,如下图所示。
图3—9新闻发布总体系统功能模块示意图
3.6数据库设计
本系统采用MySql数据库,在数据库中使用数据表article来储存现有的新闻信息。
表的结构如表
字段名称
数据类型
说明
newsid
Int(10)unsigned
新闻编号,自动增加(主键)
biaoti
Varchar(45)
新闻的标题
fabushijian
datetime
发布时间
pinglun
新闻评论id
laiyuan
新闻来源
tupian
新闻图片路径名称
Zhaiyao
Text
新闻摘要
guanjianzi
新闻关键字
classid
新闻类别id
zhengwen
正文
fabiaozhe
发表者
banquanxinxi
版权信息
dianjialv
点击率,浏览一次增加1
表3-1新闻信息表newsinfo
使用数据表users来储存管理员的信息,表的结构如下表
username
管理员用户名
userpasswd
Varchar(128)
管理员用户密码
表3—2管理员信息表users
使用数据表comment来储存新闻评论信息,表的结构如下表
新闻id
ComTime
timestamp
评论时间
ComPerson
评论者
Content
text
评论内容
表3-3新闻评论comment
使用数据表classes来储存新闻类别信息,表的结构如下表
类别id自动增长
classname
类别名称
表3—4新闻类别信息名称classes
第四章详细设计
4.1前台系统
4。
1.1新闻的查看
主页面如下图
图4-1系统主页界面效果
任何用户在浏览器输入网址后进入本站界面,即可查看新闻标题及发布时间,新闻的评论、新闻的点击率等,单击任意一条新闻标题即可查看新闻内容。
图4-2新闻内容界面效果
显示一条新闻的主要代码为:
〈%
request.setCharacterEncoding(”gbk”);
SearchNewssh=newSearchNews();
Newsn=sh.getNews
(1);
if(n!
=null)
{
%〉
<
%out。
println(n。
getBiaoti());
%>
print(n.getFabushijian());
%〉〈/td〉
〈%out.println(n。
getLaiyuan());
%〉
%out.println(n。
getZhaiyao());
%〉<
/td〉
〈%out。
getTupian());
%out.println(StringToHtml。
toHtml(n.getZhengwen()));
%>
〈%out。
getGuanjianzi());
%〉
println(n.getFabiaozhe());
getClassid());
getDianjilv());
%}%>
%out。
getBanquanxinxi());
%if(n。
getComcount()!
=0){%>
ahref=”commentofnew.jsp?
newid=<
print(n。
getNewsid());
%〉"
〉<
em〉评论
〈%out。
getComcount());
条>
>
/em>
〈/a>
〈%}else{%〉〈em〉评论
<
%out.print(n.getComcount());
%〉条〉>
〈/em〉〈%}%>
〈/td>
/tr>
p>
〈hr>
我要留言:
/hr>
〈formaction="
AddCommentOfNews”method="
post"
enctype=”multipart/form—data”name="
form1"
id="
form1”〉
textareaname="
commenttext”rows="
15”cols=”61”>
/textarea>
〈inputname="
newsid"
type="
hidden”value="
getNewsid());
%〉”/〉
inputname="
Submit"
submit"
value="
提交"
/>
4.1.2评论功能的实现
评论管理的数据流图如下
图4—3评论管理数据流图
评论与浏览页面:
图4-4评论浏览添加评论页面
评论实现的事务处理相关代码:
protectedvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{
//TODOAuto-generatedmethodstub
doPost(request,response);
}
/**
*@seeHttpServlet#doPost(HttpServletRequestrequest,HttpServletResponseresponse)
*/
protectedvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{
//TODOAuto—generatedmethodstub
request.setCharacterEncoding("
gbk”);
response.setCharacterEncoding(”gbk”);
intnewsid=Integer.parseInt(request。
getParameter("
newsid”));
Stringcomment=request.getParameter(”commenttext”);
Stringcomperson=request.getParameter("
person”);
Stringtype=request。
type"
);
PrintWriterpw=response。
getWriter();
pw.println(newsid);
pw.println(comment);
Commentcomm=newComment();
comm。
setContext(comment);
setNewid(newsid);
setComPerson(comperson);
intresult=ModifComment。
insert(comm);
if(type.equals("
new"
))
{
response。
sendRedirect("
oneofnews。
jsp?
newid="
+newsid);
}
elseif(type.equals("
comment”))
commentofnew.jsp?
newid=”+newsid);
elseif(type。
equals(”admincomment"
{
admin\\admin_commentview.jsp?
+newsid);
添加一条评论的代码为:
publicclassInsertComment{
publicstaticvoidinsert(Commentcomment)
{
DBConnectPooldbp=DBConnectPool.getInstance();
Connectionconn=dbp.getConnection();
PreparedStatementpstmt=null;
try{
pstmt=conn.prepareStatement("
inserintocommentvalues(?
,?
?
)"
);
pstmt。
setInt(1,comment。
getNewid());
pstmt.setDate(2,(java。
sql.Date)(newDate()));
pstmt.setString(3,comment。
getComPerson());
pstmt.setString(4,comment.getContext());
pstmt.executeUpdate();
}catch(SQLExceptione1){
//TODOAuto—generatedcatchblock
e1。
printStackTrace();
}finally
try
if(pstmt!
=null)
pstmt。
close();
}catch(SQLExceptionel)
el.printStackTrace();
}
}
4.2后台管理系统的设计
4.2.1后台登陆模块
图4—5后台登陆界面
当用户在对话框输入正确的用户名、密码及随机产生的验证码时,进入后台页面lf。
jsp,否则回到登陆页面login.jsp并提示原因。
登录事务处理
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- WEB 课程设计 报告 范本 模板