bbs论坛实训项目总结.doc_第1页
bbs论坛实训项目总结.doc_第2页
bbs论坛实训项目总结.doc_第3页
bbs论坛实训项目总结.doc_第4页
bbs论坛实训项目总结.doc_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

一、 需求说明 近年来, BBS论坛行业经历了很大的变化,从各大门户性网站到校园网站BBS论坛无处不在,BBS论坛在技术交流,讨论中发挥着重要作用。而且BBS发展方兴未艾。在这种大背景下,我们编写BBS作为实训项目, 编写此文档主要是为开发商指定我们对此系统的主要需求,使开发商能够根据该文档更准确的完成该系统。希望开发商能通过该文档完全了解我们对本系统的功能需求。二 功能描述系统功能(图示)3.1.1 系统用例图1. 游客用例图2. 普通会员用例图3. 版主用例图4. 管理员用例图二、 系统设计及实现根据论坛模型和论坛功能的需要,该系统的功能需求模块进行分析设计如下:1. 会员注册2. 会员登录3. 版主管理4. 板块管理5. 帖子管理(2)MVC 设计模式MVC 设计模式是目前用得比较多的一种设计模式,最早出现在Smalltalk 中,后来广泛应用于Java Web 应用程序中。Model(模型)表示业务逻辑层,View(视图)代表表示层,Controller(控制器)代表控制层。(1)View在Java Web 应用程序中,View 部分一般用JSP 和HTML 构建。客户在View 部分提交请求,在业务逻辑层处理后,把处理结果又返回给View部分显示出来。因此,View部分也是Web应程序的用户界面。(2)ControllerController 部分一般由Servlet 组成。当用户请求从View 部分传过来时,Controller 把该请求发给适当的业务逻辑组件处理;请求处理完成后,又返回给Controller。后者再把处理结果转发给适当的View 组件显示。因此,Controller 在视图层与业务逻辑层之间起到了桥梁作用,控制了它们两者之间的数据流向。(3)ModelModel 部分包括业务逻辑层和数据库访问层。在Java Web 应用程序中,业务逻辑层一般由JavaBeans 或EJB(Enterprise JavaBeans,企业级JavaBeans)构建。EJB 是J2EE 的核心组件,可以构建分布式应用系统。与普通JavaBeans 不同,它由两个接口和一个实现类组成,并且包含一些固有的用于控制容器生命周期的方法。(4)基于MVC模式的Java Web应用程序实例按照MVC 设计模式,用JSP,Servlet 及JavaBeans 构建一个登录系统。该系统的要求是,当用户在登录页面上填入用户名和密码并提交后,系统将检查该用户是否已经注册;如果该用户已注册,系统将进入主页面,否则就进入注册页面。按以下步骤构建这个系统:1)数据库设计:使用mysql 作为数据库,构建数据库 javaee.sql ;2)构建视图组件:会员登录页面login.jsp,主页面main.jsp,以及注册页面register.jsp;3)构建控制层组件:一个Servlet,取名为mainServlet.java;4)构建业务逻辑层组件(Model 组件):一个JavaBean,取名为AdminBkbz.java;5)构建数据访问层组件:一个数据访问类,取名为DB.java;6)编译、打包程序;7)部署该程序到Web 服务器Tomcat 中,然后运行。该系统的工作流程如图1.3 所示:数据表设计:用户登录是一个涉及数据库操作的用例。为简便起见,本例使用的数据库为MS Access。登录涉及的数据表取名为userTable,其结构如表1.5 所示。表7 数据表userTable字段名字段类型字段描述userName 文本 (50 b) 用户名,主键password 文本 (30 b) 密码构建视图组件:本例有3 个视图组件,分别是登录页面login.jsp,主页面main.jsp 及注册页面register.jsp。它们之间的关系是,当用户在登录页面login.jsp 上填入用户名和密码并提交后,系统将检查该用户是否已经注册,如果该用户已注册,系统将进入主页面main.jsp,否则就进入注册页面register.jsp。构建控制组件:本用例的控制组件是一个Servlet,叫做mainServlet。该组件先处理HTTP POST 请求,然后调用模型组件或业务逻辑组件db 检查该用户是否已注册,如果已注册,系统转入主页面main.jsp,否则进入注册页面register.jsp,要求用户注册自己的信息。另外,Servlet 都要在web.xml 中声明。mainServlet在web.xml 中的声明如代码清单。构建模型组件:本用例的模型组件(或称为业务逻辑组件)是db。它先调用构造函数取得数据库连接,然后检查数据库中是否已有该用户的记录,即检查该用户是否已注册。如果已注册,返回true,否则返回false。构建数据访问组件:本用例的数据访问组件是db。db 在构造函数中设置数据库驱动程序名,URL,用户名和密码,然后利用这些信息连接数据库,取得连接。因为所用数据库是mysql, 数据库驱动程序采用com.mysql.jdbc.Driver,数据库URL 为jdbc:mysql:/localhost:3306/javaee,其中javaee是本用例的数据库。三、 实训心得经过为时不到一周实训,在我们小组成员的共同努力下,终于完成了我们红领巾论坛的开发。在实训过程中,我们遇到了不同的困难,尤其在servlet的开发实现部分中,出现了配置信息不熟悉,技术不到位,数据库连接频繁出错等问题,但最终在我小组成员的努力下,在老师和同学的帮助下克服了苦难解决了问题,也从中找到了自己的不足之处。通过本次实训我小组所有成员都得到了不同程度的进步,巩固了我们的开发基础,提高了开发能力和技术。同时暴露出我们在软件开发过程中团队意识不强,对开发项目熟悉不到位,技术要求等种种问题,我相信通过本次实训,我们在今后的软件开发过程中能够更好的去与小组成员合作,能够突出我们的个人水平。感谢学院和老师们对我们辛勤的栽培。四、附录(代码)部分界面代码:回复留言界面及Servlet部分代码:DB db = new DB();/* 这里是去添加回复界面,界面中包含显示所有贴子标题的下拉列表,所以要从留言信息表中查出来。*/ArrayList al = db.findLyInfo();/ 包查询的信息保存在session中request.getSession().setAttribute(al2, al);response.sendRedirect(http:/localhost:8080/webtest2/Huifu.jsp);/ 查询留言信息,返回一个ArrayListpublic ArrayList findLyInfo() try ArrayList al = new ArrayList();pstmt = ct.prepareStatement(select * from lyTable);ResultSet rs = pstmt.executeQuery();while (rs.next() LyTable ly = new LyTable();ly.setId(rs.getInt(1);ly.setUserId(rs.getInt(2);ly.setDate(rs.getString(3);ly.setTitle(rs.getString(4);ly.setContent(rs.getString(5);al.add(ly);return al; catch (Exception e) e.printStackTrace();return null;/将帖子标题加载到下拉菜单回帖标题: %ArrayList al = (ArrayList)session.getAttribute(al2);Iterator iter = al.iterator();while (iter.hasNext() LyTable ly = (LyTable) iter.next();% 增加版块界面及Servlet部分代码:AdminBkbz bkbz = new AdminBkbz();/ 这里是去增加版块界面,界面中包含显示所有版主的下拉列表,所以要从版主信息表中查出来。ArrayList al = bkbz.findBzInfo();/ 包查询的信息保存在session中request.getSession().setAttribute(al, al);response.sendRedirect(http:/localhost:8080/webtest2/bkgl/addlist.jsp);/将版主信息写入ArrayListpublic ArrayList findBzInfo() try Connection ct = AdminBkbz.getConnection();String sql = select * from bzTable;ArrayList al = new ArrayList();stmt = ct.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);ResultSet rs = stmt.executeQuery(sql);while (rs.next() Banzhu bz = new Banzhu();bz.setId(rs.getInt(1);bz.setBanzhuname(rs.getString(2);bz.setPassword(rs.getString(3);al.add(bz);rs.close();ct.close();return al; catch (Exception e) e.printStackTrace();return null;/将版主名称加载到下拉菜单选择版主: %ArrayList al = (ArrayList)session.getAttribute(al);Iterator iter = al.iterator();while (iter.hasNext() Banzhu bz = (Banzhu) iter.next();% / 获得JSP页面填入的版主名称String select = new String(request.getParameter(select).getBytes(iso-8859-1), utf-8);/ 获得JSP页面填入的板块标题String message = new String(request.getParameter(message).getBytes(iso-8859-1), utf-8);Admin

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论