Web课程设计说明书样本
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1、课程设计要求和内容
1.1设计要求
本次课程设计是进行一个动态网站的设计、开发及调试,是对“WEB编程”、“面向对象程序设计”、“数据结构”、“数据库原理”等课程中所学知识和所掌握技能的一次综合性的应用设计训练,进一步熟悉WEB编程的方法,提高动态网站的设计、开发和调试能力,完成一个动态网站“信息发布与管理系统”的设计、开发及调试。
1.2 设计内容
1、系统分析,划分功能模块,画出系统结构图;
2、设计数据库,画出E-R图,建立表和关联;
3、动态网站的设计,包括静态页面和动态页面两部分:
(1)静态页面:使用HTML语言和Dreamweaver设计,显示页面的静态内容;
(2)动态页面:使用ASP和VBScript脚本语言编程,实现数据库的操作;
2 系统分析
2.1 设计目标
信息发布与管理系统是一个模块化可灵活重建的软件系统。
由于信息内容发布及管理的应用范围广泛,而它的功能相对独立,因此在软件设计的时候,充分地考虑了各项信息内容发布及管理功能的模块化,最终实现一个具有通用接口,并能根据用户的需求,实现表现形式个性化定制的灵活高效的信息发布和管理软件。
2.2 系统功能结构
信息发布与管理系统主要应用在企业信息系统、新闻网站、文档资料管理系统等各个方面,已经为众多的企事业单位构建了理想的信息发布与管理的平台。
信息发布与管理系统主要的功能模块有信息内容的上传、发布、维护;网页栏目(频道)的管理;网页界面的管理、用户权限的管理等等,如图2.1所示。
组长:邬荣飞组员:王新春、张冲
2.1 系统结构图
王新春:用户管理、管理员管理
邬荣飞:个人主页
张冲:大论坛、参与管理员权限的设计及实现
2.3 开发平台和工具
本系统是使用ASP技术在Windows操作系统下进行开发的,WEB服务器是IIS;
前台使用DreamWeaver集成开发环境进行网页设计和脚本编程,使用IE浏览器查看
结果;后台使用SQL Server 2008据库系统。
3 数据库设计
信息发布与管理系统后台数据库包含4个表:用户信息表,用户类别表,信息大类表,信息子类表,文件信息表。
用户信息表和用户类别表的结构请参考“用户注册管理系统”。
在这里画实体关系图(E-R图)
信息大类表ATInfoGroup的各字段说明见表3-1。
表3-1 新闻大类表
信息子类表ATInfoSubGroup的各字段说明见表3-2。
表3-2 信息子类表
信息表ATInfo的各字段说明见表3-3
表3-3 信息一览表
信息发布与管理系统各数据库之间的关系如图3.1所示。
其中:Group=AtinfoSubGroup.parid
SubGroup=AtinfoSubGroup.Subid
ATinfoGroup.GroupID=AtinfoSubGroup.parid
图3.1 数据库之间的关系图
4系统实现
信息发布与管理系统实现主要包括栏目维护、模板管理、内容维护3部分,下面主要介绍上面三个模块中的比较实用的三个部分:文件类别管理、多文件上传、文件内容发布。
(只写自己负责的模块)
4.1文件类别管理
文件类别管理主要是创建信息栏目的大类和子类,包括栏目是否开通、栏目标题编辑、指定栏目维护人员、授权栏目发布。
如图4.1所示。
栏目类别管理模块add.asp中包括添加栏目大类addl.asp、添加栏目子类addzl.asp,删除大类deldl.asp、查看栏目类别type_wj.asp四个功能模块。
图4.1 栏目的类别管理
4.1.1栏目类别管理模块add.asp的源代码如下:(略)
在栏目类别管理中,由于表单的提交动作都是在JavaScript中完成,因此在设置三个按钮对象时,其动作应为“无”,否则会出现提交两次行为。
表单Form的方法为“post”,即method="post",如果方法取默认值,页面递交时将自动传递所有可能的参数而不是JavaScript 脚本中指定获取的内容。
选择填加子类时,必须选择相应的大类栏目。
4.2多文件上传
文件上传的方法分为有组件上传和无组件上传。
这两种上传文件的功能方法如下:
①WLONG3D:全功能无组件文件上传系统wlup1;
②LyfUpload:免费的ASP组件,遵从RFC-1867 HTTP 请求,它可以在ASP页面中接收客户端浏览器使用encType= "multipart/form-data" 的Form上传的文件。
随着新闻内容的极大丰富,大多数新闻都包含多个图片或是多个附件,如何实现多个文件的上传、上传后的文件如何存贮、如何显示多个上传的文件?现以一新闻网站上传为例来说明。
新闻的表现形式一般有以下三种形式:
网站自定义样式新闻;
链接到其他网站的新闻;
作者自己设计好的网页新闻。
4.2.1自定义样式新闻模块Xxfb.asp的源代码如下:(略)
在文件上传时,先要确定新闻的类别,当新闻大类栏目改变时,子类栏目随着同步改变。
所以程序一开始就加载子类栏目。
在上传附件时,首先选择图片附件的个数,输入新闻正文后,根据你要的图片个数,填写好各图片在网页中的说明并选择要上传的图片,单击“确认提交”后,交由表单所指定的页面Xxfbcp.asp去处理数据的上传。
为了保证数据的一致性,提交表单时做了大量的审核工作,如:选择了子类为“图片新闻”,就必须有图片上传,也就是图片个数必然大于等于1;大类栏目若为“相关链接”时,文件上传形式必须为相关链接所指定的页面Xxfb2.asp。
特别说明的是对图片说明是否填写的校验中,数组
formxxfb.txtsm[j].value (表单中的图片说明的文本框的值)是动态获取的,如果只有一个图片,这个表达式formxxfb.txtsm[j].value 就不成立,因为一个对象不能构成一个组。
所以程序做了特别处理,当图片个数n=1 时单独进行数据校验。
该模块页面显示的效果如图4.3所示:
4.2.2使用LyfUpload 组件上传图片模块Xxfbcp.asp 的源代码如下:
图4.3 多图片网页上传
在信息发布上传页面Xxfbcp.asp,有几个问题需要说明一下:
上传后的文件存放,这里采用的是统一存放在服务器一规定的DAT目录下(是一个相对路径),每一个上传的文件夹都是以当前时间来组合命名的,这里用到了一个自定义的外部函数makefilename(),所以每一个上传到服务器的文件夹都不会重名。
数据库中存放了每一文件的文件夹的名称、图片名以及图片说明。
如是多个图片上传时,将它们的名称和说明用分号“;”进行隔开。
因此图片说明中,不能出现分号,否则在后面的显示文件内容时会出错。
有图片上传才创建文件夹进行存放,实际上不是每一个新闻都有图片。
因此程序开始就进行判断,如果N大于0就创建文件夹,这样就避免了产生大量无文件存放的文件夹。
多文件上传时,即可以是图像文件,也可以是Word文档或是压缩文件包(*.rar),但在显示方式就不一样,就要根据文件名的后缀加以区别。
4.3文件内容发布
对于上传到数据库中的文件,首先要经过相关栏目的管理员审核才可以发布到Internet 上。
不同显示方式的新闻内容(自定义格式、链接外部网站、已有网页文件)都集中在同一数据库表中,程序是如何加以区分并正常显示?
4.3.1显示文件内容模块ShowDetail.asp的源代码如下:
首先看到数据库表ATinfo结构中,不管什么类型的文件,都包括有文件大类InfoGroup、子类InfoSubGroup及标题Title三部分。
带图片的新闻页面就包括字段:图片文件夹的名称Filelocate ,图片说明T1PicNotes,
新闻内容T1Conten 及图片名称T1ImgFile 。
带链接的新闻页面就包括字段:网页链接的URL 网址T2Url 。
已有的网页新闻就包括:主页面文件T3MainFile ,与主页面相关的其它文件统统放入到图片文件夹Filelocate ,与图片本身状态无关。
接下来分析网页显示,当选择了某一新闻进行浏览时,由相应的ID 找到数据库中对应的新闻,先进行加1处理,完成新闻的计数。
特别说明的是,一条刚上传过来的新闻,其点击次数字段是一个空值,所以不能够一味的加1,是要进行判断,这里用到函数isNull(rs("ClickCount")),如果其值为空,那么点击次数(ClickCount )就为1,这样就有效地避免了出现一个空值加1的逻辑错误。
在数据库中找到了对应的新闻后,读取新闻的类型(前面提到的三种类型之一),如果是“自定义”新闻,就找到对应的上传到网站上的该主页文件去直接显示;如果是“链接” 新闻,就转移到对应的URL 地址进行显示。
最后如果是“自动”版面的新闻就由程序来控制网页的显示,这里面难点是多个图片的显示问题。
在此使用了一自定义函数GetT1ImgFileN(rs("T1ImgFile") & "", t)来处理,首先是T=0时处理第一个图片的显示,如存在则显示图片内容,没有则不显示。
其次t 为其它值时,借助:<%t = 1
Do While True
If GetT1ImgFileN(rs("T1ImgFile") & "", t ) <> "" Then ‘ 显示图片..(见源代码部分) 显示图片的文字说明… Else Exit Do End If t =t + 1 Loop%>
这样就完成了多个新闻图片按照规定的格式显示,图4.4显示的是同一新闻页面。
图4.4多图片显示新闻
5 调试分析
在此次WEB课程设计中,遇到了许多的问题,通过老师的指导和组员之间的协作,最后都逐个解决了这些问题:
1、使用Response.Redirect(url) 时导致错误“ The HTTP headers are already written to
the client browser. Any HTTP header modifications must be made before writing page content”,通过老师指导得知,此错误为HTTP 标题在写入页内容之后,写到了客户浏览器中。
任何 HTTP 标题的修改必须在写入页内容之前进行,解决的方法为在ASP文件最开头加入Response.Buffer = True,在文件的结尾加入Response.Flush。
2、在运行asp文件的时候出现下面的错误提示:“该页无法显示。
您试图从目录中执行CGI、ISAPI 或其他可执行程序,但该目录不允许执行程序。
HTTP 错误403.1 - 禁止访问:执行访问被拒绝。
”经组员研讨后找到解决办法,在IIS中该虚拟目录上右键“属性”,在“执行权限”中选择“脚本和可执行文件”。
6 小结
通过这次课程设计,我们对一个动态网站从设计到功能的实现有了一个更全面的理解。
同时老师和同学的相互讨论促使我们对课本上的知识理解得更加全面,并且将其运用到实践中。
培养了我们的团队协作解决问题的能力。
在这次课设中遇到好多书上没有提到的问题,通过运用书上的知识,并且将其加以现实化,解决了这些问题,提高了我们独立思考解决问题的能力。
这一切,都将成为我以后工作中的一笔很大的财富,也为以后走上工作岗位打下了基础。
7考文献
1.肖金秀,ASP网络编程技术,清华大学出版社,2001年10月
2.于丙朝,网站开发:项目规划设计与实现,电子工业出版社,2004年10月
3.方美琪,XML及其在电子商务中的应用,清华大学出版社,2003年8月
4.万峰科技,ASP网站开发,电子工业出版社,2005年8月
5. Richard Anderson Chris Blexrud,Professional Active Server Pages 3.0,机械工业出版社,
2000年10月。