视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
JSP程序设计新闻发布系统
2025-09-28 00:56:30 责编:小OO
文档
存档资料                                 成绩:  

华东交通大学理工学院

课 程 设 计 报 告 书

所属课程名称       JSP程序设计                   

题    目          新闻发布系统      

                                    

分    院        电 信 分 院        

专业班级        计算机科学与技术                    

学  号                     

学生姓名                           

指导教师                            

       2013 年 1 月 3 日   

华东交通大学理工学院

课 程 设 计( 论 文 )任 务 书

专 业  计算机科学与技术  班 级 姓名  

一、课程设计(论文)题目        新闻发布系统          

二、课程设计(论文)工作:自  2012  年 12  月  31  日起至 2013  年  1  月  3  日止。

三、课程设计(论文)的内容要求:

利用已经学过的网站开发工具MyEclipse 8.0+SQL Server 2008,设计一个新闻发布系统。

该系统的功能模块有:                                                        

1.用户注册;                                                            

2.用户修改个人资料;                                                   

3.用户发布新闻、修改、更新、删除等;                                    

4.用户评论新闻 等。                                                    

     要求:用MyEclipse 8.0进行设计;数据库用SQL Server 2008;设计一个新闻发布系统                                     

                                                          

学生签名:      

2013 年 1 月 3 日

课程设计(论文)评阅意见

序号项    目

等   级
优秀良好中等及格不及格
1课程设计态度评价
2出勤情况评价
3任务难度评价
4工作量饱满评价
5任务难度评价
6设计中创新性评价
7论文书写规范化评价
8综合应用能力评价
综合评定等级
评阅人       职称             

20   年  月   日 

目录

第一章:  系统概要及分析    5

1.1设计技术及开发环境    5

1.1.1开发环境    5

1.2运行环境    5

1.3该系统的功能模块有:    5

第二章:  系统功能及构架设计    6

2.1功能层次图    6

2.2业务实体说明    6

2.3系统构架设计    7

第三章:  进行数据库表格的设计    9

第四章:  进行各模块的界面与详细设计    10

4.1 系统运行环境配置    10

4.2 编写实用类    11

4.3 编写抽象基类    11

4.4 模型层的实现    11

4.5 业务层的实现    12

4.6 视图层的实现    13

第五章:  测试运行整个系统    15

第六章:  设计小结    17

第七章:  参考资料    18

第八章:  致谢    19

第一章:  系统概要及分析

internet的蓬勃发展,使新闻的传播方式发生了巨大的变化,传统的信息传播媒体电视、广播、报纸已经不再是人们茶余饭后的主要精神甜点,人们更多的开始关注网络新闻。由于互联网所容纳的信息量大、内容丰富、信息及时、准确,更有相关信息的全面的介绍与比较,大大地方便了人们的阅读。借此东风,新闻网也迅速发展起来,它内容丰富,信息量大,不仅有实事新闻,还有相关的行业信息,同时新闻网具有互联网所具备的一切特性。在全球网络化、信息化的今天,新闻网迅速发展,大大地丰富了人们的生活,不知不觉中,它已经成为人们生活中不可或缺的重要组成部分。

1.1设计技术及开发环境

1.1.1开发环境

Windows 7、 MyEclipse  、SQL server 2005、Tomcat6.0。

1.2运行环境

服务器:Windows 2000/2003 Server及以上版本。

客户端:IE 6.0以上、FF等目前主流浏览器。

1.3该系统的功能模块有:                                                   

1.用户注册;                                                            

2.用户修改个人资料;                                                   

3.用户发布新闻、修改、更新、删除等;                                    

4.用户评论新闻 等。

第二章:  系统功能及构架设计

2.1功能层次图

1-1新闻发布系统功能层次图

2.2业务实体说明

    新闻发布系统的业务实体主要包括会员、新闻表和新闻类别:

1会员(Sys _User):代表一个新闻会员实体,主要属性包括会员号自动编号ID、登录帐号、登录密码、姓名、性别、Email、是否新闻管理员。

