4、只有管理员可以管理帖子,一般用户是没有这个权限的。帖子对象用例图删除转移管理帖子置顶指定精华管理员编辑发帖回帖搜索用户浏览帖子图1-4帖子对象的用例分析用户类有注册、登陆和管理3个方法,管理方法又分为添加、删除和设置权限3个子方法。图1-5是用户对象的用例分析,用户的信息和权限是由管理员来设置管理的。用户对象用例图删除管理用户添加设置权限管理员注册登陆修改个人信息用户图1-5用户对象的用例分析1.2业务/机构划分像日常生活中的黑板报一样,论坛按不同的主题分为许多版块,版面的设立依据是大多数拥护的要求和喜好,用户可以阅读别人关于某个主题的看法,也可以将自己的想法毫无保留
5、地帖到论坛中。一般来说,论坛也提供功能,如果需要私下的交流,也可以将想说的话直接发到某个人的电子信箱中。用户在前台的注册、登陆,以及修改个人的注册信息组合成注册登陆模块;用户浏览版块、浏览主题帖列表、查看帖子组成合成浏览模块;用户发帖、回帖、编辑发布的帖子组合成发帖回帖模块;管理员编辑帖子、删除帖子、转移帖子、置顶帖子和指定精华帖组合成管理帖子模块。1.3业务流程用户注册登陆进入论坛,就某个话题展开讨论,通过发帖功能发布新的话题,通过回帖功能回复已有的话题,通过搜索功能查找已有的话题。管理员要管理论坛,软件需要具有的功能有创建、编辑、删除论坛的版块,管理注册的用户,管理帖子,设置论坛基本参
8、相互发送的信息S-02公告系统发布的信息S-03版面信息发布论坛版面的信息S-04联盟论坛信发布联盟论坛的信息S-05息表1-5-1网上论坛实体目录表下图以“管理员”为例,说明实体条目的具体编制方法,图1-5-2表示了实体条目的编制方法。1-5-2实体条目的编制方法第2章设计方案上一节中确定了论坛系统的设计思路,分析了论坛系统的整体需求。但是只知道需不行的,整体需对系统目标的一个模糊描述。要实现一个系统,还需要从需求分析上升到软件设计阶段。2.1系统结构从需求分析中得知,可以将功能分为前台和后台两类,因此模块也分为两大类:前台模块和后台模块。用户在前台注册、登陆,以及修改个人的注册信
10、、数据层。(1)界面层:界面层就是运用程序与用户的操作接口,提供给用户一个视觉上的界面,通过界面层,用户输入数据、获取数据。界面层同时也提供一定的安全性,确保用户不会看到的信息。比如说:网页。在用户层,常用到的技术如:HTML、CSS、JavaScript、ASP/等。(2)业务逻辑层:业务逻辑层就是将一些业务处理的逻辑与规则经过封装,它提供一些接口与用户层与数据层进行交互,是界面层和数据层的桥梁,它响应界面层的用户请求,执行任务并从数据层抓取数据,并将必要的数据传送给界面层。在业务逻辑层,当今比较流行的技术和规,如:Microsoft的COM/DCOM/COM+/NET组
11、件,SUN的EJB等。(3)数据层:数据层主要是提供业务逻辑层的数据接口和后台的数据管理,数据层定义、维护数据的完整性、安全性,它响应逻辑层的请求,访问数据。这一层通常由大型的数据库服务器实现,比较典型的数据库管理系统有:SQLSercer2000/2005、Orcale8i/9i,DB2等。图2-2三层架构2.3设计模式选择用JSP开发的Web应用是跨平台的,既能在Linux下运行,也能在其他操作系统上运行。JSP将网页逻辑与网页设计和显示分离,支持可重用的基于组件的设计,使基于Web的应用程序的开发变的迅速和容易。JSP技术是Servlets技术的扩
13、AppletHTMLBrowserJavaApplicationJavaAppletJDBCDBMS图2-4JDBC支持的三层模型基于JSP的建设目前主要有两种基本的开发模式:两层模型和三层模型。目前市场上的软件开发者大都基于这两种基本的框架形成自己的开发模式,但是都不同程度地存在编码重复现象。针对开发代码重复的问题,图2-5表示了设计模式。图2-5设计模式此种模式对于基本的数据库应用和基本的页面都能够通过参数来实现,对于页面和数据库的设计复杂的情况,此种设计也针对一些特殊情况进行了处理设计。为了适应特殊的需要,比如应用时需要的页面没有相应的模板、Word插件的处理等,
14、此种设计也提供了扩展的能力,应用时可以根据自己的特殊需要来添加相应的JSP模板文件。2.4技术路线选择俗话说:工欲善其事,必先利其器。我选择了器,同样的BorlandJBuilder全球最具威力之WebLogic作为应用服务Java开发环境JBuilder也被选择作为开发工具,而数据库则选用MySQL。2.3.1WebLogic服务器的选择本设计项目的应用服务器选择WebLogicPlatform8.1。Platform8.1简体中文版是BEA公司2004年2月9日发布的应用服务器平台。BEA公司的WebLogic企业应用平台软件可提供统一的、
17、具,让您快速、顺畅地建构EJB,全新DataTransferObject(DTO)与SessionFaade精灵协助您用户端程序码简单而正确地使用EJB。JBuilder与BorlandTogetherEditionforJBuilder双向塑模(two-waymodeling)能力,使得UML图形与程序码能够双向自动同步,您可以运用UML技术建立设计蓝图与开发团队成员相互沟通,或藉由程序码验证模型是否合理。2.3.3网页设计工具选择本项目的界面设计软件工具选用DreamweaverMX。Macromedia公司推出的DreamweaverMX中文版,不仅是专业人员
18、制作的首选工具,而且普及到广大网页制作爱好者中,相对于其它网页制作工具和以前版本,有以下这些优势:(1)对简体中文良好的支持,不会出现一些不兼容中文的现象。例如,在早期的Dreamweaver4.0中,制作Flash按钮时会出现乱码。(2)使用DreamweaverMX中文版,可以在可视化界面制作出ASP,ASP,NET,JSP,PHP,ColdFusion站点。(3)DreamweaverMX中文版自带大量模板,简化了用户的制作过程。(4)DreamweaverMX中文版支持数量众多的第三方插件,大大增强了DreamweaverMX的功能。(5)通过配置D
19、reamweaverMX生成符合XHTML的代码,确保用最新的HTML设计标准及时更新站点。2.3.4MySQL数据库服务器的选择本设计项目的数据库选择MySQL。MySQL是一个真正的多用户、多线程SQL数据库服务器。SQL(结构化查询语言)是世界上最流行的和标准化的数据库语言。MySQL是以一个客户机/服务器结构的实现,它由一个服务器守护程序和很多不同的客户程序和库组成。MySQL是一个真正的多用户、多线程SQL数据库服务器。SQL(结构化查询语言)是世界上最流行的和标准化的数据库语言。MySQL是以一个客户机/服务器结构的实现,它由一个服务器守护程序和
20、很多不同的客户程序和库组成。SQL是一种标准化的语言,它使得存储、更新和存取信息更容易。例如,你能用SQL语言为一个检索产品信息及存储顾客信息,同时MySQL也足够快和灵活以允许你存储记录文件和图像。MySQL主要目标是快速、健壮和易用。最初是因为我们需要这样一个SQL服务器,它能处理与任何可不昂贵硬件平台上提供数据库的厂家在一个数量级上的大型数据库,但速度更快,MySQL就开发出来。自1996年以来,我们一直都在使用MySQL,其环境有超过40个数据库,包含10,000个表,其中500多个表超过7百万行,这大约有100个字节(GB)的关键应用数据。MySQL建立的基础
21、是业已用在高要求的生产环境多年的一套实用例程。尽管MySQL仍在开发中,但它已经提供一个丰富和极其有用的功能集。第3章系统实现本系统是采用JSP+JavaBean+Servlet开发的.具有Java语言跨平台的特性,可以方便的运行在Windows、Linux、Unix等操作系统上。支持MySQL、Oracle、SQLserver数据库,如需要还可以方便的扩充其他数据库的支持。系统整体系统结构清晰,扩展性良好。支持集群运行,同时做到负载均衡。同时运用了多种设计模式,具有核稳定、界面简洁、功能强大、操作方便、数据安全等特点。3.1系统文件功能本设计的主目录是b
24、在WEB-INF目录下存放着与Web应用配置信息有关的web.xml文件和与Web服务器配置信息有关的server.xml文件;在foundation目录下的四个子目录中分别存放着连接数据库、处理数据的Java文件和处理字符、日期、数据转换、调试及异常处理的Java文件;在common目录下存放着共用的接口和表单类及实现收发、表单校验等功能的Java文件,其子目录upload中存放的是smartupload插件文件,主要用来实现图片的上传、下载等功能。3.2主要类和接口DataBaseMySQL类的UML图,图3-1是DataBaseMySQL类的UM
25、L图。图3-1DataBaseAccess类的UML图本系统可以通过DataBaseMySQL类实现对不同类型的数据库的连接和数据访问。由上图可以看出,DataBaseMySQL类由java.lang类包的Object类扩展而来。调用它的getDB2Connection()方法、getInformixConnection()方法、getMySqlConnection()方法、getOracleConnection()方法、getSQLServerConnection()方法和getSybaseConnection()方法可以分别实现对DB2、Informi
26、x、MySql、Oracle、SQLServer和Sybase数据库的连接。DataBaseMySQL类也可以被MySQLCommand类的实例调用,以执行SQL命令,查询数据库的数据。DataBaseMySQL类可以调用java.lang类包里的Exception类、String类、StringBuffer类做异常处理、字符串处理和字符串缓冲等。DataBaseAccess类还可以调用Connection对象、DriverManager类和SQLException类的实例连接数据库,并处理执行SQL语句时出现的异常。此外,DataBaseMySQL
28、,还没有注册,可以单击没有注册按钮进入新用户注册界面进行注册,这是给用户进入论坛的一个通道,是任何论坛都不可缺少的部分。如果已经注册了的用户在登陆时忘记了密码,则可单击忘记论坛密码按钮,系统应该提示用户输入密码提示等帮用户找回密码,这是个比较人性化的设计。(2)发帖界面当登陆进来想说话的时候,自然会想到怎么才能说,怎么发帖子呢?图3-3是发帖界面,是发帖子的界面,这里只允许会员发表新帖子,需要填写的新帖子信息包括:用户名、密码、主题、当前心情、具体容等,这也是帖子表里应该有的最基本信息。其中标题下不能超过200个汉字,要进行校验。针对“当前心情”,本论坛提供了一些心情图片,用
30、与帖子表的界面相似,也只允许会员发表对帖子的投票,需要填写的投票信息包括:用户名、密码、帖子主题、投票项目、当前心情、具体容等,其中标题不能超过200个汉字,要进行校验。针对“当前心情”,本论坛提供了一些心情图片,用户只需选择一个即可。“投票项目”设置一些投票项目,但每行只能有一个项目,最多只能设置十个选项,超过了就自动作废,根据作者的意愿可进行单选和多选的设置进行选择。“容”是指书写帖子容时输入框支持什么不支持什么等。具体容输入框上的按钮可以对输入的容进行字体等方面的设置。输入框下方还提供了一些小图片,用户单击表情图标就可在帖子中加入相应的表情。“高级设置”中的签名显示还是不显示或
31、者匿名看作者而定,可以选择也可以不选。所有容填写完毕后,单击发表按钮则数据库中相应的帖子表增加一条记录,用户帖子发表成功。图3-4投票界面(4)搜索界面论坛搜索功能三论坛中除了导航按钮这种直接的方式之外的另外一种定位方式。导航按钮通过告诉用户有哪些东西访问和查询,而搜索则从用户的角度出发来进行设计。搜索首先需要输入用户要搜索的关键字,其次需要选择该关键字是搜索的新闻主题作者、帖子标题还是帖子容等,关键字搜索的选择包括帖子主题、关键字等,同时在搜索时需要进行日期围的限定,因此需要给出日期的选择项,在本搜索设计中,我们设计的日期围包括:5天以来、10天以来、15天以来、30
32、天以来、60天以来、90天以来,以此从小的围搜索,都可以满足不同的搜索。另外一种选择,应该包括论位置的定位。图3-5是搜索界面。图3-5搜索界面3.4文件的打包和部署先在JBuilder9中将整个工程编译,然后利用JBuilder9自带的工具把工程源文件打包、配置。下面简单阐述如何在BEAWeblogic中部署自己的应用程序:(1)启动BEAWeblogicPlatform8.1的configurationwizard创建一个自己的域netshopdomain,设置监听端口为7777。(2)启动Weblogic的控制台,进入Servi
33、cesConfigurationJDBC的ConnectionPools、DataSources下分别配置数据连接池mynetshoppool和数据源netshoDS。(3)启动Weblogic的控制台,进入YourDeployedResources下WebApplicationModules中部署自己的应用程序。(4)启动IE浏览器,在地址栏中输入:localhost:7001即可访问自己的首页。在其他机器中访问输入:192.168.3.X:7001(其中192.168.3.X为服务器的IP地址)即可访问。3.5设计难题及解决办法3.5.1系统后台与