基于Struts+Hibernate网上论坛系统课程设计任务书.doc_第1页
基于Struts+Hibernate网上论坛系统课程设计任务书.doc_第2页
基于Struts+Hibernate网上论坛系统课程设计任务书.doc_第3页
基于Struts+Hibernate网上论坛系统课程设计任务书.doc_第4页
基于Struts+Hibernate网上论坛系统课程设计任务书.doc_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

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

文档简介

基于Struts+Hibernate网上论坛系统课程设计任务书系别电气与电子工程系专业计算机应用技术班级指导教师师题目基于Struts+Hibernate网上论坛系统设计目的:论坛系统是网站开发中很典型的一个例子。它可以从一个很简单的模型复杂细化到一个庞大的系统。对于企业或者个人网站,类似留言板的功能十分常见。通过网上论坛系统的设计和开发可以了解到类似系统的功能逻辑以及用Struts和Hibernate实现的基础。设计要求包含以下模块:1. 用户登录和验证模块。2. 显示现在所有话题模块及已有回复的模块。3. 显示某一特定话题和回复模块。4. 新建话题模块。5. 新建回复模块。6. 界面要求:使用Dreamweaver设计界面达到协调、美观。课程设计说明文档要求:1网上论坛系统须使用Struts和Hibernate协同工作,前台使用Struts做控制和显示,后台用Hibernate做数据操作。2. 说明系统设计的功能及模块,画出系统流程图。3.数据库设计与Hibernate设计。4. Action和Form设计及页面设计。4. 撰写课程设计说明书。课程说明书里应包括目录,程序流程图,数据库及Hibernate设计、Action和Form设计及页面设计、程序,总结(印象较深的经验/教训等)。要求:设计要有相应的设计报告,报告要包含题目、目录、摘要、关键字、正文、参考文献几部分;字体、字号格式按样文设置;正文要有需求分析、概要设计、详细设计、代码、结论等部分构成,并有必要的图表和效果图。结题形式产品,程序代码,设计说明书时间分配:总体设计时间为1周1 需求分析,概要设计 1天2 功能模块开发 4天3 上机调试,实现功能 1天4 写说明书、答辩 1天目录第一章 网上论坛系统分析41开发平台4(1)MyEclipse4(2) Tomcat42.数据库53.功能模块6第二章 网上论坛系统开发技术61.J2EE技术简单介绍62.J2EE技术struts简单介绍63.J2EE技术hibernate简单介绍74.J2EE技术MVC开发模式介绍7第三章 网上论坛系统开发8一、数据库开发与设计8二、登录模块122.1登录界面122.2注册模块142.3论坛首页162.4新建帖子模块212.5查看帖子模块232.6添加回复模块242.7 错误页面模块25第四章 总结25第五章 参考文献25摘要J2EE是一套全然不同于传统应用开发的技术架构,它包含许多组件,可以简化和规范应用系统的开发和部署,提高可移植性、安全性与重用价值,J2EE的核心是一组技术规范与指南,其包含的各类组件、服务架构及技术层次均有共通的标准及规格,因而各种遵循J2EE架构的平台具有良好的兼容性。本次课程设计的题目是基于基于Struts+Hibernate网上论坛系统,实现了论坛的基本功能,即用户登陆、用户注册、用户发帖以及回帖等。主要任务是学会J2EE程序开发的环境搭建和配置,并在实践运用中学习和掌握J2EE程序开发的全过程,进一步熟悉掌握J2EE程序设计语言的基础内容。论坛又名网络论坛BBS,全称为Bulletin Board System(电子公告板)。它是Internet上的一种电子信息服务系统。它提供一块公共电子白板,每个用户都可以在上面书写,可发布信息或提出看法。它是一种交互性强,内容丰富而即使的Internet电子信息服务系统。用户在BBS站点上可以获得各种信息服务,发布信息,进行讨论,聊天等等。像日程生活中的黑板报一样,论坛按不同的主题分为许多板块,版面的设立依据是大多数用户的要求和喜好,用户可以阅读别人关于某个主题的看法,也可以将自己的想法毫无保留的贴到论坛中。关键词:论坛系统 MVC设计模式 JSP 第一章 网上论坛系统分析1开发平台本系统的开发平台为MyEclipse+Tomcat(1)MyEclipseMyEclipse,是一个十分优秀的用于开发Java, J2EE的Eclipse插件集合,MyEclipse的功能非常强大,支持也十分广泛,尤其是对各种开元产品的支持十分不错。MyEclipse企业级工作平台(MyEclipse Enterprise Workbench ,简称MyEclipse)是对Eclipse IDE的扩展,利用它我们可以在数据库和JavaEE的开发、发布,以及应用程序服务器的整合方面极大的提高工作效率。它是功能丰富的JavaEE集成开发环境,包括了完备的编码、调试、测试和发布功能,完整支持HTML, Struts, JSP, CSS, Javascript, SQL, Hibernate。在结构上,MyEclipse的特征可以被分为7类: 1. JavaEE模型 2. WEB开发工具 3. EJB开发工具 4. 应用程序服务器的连接器 5. JavaEE项目部署服务 6. 数据库服务 7. MyEclipse整合帮助(2) TomcatTomcat 很受广大程序员的喜欢,因为它运行时占用的系统资源小,扩展性好,支持负载平衡与邮件服务等开发应用系统常用的功能;而且它还在不断的 改进和完善中,任何一个感兴趣的程序员都可以更改它或在其中加入新的功能。 Tomcat 是一个轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。对于一个初学者来说,可以这样认为,当在一台机器上配置好Apache 服务器,可利用它响应对HTML 页面的访问请求。实际上Tomcat 部分是Apache 服务器的扩展,但它是独立运行的,所以当你运行tomcat 时,它实际上作为一个与Apache 独立的进程单独运行的。 这里的诀窍是,当配置正确时,Apache 为HTML页面服务,而Tomcat 实际上运行JSP 页面和Servlet。另外,Tomcat和IIS、Apache等Web服务器一样,具有处理HTML页面的功能,另外它还是一个Servlet和JSP容器,独立的Servlet容器是Tomcat的默认模式。不过,Tomcat处理静态HTML的能力不如Apache服务器。目前Tomcat最新版本为7.0.12Released。2.数据库库 yuu用户登录表t_user帖子t_message回复表t_comment3.功能模块用户注册登陆失败查看添加回复返回登陆成功进入欢迎界面用户名或密码输入错误重新登录用户名及密码均输入正确发布新帖子用户登录第二章 网上论坛系统开发技术1.J2EE技术简单介绍J2EE是一套全然不同于传统应用开发的技术架构,包含许多组件,主要可简化且规范应用系统的开发与部署,进而提高可移植性、安全与再用价值。J2EE平台是用于在分布式企业环境中开发、部署喝执行应用程序的体系结构。分布式应用程序需要系统级服务,如事务管理、安全性、客户端连接喝数据库访问。2.J2EE技术struts简单介绍struts是开源软件。使用Struts的目的是为了减少在运用MVC设计模型来开发Web应用的时间。我们利用混合使用Servlets和JSP的优点来建立可扩展的应用。Struts 是MVC的一种实现,它将 Servlet和 JSP 标记(属于 J2EE 规范)用作实现的一部分。Struts继承了MVC的各项特性,并根据J2EE的特点,做了相应的变化与扩展。struts框架具有组件的模块化,灵活性和重用性的优点,同时简化了基于MVC的web应用程序的开发。 struts可以清晰地区分控制,事务逻辑和外观,从而简化了开发应用程序的过程。struts提供的类使得开发工作更加简单,这些类包括: a. 控制程序流程的类 b. 实现和执行程序事务逻辑的类 c. 自定义的标记库使得创建和验证HTML表单更加容易struts 3.J2EE技术hibernate简单介绍Hibernate定义为一个对象/关系数据库映射(Object/Relational Mapping,ORM)工具,它作为开源的持久层框架,目前的技术已经相对成熟,且为众多的软件开发项目所采用。它作为连接Java应用程序和数据库的中间件,对JDBC进行简单封装,负责java对象的持久化。在分层结构中处于持久化层,封装对数据库的访问细节,使业务逻辑层更专注于实现业务逻辑。4.J2EE技术MVC开发模式介绍MVC(model view controller)是一个设计模式,它强制性的使应用程序的输入、处理和输出分开。使用MVC应用程序被分成三个核心部件:模型、视图、控制器。它们各自处理自己的任务。 视图 :显示层,主要用来实现信息输入和展示功能。模型:业务逻辑层主要用来实现具体的业务逻辑和状态管理。控制器 :控制层,主要起到控制业务流程控制的作用,实现视图模型部分的协同工作。MVC结构第三章 网上论坛系统开发一、数据库开发与设计1.全局变量的配置(Hibernate.cfg.xml) jdbc:mysql:/localhost/si com.mysql.jdbc.Driver root 123 org.hibernate.dialect.MySQLDialect true 2.表格的创建package com;import org.hibernate.cfg.Configuration;import org.hibernate.tool.hbm2ddl.SchemaExport;public class ExportDB public static void main(String args) Configuration cfg=new Configuration().configure();SchemaExport export=new SchemaExport(cfg);export.create(true, true);3.POJO对象(1)User.javapackage com;public class User private String username;private String password;private int id;public int getId() return id;public void setId(int id) this.id = id;public String getPassword() return password;public String getUsername() return username;public void setPassword(String password) this.password = password;public void setUsername(String username) this.username = username;用户表的映射文件配置(User.hbm.xml)(2)Message.java:package com;import java.util.Date;import java.util.HashSet;import java.util.Set;public class Message private Date time;private String content;private String author;private String title;private int id;private Set comment = new HashSet();public String getCommentCount() return String.valueOf(comment.size();public String getTimeString() return time.toString();public String getAuthor() return author;public void setAuthor(String author) this.author = author;public String getContent() return content;public void setContent(String content) this.content = content;public int getId() return id;public void setId(int id) this.id = id;public Date getTime() return time;public void setTime(Date time) this.time = time;public String getTitle() return title;public void setTitle(String title) this.title = title;public Set getComment() return comment;public void setComment(Set comment) ment = comment;帖子表的映射文件配置(Message.hbm.xml)(3)Comment.javapackage com;import java.util.Date;public class Comment private Date time;private String content;private String author;private int id;private int message_id;public String getTimeString()return time.toString();public String getAuthor() return author;public void setAuthor(String author) this.author = author;public String getContent() return content;public void setContent(String content) this.content = content;public int getId() return id;public void setId(int id) this.id = id;public int getMessage_id() return message_id;public void setMessage_id(int message_id) this.message_id = message_id;public Date getTime() return time;public void setTime(Date time) this.time = time;回复表的映射文件配置(Comment.hbm.xml)二、登录模块2.1登录界面1)实现了用户登录及验证功能,使系统更加安全可靠。2)主要代码a.web.xml的配置action*.dob.struts-config.xml的配置 c.登录部分通过继承Action 和 ActionForm类,实现了前台的数据收集和处理。public class LoginAction extends Action public ActionForward execute(ActionMapping mapping, ActionForm form,HttpServletRequest request, HttpServletResponse response)throws Exception LoginActionForm laf=(LoginActionForm)form;String username=laf.getUsername();String password=laf.getPassword();trySessionFactory sf =new Configuration().configure().buildSessionFactory();Session session=sf.openSession();Transaction tx=session.beginTransaction();String sqlQuery=select u from User u where u.username=+ username+;Query query=session.createQuery(sqlQuery);ArrayList userlist=(ArrayList)query.list();mit();session.close();User user=new User();if(null!=userlist)&(userlist.size()0)user=(User)userlist.get(0);if(!user.getPassword().equals(password)return mapping.findForward(error); elsereturn mapping.findForward(error); catch(HibernateException e)e.printStackTrace();return mapping.findForward(error);HttpSession httpSession=request.getSession();httpSession.setAttribute(username, username);return mapping.findForward(success);2.2注册模块1)注册界面2)主要代码a.struts-config.xml的配置代码b.Action部分的代码package com;import java.util.ArrayList;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import javax.servlet.http.HttpSession;import org.apache.struts.action.Action;import org.apache.struts.action.ActionForm;import org.apache.struts.action.ActionForward;import org.apache.struts.action.ActionMapping;import org.hibernate.Query;import org.hibernate.SQLQuery;import org.hibernate.SessionFactory;import org.hibernate.Transaction;import org.hibernate.cfg.Configuration;import org.hibernate.classic.Session;public class registerAction extends Action Overridepublic ActionForward execute(ActionMapping mapping, ActionForm form,HttpServletRequest request, HttpServletResponse response)throws Exception registerActionForm laf=(registerActionForm)form;String username=laf.getUsername();String password=laf.getPassword();String password1=laf.getPassword1();User user=new User();user.setUsername(username);user.setPassword(password);SessionFactory sf=new Configuration().configure().buildSessionFactory();Session session=sf.openSession(); Transaction t=session.beginTransaction(); session.save(user); mit(); session.close();return mapping.findForward(success);2.3论坛首页1)首页界面2)主要代码a.struts-config.xml配置文件的主要代码 b.PostAction中的主要代码package com;import java.io.IOException;import java.util.ArrayList;import java.util.Date;import java.util.Iterator;import java.util.Set;import javax.servlet.ServletException;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import javax.servlet.http.HttpSession;import org.apache.struts.action.Action;import org.apache.struts.action.ActionForm;import org.apache.struts.action.ActionForward;import org.apache.struts.action.ActionMapping;import org.hibernate.Query;import org.hibernate.Session;import org.hibernate.SessionFactory;import org.hibernate.Transaction;import org.hibernate.cfg.Configuration;public class PostAction extends Action public ActionForward execute(ActionMapping mapping, ActionForm form,HttpServletRequest request, HttpServletResponse response)throws IOException, ServletException PostForm postForm = (PostForm) form;String mode = request.getParameter(mode);if (new.equalsIgnoreCase(mode) return executeNewAction(mapping, postForm, request, response); else if (newsave.equalsIgnoreCase(mode) return executeNewSaveAction(mapping, postForm, request, response); else if (view.equalsIgnoreCase(mode) return executeViewAction(mapping, postForm, request, response);else if (addcomment.equalsIgnoreCase(mode) return executeAddCommentAction(mapping, postForm, request, response); else if (addcommentdone.equalsIgnoreCase(mode) return executeAddCommentDoneAction(mapping, postForm, request, response); else return executeManageAction(mapping, postForm, request, response);private ActionForward executeNewAction(ActionMapping mapping,PostForm form, HttpServletRequest request,HttpServletResponse response) PostForm postForm = (PostForm) form;postForm.setNewTitle(null);postForm.setNewContent(null);return mapping.findForward(add);private ActionForward executeNewSaveAction(ActionMapping mapping,PostForm form, HttpServletRequest request,HttpServletResponse response) PostForm postForm = (PostForm) form;Message message = new Message();message.setTitle(postForm.getNewTitle();message.setContent(postForm.getNewContent();message.setTime(new Date();HttpSession httpSession = request.getSession();String author = (String)httpSession.getAttribute(username);message.setAuthor(author);SessionFactory sf = new Configuration().configure().buildSessionFactory();Session session = sf.openSession();Transaction tx = session.beginTransaction();session.save(message);mit();session.close();return executeManageAction(mapping, postForm, request, response);private ActionForward executeViewAction(ActionMapping mapping,PostForm form, HttpServletRequest request,HttpServletResponse response) PostForm postForm = (PostForm) form;String hid = request.getParameter(hid);SessionFactory sf = new Configuration().configure().buildSessionFactory();Session session = sf.openSession();Transaction tx = session.beginTransaction();String sqlQuery = select m from Message m where m.title= + hid + ;Query lQuery = session.createQuery(sqlQuery);ArrayList messageList = (ArrayList) lQuery.list();Message message = (Message) messageList.get(0);mit();session.close();postForm.setViewMessage(message);return mapping.findForward(view);private ActionForward executeAddCommentAction(ActionMapping mapping,PostForm form, HttpServletRequest request,HttpServletResponse response) return mapping.findForward(addcomment);private ActionForward executeAddCommentDoneAction(ActionMapping mapping,PostForm form, HttpServletRequest request,HttpServletResponse response) PostForm postForm = (PostForm) form;Comment comment = new Comment();comment.setContent(postForm.getNewComment();comment.setTime(new Date();comment.setMessage_id(postForm.getViewMessage().getId();HttpSession httpSession = request.getSession();String author = (String)httpSession.getAttribute(username);comment.setAuthor(author);SessionFactory sf = new Configuration().configure().buildSessionFactory();Session session = sf.openSession();Transaction tx = session.beginTransaction();String sqlQuery

温馨提示

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

评论

0/150

提交评论