新闻管理.docx
《新闻管理.docx》由会员分享,可在线阅读,更多相关《新闻管理.docx(59页珍藏版)》请在冰豆网上搜索。
新闻管理
基于JSP+Servlet信息发布平台的设计与优化
目录
1选题概述2
1.1开发的目的和基本内容2
1.2开发技术背景简介2
2基本功能设计3
2.1信息发布平台系统构成3
2.2系统功能分析设计4
2.2.1系统管理登录4
2.2.2新闻管理5
2.2.3其他项目管理6
2.3信息发布功能设计7
3系统功能优化8
3.1JavaScript登录校验8
3.2利用JS改造列表功能9
3.3利用Filter实现系统登录过滤11
3.4DBCP优化数据库访问12
3.5分页管理优化页面数据访问13
3.6通过自定义标记优化设计15
4系统测试17
4.1测试用例17
4.2测试结果17
4.3测试结论20
5实习总结21
参考文献21
1选题概述
1.1开发的目的和基本内容
通过这次试验,培养应用所学的理论知识解决实际问题的能力,提升实际动手编写代码的能力;掌握JSP、Servlet应用程序相关的开发知识,掌握JavaWeb应用开发的流程及管理过程。
达到对软件开发初步认识的效果。
通过对JavaWeb应用程序开发的流程及各个阶段的主要工作,能够熟练部署、运行JavaWebApp,掌握JavaWeb应用程序的发布技术
此外,本次试验还涉及了JavaScript、CSS、ServletFilter、DBCP、JSTL及Servlet分页技术的基本知识,对已经实现的模块加以优化和改进。
1.2开发技术背景简介
随着社会高速发展,社会信息化的不断提高,机构各部门之间对信息流通的需求越来越重要,信息的及时发布对工作效率有很深的影响。
科研信息发布系统研发的目的就是实现新闻信息的及时发布,项目的高效管理。
随着计算机技术与internet的高速发展,原始的获取信息、统计、管理方式暴露出许多致命的弱点,而internet的跨时间性,跨地域性和海量信息源的优势越来越来越明显,同时也为我们带来了新的机遇,为新的基于web的信息管理系统提供了新的发展途径。
其快速的信息查询、方便快捷的信息统计、随心所欲的交流平台,为高校学生的信息获取提供非常优越的条件,也为管理人员节省了大量的统计计算时间
在这个先进的时代发展需求下,我的毕业设计选择了科研信息发布平台,时代的进步,计算机越来越广泛的运用,使很多原本由手工操作的管理,慢慢由计算机代替,而且日加完善。
科研信息发布平台就是其中一个典型的例子,由早先的手工操作管理,提升为计算机管理,大大的节约了人力物力资源。
现今,各大高校大多仍然以手工登记管理为主,不仅慢而且容易出错,花费大量的时间和人力资源,工作效率低,造成了高校成本偏高,科研信息一旦丢失无法恢复宝贵的数据。
信息查询繁杂,难于快速查询到满足客户需求的科研信息,难以给客户提供高质量的信息服务。
特别对于通过电话咨询科研信息的客户来说,无法提供快速有效的科研信息。
科研信息公告往往是通过第三方印刷的模板,手工填写自己的科研信息,过程复杂、耗时长、成本代价高。
高校没有自己的网站,甚至没有电脑,往往是被动的等待客户的来访,而无法主动地把科研信息及时地传播给广泛的客户群。
1.2项目的意义与前景
科研活动是高校内的主旋律之一,高校内的科研活动日益成为反映大学综合实力的重要指标。
随着高校科研投入和从事科研活动的人员的不断增加,高校科研管理的压力也越来越大。
本项目的意义就在于通过搭建一个大型的科研信息平台,能够快速有效的提高高校科研管理工作的高效性、科学性和透明性,并使得科研管理工作能更好的服务于高校内所有的科研工作者,更好的为大学内科研领导提供科研决策支持。
系统建设和实施后,将大大提高学校科研管理工作的信息化水平,全面实现高校内科研部门的网络化科研管理体系。
本系统将会成为联系科研活动人员和科研管理人员的纽带,也将给高校整个的信息化将设带来深远而有意义的影响。
提高了信息检索的效率,实现灵活的查询;减轻管理人员手工制作报表、统计分析的负担;提高了科研管理的效率。
它将有助于管理人员从繁琐的管理工作中解脱出来,使管理系统化、条理化,能迅速获得感兴趣的信息。
科研信息平台是一个一体化的系统或集成,通常包括业务信息系统、知识工作系统、决策支持系统[3]。
本次设计以开发环境是微软的MyEclipse开发平台,使用的语言是JAVA语言,而JSP是建立在公共语言运行库上编程框架,可用于服务器上生成功能强大的Web应用程序。
解决传统的通过第三方印刷的模板,手工填写自己的科研信息,过程复杂、耗时长、成木代价高的科研信息公告的弊端。
通过本次设计客户可以在网上随时随地查看新闻和科研项目等重要信息,方便快捷,成本低,实现大量信息保存及查看。
2基本功能设计
2.1信息发布平台系统构成
信息发布平台用于发布教育教学的相关信息。
其中包括成员信息、新闻、在研项目、研究成果、老师信息、学生信息、课程信息等教育教学相关信息的管理及发布。
信息发布平台APP构成
信息发布平台APP中具体功能模块包括如下部分:
系统功能
系统划分为教学相关信息的发布功能、平台后台管理、系统用户管理功能:
1)系统用户管理:
对普通用户和系统管理员的管理
2)教学相关信息的发布功能:
普通用户可以浏览已发布的所有新闻、在研项目的信息
成果信息、师生信息。
2.1新闻的发布
2.2在研项目信息的发布
2.3研究成果发布:
2.4师生信息介绍
3)平台后台管理功能:
系统管理员登录管理页面,可以查看、编辑、添加、删除新闻信息、在研项目信息、研究成果信息、师生信息。
3.1新闻管理
3.2在研项目管理
3.3师生信息管理
3.4其他内容管理
2.2系统功能分析设计
2.2.1系统管理登录
管理员登录科研信息平台的后台管理的界面,如图所示:
图2-1系统员进行登录界面
系统管理员进入本系统时,首先进入的就是登录页面,在此页面输入管理员用户名和密码,这两项输入正确的情况下才能进入管理界面。
若有信息输入错误,则无法进入系统进行管理,因此验证信息这一环节保证了系统的安全性及信息的安全性,有权限的用户才可以进入系统进行管理,这起到了预防非法进入进行非法操作的功能。
实现本模块的主要代码如下所示:
publicclassAdmin_Manager{
//判断对象Admin是否有相应的记录在数据库中
publicstaticbooleanCheckAdmin(Stringusername,Stringpassword){
Stringquery="selectcount(*)fromadminwhereadmin.name='"
+username+"'andadmin.password='"+password+"'";
//声明字符串类型变量,创建数据库插入查询语句
//调用之前建立的nCount方法,执行查询语句,返回结果
intcount=DataProcess.nCount(query);
if(count>0){//如果结果大于0
returntrue;//表示此用户存在返回真
}else
returnfalse;
}
//查看数据库是否有指定username的Admin记录
publicstaticbooleanHasAdmin(Stringusername){
Stringquery="selectcount(*)fromadminwhereadmin.name='"
+username+"'";
//声明字符串类型变量,创建数据库查询语句
intcount=DataProcess.nCount(query);//调用之前建立的nCount方法,执行查询语句,返回结果
if(count>0){//如果结果大于0
returntrue;//表示此用户存在返回真
}else
returnfalse;
}
publicstaticArrayListgetManagerList(){//取得数据库的所有记录
Stringquery="select*fromadmin";
Connectioncon=DataProcess.getConnection();
ArrayListal=newArrayList();
try{
Statementstmt=con.createStatement();
ResultSetrs=stmt.executeQuery(query);
while(rs.next()){
//如果结果集中有记录,取得字段名为admin.name的值返回给username变量
Stringusername=rs.getString("admin.name");
Stringpassword=rs.getString("admin.password");
Managerma=Manager.getInstance();//取得manager类的实例
ma.setUsername(username);//用刚刚取得的name设置用户名
ma.setPassword(password);//用刚刚取得的password设置密码
al.add(ma);//将ma对象添加到ArrayList类型中的al中
}
rs.close();
stmt.close();
con.close();
returnal;
}catch(Exceptione){
e.printStackTrace();
returnnull;
}
}
管理员登录后台管理的序列图,如图所示:
图2-2系统员进行登录序列图
2.2.3新闻管理操作设计
系统管理员查看所有新闻,新闻信息都在右侧显示出来,同时在右侧可以进行添加、修改、删除的操作如图所示:
图2-3新闻管理界面
系统管理员登录成功后进入管理界面,对新闻进行管理,首先查看新闻信息,系统返回新闻信息,然后显示在界面上,添加新闻信息,填写内容,显示添加成功。
修改新闻信息,编辑内容,显示修改成功提示。
删除新闻信息,成功后会显示信息删除成功。
系统管理员进行新闻管理的序列图:
图2-4新闻管理时序图
2.2.3在研项目管理操作设计
系统管理员查看所有在研项目,在研项目信息都在右侧显示出来,同时在右侧可以进行添加、修改、删除的操作如图所示:
图2-5在研项目管理界面
系统管理员登录成功后进入管理界面,查看在研项目信息,数据库会返回在研项目信息把在研项目信息显示在界面上,系统管理员进行添加在研项目信息,添加内容完成后,会显示添加成功提示。
如要修改在研项目信息,修改成功后,系统会显示修改已成功。
对在研项目进行删除,删除成功后会返回删除成功提示。
系统管理员进行在研项目管理的序列图:
图2-6在研项目管理时序图
2.2.4其他项目管理
1.学生管理操作设计
系统管理员查看所有学生信息,学生信息都在右侧显示出来,同时在右侧可以进行添加、修改、删除的操作如图所示:
图2-7学生信息的界面
系统管理员登录成功后进入管理界面,查看学生信息,数据库会返回学生信息把学生信息显示在界面上,系统管理员进行添加学生信息,添加内容完成后,会显示添加成功提示。
如要修改学生信息,修改成功后,系统会显示修改已成功。
对学生信息进行删除,删除成功后会返回删除成功提示。
图2-8学生信息的时序图
2.老师管理操作设计
系统管理员查看所有老师信息,老师信息都在右侧显示出来,同时在右侧可以进行添加、修改、删除的操作如图所示:
图2-9老师信息界面
系统管理员登录成功后进入管理界面,查看老师信息,数据库会返回老师信息把老师信息显示在界面上,系统管理员进行添加老师信息,添加内容完成后,会显示添加成功提示。
如要修改老师信息,修改成功后,系统会显示修改已成功。
对老师信息进行删除,删除成功后会返回删除成功提示。
图2-10老师信息时序图
3.评论管理操作设计
系统管理员查看评论信息,评论信息都在右侧显示出来,同时在右侧可以进行删除的操作如图所示:
图2-11评论界面
系统管理员登录成功后进入管理界面,查看评论信息,数据库会返回评论信息把评论信息显示在界面上,系统管理员进行对评论信息进行删除,删除成功后会返回删除成功提示。
图2-12评论时序图
3系统功能优化
3.1JavaScript登录校验
本主界面为default.asp,它的功能是显示新闻类别和每个类别中的10条新闻,并提供进入管理界面(index.asp)的链接。
录入新闻类别和新闻内容后,default.asp的界面如图5-6所示。
图3-1default.asp的界面
下面介绍default.asp的主要代码。
1.显示新闻类别链接
default.asp将新闻按照分类显示,每个新闻类别只显示最新的10条新闻。
如果新闻类别
较多,则网页会被拉长,给用户阅读带来不便。
为了解决这个问题,本实例使用书签来定义新
闻类别的位置,书签格式为#a<类别编号>。
例如,类别编号为1的新闻类别的书签名称为#al。
下面的代码将在网页中生成所有新闻类别的链接,每个链接都指相应新闻类别的书签。
这样,用户就可以通过单击链接直达新闻类别了。
<%
'=====显示所有新闻类别供点击,点击不同类别显示该类别的新闻=====
'按顺序读取所有新闻类别,保存在记录集rsCate中
sql="SELECT*FROMCategoryORDERBYCateId"
SetrsCate=conn.Execute(sql)
'显示所有新闻类别链接
DoWhileNotrsCate.EOF
stitle=rsCate("CateName")
cid=rsCate("CateId")
'每个新闻类别标题被定义为一个书签,名为#a类别编号
%>
">none;color:
black'><%=stitle%>|
<%
rsCate.MoveNext
Loop
%>
如果网页中显示的内容较多,通常需要通过定义书签的方法使用户快速到达指定的位置。
书签是网页中被标记的位置或被标记的选中文本。
在FrontPage中选择“插入”/“书签”菜单项,可以在指定位置插入书签。
在本例中,因为书签位置是动态变化的,所以需要使用代码定义,方法如下:
2.“新闻管理”链接
系统管理员Admin或其他用户可以通过“新闻管理”链接进入新闻管理页面index.asp
none'>新闻管理
3.显示各新闻类别中的最新新闻
default.asp的主要内容是显示新闻类别中的最新10条新闻,并将3天内的新闻使用new图片标记。
当然,如果新闻的内容经常更新,则可以将3天改为1天。
这部分代码如下:
<%
'=====显示所有新闻类别供点击,点击不同类别显示该类别的新闻=====
'按顺序读取所有新闻类别,保存在记录集rsCate中
sql="SELECT*FROMCategoryORDERBYCateId"
SetrsCate=conn.Execute(sql)
'显示所有新闻类别链接
DoWhileNotrsCate.EOF
stitle=rsCate("CateName")
cid=rsCate("CateId")
'每个新闻类别标题被定义为一个书签,名为#a类别编号
%>
">none;color:
black'><%=stitle%>|
<%
rsCate.MoveNext
Loop
%>
新闻查询
| none'>新闻管理