基于JSP技术的论坛系统设计

时间:2022-09-24 03:37:06

基于JSP技术的论坛系统设计

摘要:该文通过论坛系统的设计,提出了使用JSP技术设计论坛系统的方法,得出了使用JSP技术设计论坛系统采用模型、视图和业务逻辑分离设计,不仅增加了功能模块的重用性,而且有利于系统后期的维护和功能扩展。

关键词:JSP;论坛;模型;视图

中图分类号:TP311文献标识码:A文章编号:1009-3044(2010)20-5484-03

Design Forum System with JSP Technology

LUO Zai-Wen

(Sichuan Chemical Technical College, Luzhou 646005, China)

Abstract: This article through the forum system design is proposed the Methods using JSP technology design forum system, reached the design forum system use model, view and business logic design the separation of design, not only increase the reusability of functional modules, but also conducive to system maintenance and functional extensions later.

Key words: JSP; forum; model; view

在信息化时代的今天,各种各样的论坛在网络上随处可见,论坛成了许多人学习交流的重要平台之一。本文就如何使用JSP(Java Server Pages)技术设计论坛系统进行详细的介绍,以供读者参考。

一般来说,论坛的主要功能是让访问者在论坛上提问题、讨论问题、解决问题、分享心得及资源等等。如果把每一条信息看着一个帖子,论坛的功能则是帖子、回复帖子、查看帖子、修改帖子、删除帖子等等。由此,论坛的设计就变成如何表示信息、管理信息。采用JSP技术,可以按如下步骤设计论坛:1)模型设计;2)数据库设计;3)业务逻辑设计;4)视图设计。

下面,按上述步骤进行阐述。

1 模型设计

在论坛系统中,涉及的数据对象是帖子、版块、用户,在使用这些对象前,必须先设计出合适的模型,也就是抽象出系统需要的类,即帖子类、版块类、用户类。考虑到帖子在、回复时反映的信息不同,在设计时可以抽象出帖子类、帖子主题类和帖子回复类。

1.1 帖子类――Tip

帖子包括的信息主要有帖子的标题、内容、发帖时间、修改时间、发帖人等。

根据面向对象设计的方法和原则,类的设计主要是属性和方法的设计,而且对类的操作只提供方法接口,属性不允许操作,即私有的。基于此,帖子类可按如下代码设计:

帖子类的属性设计:

private String title; // 帖子标题

private String content; // 帖子内容

private String publishTime; // 发表时间

private String modifyTime; // 修改时间

private intuid; // 引用用户的id,用来表示该帖子是哪个用户发表的

1.2 帖子主题类――Topic(继承Tip)

帖子主题类包括的信息主要有帖子的标题、内容、发帖时间、修改时间、发帖人、帖子所属版块等。

由于帖子主题类中许多信息和帖子类相同,因此设计时可以直接继承帖子类相同的信息,只增加不同的部分。

帖子主题类的属性设计:

private int topicId ; // 唯一标志主题的id

private int boardId; // 引用版块的id,用来表示该帖子是哪个版块的

1.3 版块类――Board

版块类包括的信息主要有版块名称、版块的编号等。

版块类的属性设计:

private int boardId; // 用来唯一标识版块

private StringboardName; // 版块名称

private int parentId; // 主版块id

1.4 回复帖类――Reply(继承Tip)

回复帖类包括的信息主要有帖子的标题、内容、发帖时间、修改时间、发帖人、回复帖子所属版块等。

由于帖子回复类中许多信息和帖子类相同,因此设计时可以直接继承帖子类相同的信息,只增加不同的部分。

帖子回复类的属性设计:

private intreplyId; // 唯一标志回复的id

private inttopicId; // 引用主题的id,用来表示该回复是哪个主题的

1.5 用户类――User

用户类的信息包括用户名、用户密码、性别、头像、注册时间等。

用户类的属性设计:

private int uId ; // 用来唯一标识用户

private StringuName ; // 用户名

private StringuPass ; // 用户密码

private int gender; // 性别,1是女,2是男

private Stringhead ; // 头像,地址形式

private StringregTime; // 注册时间

2 数据库设计

论坛系统需要实现信息的动态更新,因此,系统中的动态信息必须存储在数据库中。用户每次访问论坛系统时从数据库中提取信息显示,并把增加的信息插入到数据库中。数据库的设计主要考虑如何存储论坛的信息内容,用多少张数据表,每个表含哪些字段,以及字段采用哪种类型等。设计时一般原则是每类数据对象对应一个数据表,数据对象的属性对应数据表中的字段。根据这样的原则,论坛系统中需要设计的表有帖子表(tbl_topic)、回复贴表(tbl_reply)、版块表(tbl_board)、用户表(tbl_user)。数据库设计工具可以采用SQL Server,Oracle,access等。

帖子表(tbl_topic)的结构如表1所示。