2新闻表(Inf_News):代表一个新闻实体,主要属性包括新闻字段编号ID、新闻标题、新闻内容、发表时间、点击率、作者、新闻类别ID。

3新闻类别(Inf_NewsType):代表一个新闻类别实体,主要属性包括新闻类别自动编号ID、新闻类别名称、排序ID。

会员、新闻表和新闻类别实体之间的业务实体关系如图1-2所示:

图 1-2 新闻发布系统业务实体关系图

2.3系统构架设计

    主要功能明确之后,开始对新闻发布系统进行必要的系统设计。

整个系统采用多层的构架模式,从上到下依次为视图层、业务层、DAO层和数据库层。

    视图层负责向用户展现数据,在新闻发布系统中视图层主要有JSP页面构成。设计JSP页面的原则是尽量减少JSP页面中的JSP代码量,把具体的业务逻辑放在业务层实现,JSP页面只负责显示业务层实现的结果。对于一些公用的视图资源(如JSP页面中的图片、公用文字等),应当使用“<%@include%>”的形式包含,提高代码的可重用性。

业务层负责具体业务逻辑的实现,在新闻发布系统中通过编写专门的业务类来实现。各业务类从同一个抽象业务基类继承,例如分别负责处理会员、新闻和新闻类别相关业务逻辑的业务类UserBiz、NewsBiz和NewsTypeBiz都继承自抽象业务基类BaseBiz.,如图1-4所示:

图1-4 业务类的继承关系

所有业务类都从一个抽象的业务基类继承,这种做法使得业务类更加规范、可扩展性更强。

模型层包含了系统中所涉及的业务实体、业务规则以及对数据库层的访问方法,模型层主要由各业务实体类和DAO类构成。在新闻发布系统中,业务实体主要包含会员、新闻和新闻类型,每个实体都有一个相应的实体类,这些实体类本质上是JavaBean,其中封装了实体的各项属性。实体类的作用是依据面向对象的原则描述一个业务实体,DAO模式的实现必须依赖这些实体对象。和业务类类似,各实体类也由同一个抽象实体基类BaseEntity继承而来,图1-5描述了这种继承关系:

图 1-5 实体类的继承关系

DAO类负责实现各实体类的业务规则以及对数据库的访问(例如实现在数据库中添加一个会员实体对象),因而也可以称之为“实体的DAO实现类”。DAO类也是由一个抽象的基类继承而来,所有的DAO类必须实现基类所定义的抽象方法,所有的DAO类都自动继承基类已经实现的方法,如图1-6所示: 

图 1-6 DAO类的继承关系

第三章:  进行数据库表格的设计

新闻发布系统采用的是MS SQLServer数据库,直接在SQL Server管理工具中创建各表。

每个实体在数据库中都有对应的表。各表中的ID都设置为int自增长型字段,用作各表的主键。ID字段本身不具有任何业务上的含义,因此不会随着具体业务的变化而改变,适于作为主键。

这个表主要记录会员注册信息:

这个表主要记录新闻有观点信息:

第四章:  进行各模块的界面与详细设计

系统构架设计和数据库设计完成之后,就可以开始立足实现系统各项功能模块。系统是依据多层构架模式实现的。       

首先是实现数据库层,即在数据库中创建各物理表。

    其次是实现模型层,主要工作是编写各实体类和DAO类。

    模型层实现后是编写相应业务类,实现业务层。

最后是编写视图层的JSP页面。

但在这些工作开展之前,还需要先完成两项必要的任务,即:

1.系统运行环境的配置

新闻发布系统采用Tomcat 6.5 作为Web服务器,因此需要对Tomcat进行正确的安装和配置,主要包括数据库连接池的配置、虚拟目录的创建等。

2.实用类的编写

除了各业务类、DAO类和实体类外,还需要编写一些实用工具类,主要包括数据库工具类、日期处理类和字符串处理类。

4.1 系统运行环境配置

    图1-8新闻发布系统的目录结构:

