资源描述
摘要 ASP.NET是新一代Web应用程序开发平台,它是一个已编译的、基于.NET的开发环境,它提供了生成企业级应用程序所必需的全部服务,基于 .NET Framework 生成,整个框架都可用于任何 ASP.NET 应用程序。可以使用任何与公共语言运行库(CLR)兼容的语言(包括 Visual Basic.NET、C# 和 JScript .NET)来创建应用程序。该系统使用ASP.NET(C#语言)和ADO.NET技术开发, 实现了网站新闻的动态管理,使得对信息的管理更加及时、高效,提高了工作效率,具有一般新闻系统的功能,主要包括前台新闻查看区和后台管理区,可为学校各部门发布新闻,为校园网站提供新闻发布与管理的服务。
关键词 ASP.NET ADO.NET 新闻管理 Browser/Server
目录
引言 1
1研究背景 2
1.1 国内外研究现状及发展趋势 2
1.2 研究目的、意义和范围 2
2 需求分析 4
2.1 需求分析 4
2.2 新闻系统的性能需求 5
2.3 运行环境要求 5
2.3.1设备 5
2.3.2支持程序 5
3 系统结构设计 6
3.1 新闻系统的功能模块简介 6
3.2 新闻系统的模型结构 7
3.3系统的数据流图 7
4 系统的数据库设计 8
4.1 实体图设计 8
4.2 数据表设计 9
5 系统功能模块设计 8
5.1 各主要窗体页的图形界面介绍 11
5.2 Web.config文件配置 12
5.3 系统部分重要功能及其代码 13
5.3.1 Web用户控件 13
5.3.2 添加发布新闻 13
5.3.3 用户注册 14
5.3.4 用户修改密码 14
总结 16
参考文献 17
引言
JSP(Java Server Pages)是Sun Microsystems公司所倡导,许多公司参与一起建立的一宗动态网页技术标准。它在HTML代码中,插入JSP标记(tag)及Java程序片段(Scriptlet),构成JSP页面,其扩展名为.jsp。当客户端请求JSP文件时,Web服务器执行该JSP文件,然后以HTML的格式返回给客户端。
1研究背景
1.1 国内外研究现状及发展趋势
传统的网站新闻管理方式有两种:一种是静态HTML页面,更新信息时需要重新制作页面然后上传页面并修改相应链接,这种方式因为效率太低已不多用;到了今天,更是发展出了.Net和J2EE两大阵营。Microsoft的.NET平台是一个强调多语言间交互的通用运行环境。尽管.NET的设计者试图以.NET平台作为绝大多数Windows应用的首选运行环境,但.NET首先吸引的却是Web开发者的目光。,.NET平台,尤其是.NET平台中的ASP.NET的确不失为Web开发技术在Windows平台上的一个集大成者。
另一种J2EE则是纯粹基于Java的解决方案。他的三个关键元素是Servlet、JSP和EJB。J2EE体系及相关的软件产品已经成为了Web服务端开发的一个强有力的支撑环境。
客户端技术与服务器技术的发展,使得互联网有了更多的展示方案,其相关应用也得到了不断的发展与进步。新闻发布系统也随着Web技术发生了颠覆式的改变。如今,众多新闻门户每日围绕着我们,使我们轻松的可以了解天下事。
JSP (Java Server Pages,动态网页技术标准),是建立动态Web应用程序而重新打造的全新技术,其主要特色包括:
● 语言的独立性;
● 一次编译,随处运行;
●将内容的生成和显示进行分离;
●强调可重用的组件;
●采用标记简化页面开发;
● 提高了执行效率;
● 简化部署与组态的操作;
● 支持客户端类型;
● 支持下一代的Web服务;
● 增进适用性和延展性;
● JSP的适应平台更广;
● 更多的支持工具;
● 更佳的安全机制;
● 会话(Session)可以跨进程、跨机器。
由于JSP的众多优点,技术发展和各种客观实际的需要,该系统选用了JSP来开发设计,实现了对行业新闻的动态管理操作,使得对新闻信息的发布与管理更加及时、高效,提高了工作效率。
1.2 研究目的、意义和范围
随着Internet的普及,越来越多的企业建立了自己的WWW网站,企业通过网站可以展示产品,发布最新动态信息,与用户进行交流和沟通,与合作伙伴建立联系,以及开展电子商务等。
其中新闻管理系统是构成企业网站的一个重要组成部分,它担负着双层作用:一方面可以用来动态发布有关新产品或新开发项目;另一方面又可以及时向顾客公告企业经营业绩、技术与研发进展、特别推荐或优惠的工程项目、产品和服务,从而吸引顾客,扩大顾客群。
该系统使用JSP技术开发, 实现了网站新闻的动态管理,使得对信息的管理更加及时、高效,提高了工作效率。该新闻系统具有一般新闻系统的功能,主要包括前台新闻查看区和后台管理区,可为个人网站发布新闻,为校园网站提供新闻发布与管理的服务。
该系统是基于B/S(Browser/Server,浏览器/客户端)模式实现,基于JSP动态网站开发设计,主要实现对行业新闻的发布与管理功能,对新闻内容信息的浏览阅读等。
随着Internet/Intranet技术的兴起,将原本在单机或本地局域网上运行的数据库系统移植到因特网中,即开发基于B/S模式的新一代MIS(Management Information System,管理信息系统)系统,正成为技术发展的趋势。为了保证系统性能的高效性、可扩展性,以及达到数据共享和网络化管理的目的,本系统采用B/S体系结构进行设计开发。
2 需求分析
2.1 需求分析
该系统的用户为校园网站,需要经常发布一些新闻,如何能有效地管理和发布新闻呢?最初用户的需求为:“该新闻系统具有一般新闻系统的功能,同时具有新闻审核和不同管理员不同管理权限的功能” 。
通过对其它一些新闻系统的调查发现,一般新闻系统功能如下:
◆ 前台按分类显示新闻;
◆ 搜索新闻;
◆ 后台管理:
● 添加、删除和修改(编辑)新闻
● 添加、删除和修改用户
来访者有不同的权限,需要有个管理权限的功能,系统中应该有个超级管理员,具有所有权限,能够对系统进行全面管理,同时管理员可以修改自己的信息。
根据校园网站新闻发布管理的实际需求,在首页中能显示最近发布的几条新闻等,同时在后台发布新闻时可以添加图片,在前台能自动根据所显示的图片显示新闻。
在后台管理中,因为有权限的管理员才能登录管理后台,所以需要有个登录验证模块,而且需要根据用户权限的不同显示不同的管理目录,在管理新闻和用户时,当数据少时管理起来还比较方便,如果一多则想找到某条新闻或某个用户就很难,所以需要有个查找(按发布日期)模块用于查找新闻。
根据以上需求分析,该系统要实现的主要功能为:
◆ 前台显示新闻部分
● 用户登录区
● 显示最新的前几条新闻
● 搜索新闻功能
● 新闻详细信息浏览阅读
● 图片新闻(自动生成缩略图)在首页显示且只显示前三条
● 网站友情链接(可在管理中添加设置)
◆ 后台管理部分
● 登录验证
● 根据权限显示相应的管理目录
● 添加、修改和删除新闻
● 用户管理
2.2 新闻系统的性能需求
该系统在性能功能上应达到如下需求:
◆ 操作简单、界面友好: 完全控件式的页面布局,使得新闻的录入工作更简便,许多选项只需要点击鼠标就可以完成;另外,跟踪出现的提示信息也让用户随时清楚自己的操作情况。对常见网站的新闻管理的各个方面:新闻录入、浏览、删除、修改、搜索等方面都大体实现,实现了网站对即时新闻的管理要求;
◆ 即时可见:对新闻的处理(包括录入、修改、删除)将立即在主页的对应栏目显示出来,达到“即时发布、即时见效”的功能;
◆ 系统运行应该快速、稳定、高效和可靠;
◆ 在结构上应具有很好的可扩展性,便于将来的功能扩展和维护。
2.3 运行环境要求
2.3.1 运行平台
客户机硬件要求:具有 Pentium III 处理器以上且满足以下要求的计算机:最低 64 MB 内存,最小 2.1 GB 硬盘。
服务器硬件要求:具有 Pentium III 处理器以上且满足以下要求的计算机:最低 256MB 内存,最小 8 GB 硬盘。
2.3.2 支持程序
◆ 客户端
操作系统:Windows 98/NT/2000/XP或更高版本
浏览器:IE 5.0以上
◆ 服务器
操作系统:Windows 200X Server或者Windows XP
Web服务器:Tomcat6.0
数据库:MySql Server5.0
3 系统结构设计
3.1系统的功能模块简介
该系统的系统的功能模块图如图3.1所示:
登录后经权限判断
浏览网站
普通浏览者
浏览阅读新闻
搜索新闻
注册用户
添加新闻
管理新闻
管理用户
管理员
添加新闻
搜索新闻
浏览阅读新闻
新闻输入员
搜索新闻
浏览阅读新闻
图3.1 系统功能模块图示
整个系统的工作流程为:
打开该系统网站,普通浏览者能浏览、阅读和搜索新闻,能进行注册,注册后成为新闻输入员,登录进入新闻后台管理区, 有添加新闻的权限;如为系统管理员,其有新闻后台管理区内的所有权限,如:添加和管理新闻、添加和管理用户和友情链接设置。在添加新闻时,可以添加新闻标题、新闻内容、而新闻作者和发布时间是由系统自动获取不需要输入。
管理新闻功能包括对任一条新闻内容可作相应修改,也可删除任何一条不再需要保留的新闻。管理用户包括修改用户名、密码和用户权限,也可将任一用户删除。
3.2系统的模型结构
该系统结构分为三个逻辑层,具体模型结构如图3.2所示。
Web 层:Web层为客户端浏览器提供对应用程序的访问,这一层是作为解决方案文件中的 Web 项目实现的。Web 层由 JSP 窗体和代码隐藏文件组成。Web 窗体只是用 HTML 提供用户操作,而代码隐藏文件实现各种控件的事件处理程序。
业务层:包含各种业务规则和逻辑的实现,如客户帐户的验证和字符串处理。
客户端
浏览器
客户端
浏览器
客户端
浏览器
Web
层
业务层
数据访问层
系统配置
数据库
图3.2 新闻系统的模型结构图示
数据访问层:数据访问层为业务层提供数据服务,这一层是作为解决方案文件中的 Conn类(数据访问类,实现公共操作的一个通用类)实现的;
3.3 系统数据流图
通过对数据流向进行分析,得出该系统的整个数据流图如图3.3所示。 1
用户注册
新闻输入员
网站访客
申请注册
注册成功
4
发布新闻
用户信息
3
新闻管理
新闻信息
2
用户管理
删除
修改
删除 添加
网站管理员
修改
图3.3 系统数据流图
4 系统数据库设计
本项目使用MySql Server5.0作为数据库,其中数据库名为jspcndb。包含3个实体。
4.1 实体图
①、用户E-R实体图
用户名
编号
用户的实体具有用户ID、密码、用户名、用户权限级别4个属性,E-R图如图3.1所示。
用户
权限级别
密码
图3.1 用户E-R实体图
②、新闻E-R实体图
新闻标题
新闻的实体具有编号、标题、内容、作者、发布时间5个属性,E-R图如图3.2所示。
新闻编号
新闻内容
新闻
发布时间
作者
图3.2 新闻实体图
③、图片E-R实体图
图片的实体具有编号、名称、大小、类型等6个属性,E-R图如图3.3所示。
图片编号
图片名称
图片大小
上传时间
图片类型
上传者
图3.3 评论E-R图
4.2 数据表的创建
该数据库中共涉及到3个数据表的应用,分别为如下:
l UserInfo:保存注册用户的信息
l NewsInfo:用于存储新闻信息
l Image:用于存储上传的图片的信息。
①. 用户信息表
用户信息表(UserInfo)用于存放该管理系统中所有用户的信息,用户管理是每个管理系统中必不可少的,也是比较重要的一部分,本系统中进行了较详细的设计,表中各个字段的数据类型、大小以及简短描述如表3.1所示。
表3.1 用户信息表
字 段 名
数 据 类 型
大 小
字 段 描 述
userID
int
4
用户ID,作为主键
username
Varchar
15
用户名
Password
Varchar
12
记录用户登陆时的密码
Usertype
Varchar
2
用户的权限级别
②.新闻信息表
新闻信息表(NewsInfo) 表用于存储新闻信息。由于本系统主要是用于管理校园新闻,因此在本系统中进行了较详细的设计,表中各个字段的数据类型、大小以及简短描述如表3.2所示。
表3.2 新闻信息表
字 段 名
数 据 类 型
大 小
字 段 描 述
NewsID
int
4
新闻编号,唯一标识
title
varChar
50
新闻标题
content
varChar
1000
新闻内容
Publisher
varChar
100
新闻的发布者
Datetime
datetime
8
新闻的发布时间
③.图片信息表
图片信息表(Image),用于存储上传的图片的信息。由于新闻信息中很多都包含有图片,因此对图片的管理也是本系统不可缺少的一部分,该表中各字段的具体描述如表3.3所示。
表3.3 图片信息表
字段名
数据类型
大小
字段描述
ImageID
int
4
图片编号(主键),自动递增
ImageName
varchar
50
图片的名称
ImageInfo
Float
8
描述图片的大小
ImageType
varchar
10
图片的类型
ImagePublisher
varchar
50
图片上传者
ImageDatetime
datetime
8
图片上传时间时间
5 系统功能模块的设计
5.1各主要窗体页的图形界面介绍
◆首页:主要功能是显示网站的主要风格和最新的前18条新闻,显示当前时间、新闻搜索功能、以及用户登录和新用户注册、新闻图片等。
◆新闻详细内容查看页:在首页里点击新闻标题所进入的页面,显示当前所点击新闻的详细内容,并且新闻标题以较大号的字体显示,外加书名号在添加新闻时,根据所编辑的新闻内容对应显示。当浏览完以后想要离开本页只要点击页面下方的“关闭窗口”按钮就可以把该页面关掉。
◆新闻输入员页面:新闻输入员只具有添加新闻的权限,任何浏览者都可注册成为新闻输入员,但新闻输入员不具有修改和删除自己所发布新闻的权限,这保证了网站内容管理的合理性,并不是随便都能修改和删除。
◆新闻管理员页面:在该页面以两个Gridview显示所有注册用户的信息和所有新闻信息管理员可以选择是进行用户管理还是对新闻进行管理。管理员具有系统的所有权限,除添加新闻和管理新闻外,还可管理用户。对用户和新闻进行管理,包括修改用户ID和密码,删除用户,更改新闻信息,删除新闻。
5.2 Web.config文件配置
ASP.NET应用程序的配置功能放在Web.config文件中,它包含每一个具体Web应用程序的配置信息。在程序运行时,ASP.NET使用分层虚拟目录结构的Web.config文件提供的配置信息为每个惟一的URL资源计算一组配置设置,然后缓存结果配置设置,以供所有页面对资源的请求使用。
Web.config文件对于访问站点的用户来说是不可见的,而且也是不可访问的,它基于XML,每个配置文件都包含XML标记和子标记的嵌套层次结构。
新闻系统的Web.config文件中的配置:
<appSettings><addkey="connstr"value="DataSource=localhost;database=News;integrated" /> </appSettings> 通过键/值对key 和value配置数据库连接的相关信息,将SQL Server数据库News.MDF文件用相对路径的方式设置为字符串"MdbPath"在程序代码中进行连接引用。
5.3 系统部分重要功能及其代码
5.3.1 Web用户控件
该系统中创建了两个Web用户控件top.ascx和foot.ascx,在首页、新闻详细内容查看、新闻管理等页面的HTML代码里都进行了引用,调用方式为:
<%@ Register TagPrefix="uc1" TagName="bottom" Src="bottom.ascx" %>
<%@ Register TagPrefix="uc1" TagName="top" Src="top.ascx" %>
@ Register指令注册用户控件,同时把属性TagName(标签名)和TagPrefix(标签前缀)添加到@ Register指令中,Src属性表示该用户控件相对于父页面的相对地址。用户控件也是服务器端控件,还必须在用户控件代码中添加Runat=server属性,用法如下:
<uc1:top id="Top1" runat="server"></uc1:top>
<uc1:bottom id="Bottom1" runat="server"></uc1:bottom>
其中top.ascx用户控件作用是显示网站横幅和一些常用按钮以及当前日期,foot.ascx用户控件作用是显示底部相关版权信息等。
用户控件是非常易于代码重用的,可以把许多相关功能和用户界面封装在一个用户控件中,然后在任何需要该功能的地方重用此控件。
5.3.2 添加发布新闻
添加发布新闻在该系统中显然起着很关键的作用,在添加新闻管理页面里,通过单击“添加”按钮执行新闻的添加,“添加”按钮的单击事件主要程序如下:
string publisher = Session["username"].ToString(); //获取新闻输入员的用户名
//创建连接对象
string connectionString = "Data Source=.;Initial Catalog=News;Integrated Security=True";
//创建Connection连接对象objconn
SqlConnection objconn = new SqlConnection(connectionString);
//定义SQL语句,添加一条记录
string sql = "insert into NewsInfo(title,content,Publisher,Datetime)values";
sql += "('" + txttitle.Text + "','" + txtcontent.Text + "','" + publisher + "','" + DateTime.Now.ToString("yyyy-MM-dd") + "')";
//创建Command连接对象objcmd
SqlCommand objcmd = new SqlCommand(sql, objconn);
objcmd.Connection.Open(); //打开数据库连接
objcmd.ExecuteNonQuery(); //执行数据库操作
objcmd.Connection.Close(); //关闭数据库连接
5.3.3 用户注册
该系统的内容是需要靠校园众多用户来丰富充实的,而用户注册功能提供了给用户注册和发布新闻的作用。在首页里只需点击注册按钮即可注册,注册页面里注册按钮的单击事件处理程序如下:
//创建数据库连接&命令的对象
string connectionString = "Data Source=.;Initial Catalog=News;Integrated Security=True";
SqlConnection objconn = new SqlConnection(connectionString);
SqlCommand objcmd = new SqlCommand("AddUser", objconn);
objcmd.CommandType = CommandType.StoredProcedure;//指明Sql的操作命令是存储过程
//给存储过程添加参数
SqlParameter paramusername = new SqlParameter("@username", SqlDbType.VarChar);
paramusername.Value = txtusername.Text.ToString();
objcmd.Parameters.Add(paramusername);
SqlParameter parampassword = new SqlParameter("@password", SqlDbType.VarChar);
parampassword.Value = Pwd1.Text.ToString();
objcmd.Parameters.Add(parampassword);
objcmd.Connection.Open();//打开数据库连接
objcmd.ExecuteNonQuery();//操作数据库
objconn.Close();//关闭数据库连接
在实现注册功能时用到了存储过程,存储过程AddUser的代码如下:
CREATE PROCEDURE AddUser
(@username varchar(15),@password varchar(12))
AS
IF EXISTS
(SELECT username FROM UserInfo WHERE username=@username)
RETURN 1
INSERT INTO UserInfo(username,password)VALUES(@username,@password)
RETURN 0
GO
另外,在注册页面中用到了RequiredFieldValidator(非空)、RegularExpressionValidator(正则表达式)和CompareValidator(比较)验证控件,分别用于文本输入框的非空验证、由正则表达式来验证用户的输入值是否正确和验证两个输入框的值是否相等。
服务器端验证控件是ASP.NET控件中新产生的一种验证控件,可以在客户端直接验证用户的输入,但控件必须包含“runat=server”属性。正常情况下验证控件是不可见的,当用户输入数据错误时它们才可见。
5.3.3 用户修改密码
为了保证用户帐号的安全,系统需要设置有密码修改的功能。有些人盗用他人的帐号进行一些非法活动,会给帐号拥有者带来很大麻烦,有时候甚至造成很严重的后果。因此,当用户发现自己的帐号密码泄露,有可能被他人指导时就需要及时到修改密码页面自己的登录密码,防止恶果的发生。修改密码按钮的单击事件代码如下:
if (pass != cpass)
{
this.Response.Write("<script>alert('两次输入的密码不一致!');</script>");
return;
txtusername.Text = "";
}
else{
//连接数据库
string connectionString = "Data Source=.;Initial Catalog=News;Integrated Security=True";//创建连接对象
SqlConnection objconn = new SqlConnection(connectionString);
SqlCommand objcmd = new SqlCommand("Changepassword", objconn); //创建command对象objcmd
objcmd.CommandType = CommandType.StoredProcedure;//使用存储过程
objcmd.Parameters.Add("@username", usetxt);
objcmd.Parameters.Add("@password", pass);//将pass保存为修改后的密码
objconn.Open();
try
{
int resultrow = objcmd.ExecuteNonQuery(); //返回数据库被影响的行
objconn.Close();
this.Response.Write("<script>alert('操作已成功!');</script>");
}
}
总结
为做出该新闻系统程序,访问了大量Web网络开发方面的网站,搜集了大量关于Web网络开发的中英文资料,也查阅了大量书籍的源代码作为参考和运用,从中学会了许多ASP.NET和ADO.NET技术关于Web开发方面的知识。
该系统虽然能正常运行,但有的功能还不是太完善,甚至有些功能很不符合逻辑。一方面时间紧迫,加上本人是初次使用.net开发软件,在知识、经验方面都存在着不足;另一方面是ASP.NET这门技术的学习和熟练使用需要一个长期的过程。
因此,系统中存在一些缺陷和不足在所难免。因为在需求分析时,没有深入了解网上书店的整个流程,因此未能做到完全满足用户的需求。
通过开发这个系统,我掌握了很多做项目的过程,了解到的基本知识巩固了我对ASP.NET(2.0)及C#的学习,但在这次设计中的最大收获并不是掌握这几门开发工具的应用,而是学会了设计系统的思维方法,以及与同学们之间相互帮助的精神。
参考文献
[1] 天极网新技术研究室.ASP.NET完全入门.人民邮电出版社,2001.6
[2] Sanjeev Rohilla等著,陈君等译.ADO.NET专业项目实例开发.中国水利水电出版社,2003.5
[3] 攀建编著.ASP.NET+ADO.NET项目开发实例.清华大学出版社,2004.1
[4] (美)A.Russell Jones著,高春蓉等译.ASP.NET从入门到精通.电子工业出版,2002.1
[5] Scott Worley著,王文龙 刘湘宁译.ASP.NET技术内幕.人民邮电出版社,2002.4
[6] Scott Allen等著.C#数据库入门.郝启堂 张哲峰译.清华大学出版社,2003.2
[7] (美)微软公司著.NET框架1.1类库参考手册.清华大学出版社,2004.1
致谢
在整个系统设计和论文撰写过程中,得到了指导老师的悉心指导,在此向他致以诚心的谢意。同时,我还要感谢在这几年来对我有所教导的老师,他们孜孜不倦的教诲不但让我学到了很多知识,而且让我掌握了学习的方法,教会了我做人处事的道理,在此表示感谢。同时,在系统设计过程中还有同学也给了我不少帮助,这里一并表示感谢。
展开阅读全文