其他三个表结构设计的方法类似。

3 业务逻辑设计

在面向对象程序设计思想中有个原则:业务逻辑设计尽量采用接口,通过接口定义业务逻辑,即定义需要实现的功能,然后继承接口实现对应的功能。并且在后续中可以扩展接口中的业务逻辑来实现系统功能的扩展,方便后期的维护和功能扩充。

3.1 接口的设计

接口定义实现论坛系统功能所需要的各种方法,本系统需要的接口定义为表2所示。

3.2 业务逻辑实现

在论坛系统中,涉及的业务包括数据库连接、帖子处理、版块处理、回复处理和用户管理。分别用类实现,类继承对应接口,实现接口中定义方法。

3.2.1 数据库连接――BaseDao类

要实现JSP程序与实际的数据库之间交换数据,必须在JSP文件中用代码完成数据库的连接,建立程序和数据库之间的联系。而JSP程序不止一个,为了便于管理,减少代码的冗余,编写类完成数据库的连接、数据的查询、插入、修改、删除。使用JSP技术连接数据库,数据库一般采用SQL Server,使用JDBC纯Java方式连接数据库,注意SQL Server2000和SQL Server2005连接字符串是不同的。在该类中,分别设计方法实现数据库连接、数据查询、数据的增删改。需要时实例化BaseDao类,调用对应的方法即可。

3.2.2 帖子处理――TopicDaoImpl类

该类继承帖子接口和数据库类,完成帖子主题的查询、增加、修改、删除等,也就是实现在论坛系统中帖子、修改帖子、删除帖子、查看帖子。

类定义为:

class TopicDaoImpl extends BaseDao implements TopicDao

方法为:

int addTopic(Topic topic) //增加帖子

int deleteTopic(int topicId) //删除帖子

int updateTopic(Topic topic) //更新帖子

Topic findTopic(int topicId) //查找帖子的详细信息

List findListTopic(int page, int boardId) //查找帖子列表

int findCountTopic(int boardId) //根据版块id取得该版块的主题数

3.2.3 版块处理――BoardDaoImpl类

该类继承版块接口和数据库类,类定义为:

class BoardDaoImpl extends BaseDao implements BoardDao

方法为:

Map findBoard() //查找所有版块,封装了版块信息的Map

Board findBoard(int boardId) //根据版块id查找版块信息

3.2.4 回复处理――ReplyDaoImpl类

该类继承回复接口和数据库处理类,实现回复帖子的添加、删除、修改等。

类定义:

class ReplyDaoImpl extends BaseDao implements ReplyDao

方法为:

int addReply(Reply reply) //添加回复

int deleteReply(int replyId) //删除回复

int updateReply(Reply reply) //修改回复

List findListReply(int page, int topicId) //查找回复列表

int findCountReply(int topicId) //查找回复条数

Reply findReply(int replyId) //查找回复信息

3.2.5 用户管理――UserDaoImpl类

该类继承BaseDao类,实现UserDao接口,完成用户的注册、修改、查询。

类定义为:

class UserDaoImpl extends BaseDao implements UserDao

方法为:

int addUser(User user) //增加用户

int updateUser(User user) //更新用户

User findUser(String uName) //查找用户

User findUser(int uId) //查找用户

4 视图设计

视图指用户访问论坛系统时显示的界面,根据用户访问的不同内容,视图设计主要包括各版块的显示、发帖、回帖、显示主题和回复内容、显示某一版块的帖子列表、注册、登录等。采用JSP技术设计,每个视图对应一个JSP文件,在JSP中使用page指令导入需要的包和类,结合Java代码和HTML代码,设计每个界面。

5 结束语

综上所述,可以看出使用JSP技术设计论坛应用系统,不仅清晰地分离了系统的表示(视图)和内容(模型),明确了角色定义以及开发者与网页设计者的分工,增加了模块的可重用性,使得设计比较容易,而且有利于系统后期的维护和功能扩展。

参考文献:

[1] 马克,邓先瑞,杜瑞庆.基于JSP的SQL Server数据库访问技术[J].电脑知识与技术,2007(2):323-324.

[2] 北京阿博泰克北大青鸟信息技术公司.使用JSP开发Web应用系统[M].北京:科学技术文献出版社,2008.

[3] 李平.基于JSP的动态网页开发技术[J].微计算机信息,2009,7(3):108-110.

[4] 王红.Java Web应用开发技术实用教程[M].北京:中国水利水电出版社,2008.

[5] 钟小妹.基于MVC模式的JSP技术开发WEB应用系统[J].科技广场,2007(3):171-172.

[6] 吕浩音.JSP技术访问数据库方法的研究[J].中国科技信息,2009(19):111-112.

上一篇:趣味撞球游戏VB设计 下一篇:基于CP1H型PLC动态扫描数显仪设计