图 1-8新闻发布系统的目录结构

    JSP页面分别位于user、news、newstypes目录以及news根目录下,css目录、js目录和img目录放到content目录下面,包含的是系统需要的样式表和图片,WEB-INF目录的classes子目录中包含了各Java类文件, model子目录中包含了业务实体类和相应的DAO类。tools目录的base子目录中包含了一些抽象的基类,database和util子目录中包含了基本的实用类。

4.2 编写实用类

    实用类位于tools目录的database和util子目录中,database子目录中包含了DataBaseTool.class文件,该Java类文件负责处理数据库相关的各类操作。

4.3 编写抽象基类

实用类编写完成后,开始实现新闻发布系统各层的基类文件,包括实体基类文件BaseEntity.java、DAO实现基类文件BaseDao.java和实体业务类文件BaseBiz.java。这些类文件需要调用实用类中的有关方法。

4.4 模型层的实现

    各基类编写完成后,按顺序首先开始实现模型层的各类文件,包括各实体类文件和相应的DAO实现类文件,原理同User实体一样。

UserEntity.java

/**

 *UserEntity.java

 *会员实体类

 */

package user.model;

import tools.base.BaseEntity;

public class UserEntity extends BaseEntity{

    private int ID = 0;//标识会员实体的唯一ID,对应数据库中为自增长型ID

    private String Account = "";//会员帐号

    private String Password = "";//会员密码

    private String Name = "";//会员姓名

    private String Sex = "";//会员性别

    private String Email = "";//email

    private boolean IsAdmin = false;//是否新闻管理员

各属性的get和set方法省略。

4.5 业务层的实现

    业务层实现了对各类业务的处理,业务层处理的对象是各业务实体,而不是数据库中的各字段,需要涉及到数据库的操作,一律在DAO实现类中完成。业务层只是对DAO类中相应方法的进一步封装。

UserBiz.java

package user.biz;

import tools.base.*;

import user.model.*;

import tools.database.*;

import java.sql.Connection;

public class UserBiz extends BaseBiz

{

    UserDao newUserDao = new UserDao();//创建UserDao对象

    //构造函数

    public UserBiz()

    {

        this.baseDao = newUserDao;//覆盖基类定义的抽象变量baseDao

    }    

    //注册一个新会员

    public void saveUser(UserEntity user) throws Exception 

    {

        Connection con = DataBaseTool.getConnection();

        try

        {

            //调用DAO层的insert方法

            newUserDao.insert(con , user);

        }

        catch(Exception e)

        {

            throw e;

        }

        finally

        {

            DataBaseTool.close(con);

        }

    }

    //修改会员信息

    public void updateUser(UserEntity user) throws Exception {

        Connection con = DataBaseTool.getConnection();

        try{

            //调用DAO层的update方法

            newUserDao.update(con , user);

        }

        catch(Exception e){

            throw e;

        }

        finally{

            DataBaseTool.close(con);

        }

    }

}

4.6 视图层的实现

1.会员注册与系统登陆

根目录下的login.jsp实现了会员注册与系统登陆功能。其源代码如下所示:

login.jsp

<%

    //action用来判断表单是否被提交

    String action=request.getParameter(“action”);                    

    //如果表单被提交    

    if(action != null)

    {

        if(action.equals(“submit”))

        {

            //获取会员帐号

            String account = request.getParameter(“Account”);

            //获取会员密码

            String password = request.getParameter(“Password”);

            String txtYZM = request.getParameter(“txtYZM”);

            String checkCode = request.getParameter(“checkCode”);

            if(account.length()==0)

            {        

                out.print(“alert(‘请输入登录帐号!’);history.go(-1);”);

                return;                                                

            }    

            if(password.length()==0)

            {        

                out.print(“alert(‘请输入登录密码!’);history.go(-1);”);    

                return;                                                

            }    

UserBiz userBiz = new UserBiz();

            //定义会员对象数组

            UserEntity[] users = null;

            try

            {

                //调用会员业务类的findByQueryString()方法进行数据库查询

                users = (UserEntity[])userBiz.findByQueryString(sql);

            }

            catch(Exception e)

            {

                out.print(“alert(‘”+e.getMessage()+”’);history.go(-1);”);    

                return;                    

            }

            if(users==null)

            {

                out.print(“alert(‘该帐号不存在!’);history.go(-1);”);    

                return;                    

            }

            else

            {

                //判断密码是否准确

                if(users[0].getPassword().equals(password))

                {

                    //把当前会员对象保存在session的User属性中

                    session.setAttribute(“User”,users[0]);                    

                    //页面重定位

                    String isAdmin=String.valueOf(users[0].getIsAdmin());

                    response.sendRedirect(“frame/index.jsp?isAdmin=”+isAdmin);

                }

                else

                {

                    out.print(“alert(‘密码错误!’);history.go(-1);”);        

                    return;                

                }

            }

        }

    }

%>

第五章:  测试运行整个系统

运行效果截图

1.首先输入账号密码,绕后接着点击登录进入系统

 

2. 发布新闻界面

3.新闻管理界面

4.注册会员界面

5.点击新闻首页的标题查看新闻

第六章:  设计小结

通过这课设,我对JSP动态网页设计的基础有深刻的了解,也有了更的巩固和加深。也懂得不管系统设计还是论文的设计不仅需要足够信心和耐心,还需要相当多的专业知识理论与实践操作能力。

本系统采用了三层模式开发,虽然功能不怎么强大,但相对于传统的单层、二层模式却变得灵活多了。

三层模式各层次之间的依赖关系是自上向下,即上层依赖下层实现,而下层则可以基本于上层进行实现。例如视图层的数据显示需要依赖于业务层所提供的相关功能,但业务层所提供的功能本身并不关注视图层的特点,即便视图层完全改变(例如由BS浏览器模式改为CS客户端应用程序),业务层仍然可以沿用。

 尽管本管理系统存在着很多不足,但其功能全面、数据库管理容易、操作方便、等优点是本系统所拥有的。在这次的论文设计中,使我受益匪浅,也是对自我的一种检察,自知要学的东西还很多。谢谢老师孜孜不倦的教导,以及对我们的重视,让我能顺利地完成这个课程设计。 我知道在这次的课程设计中自已有许多的欠缺,在以后的日子中,我一定得更加严格要求自己,改正缺点,不断努力,不断进步。

第七章:  参考资料

[1] 《用JSP轻松开发Web网站》曹林有. 北京希望电子出版社.第一版. 

[2] 《SQL Server数据库开发实例解析》机械工业出版社  宋昆2006年1月 

[3] 《Java基础编程贯通教程》史佳. 清华大学出版社.第一版. 

[4] 《JSP程序设计教程》冯沃辉. 冶金工业出版社.第二版. 

[5] 《jsp高级编程》马红华. 北京希望电子出版社.第一版.  

[6] 《Java项目开发实践》萨师煊. 高等教育出版社.第四版.

[7] 《数据库系统开发完全手册》  人民邮电出版社  2006年3月  

[8] 《JSP 信息系统开发实例精选》 机械工业出版社 王国辉、牛强2005年7月 

[9] 《JSP工程应用与项目实践》机械工业出版社 陈威、白伟明2005年2月 

第八章:  致谢

 首先感谢我的指导老师老师,他在我的毕业设计过程中给了指导性的方案和架构,指引我阅读相关的资料和书籍,使我能学习掌握知识并完成了课程设计。  

 感谢母校对我的培育,让我从思想上、素质上和知识上得到很大的提高。在校学习的过程中程老师的悉心教导让我掌握了更多的知识,对提高我的知识面有很大的帮助。  

最后要感谢我的同学在设计完成前后对我的帮助,没有同学的共同学习进步也许就没法完成设计,没有同学的帮助,也许一些潜在的错误难以得到更正,在此一并表示感谢。

 在此祝愿学校领导、老师、同学工作顺利 事业更上一层楼 同时也祝愿学校更加辉煌 下载本文

显示全文
专题