基于Struts+Hibernate网上论坛系统课程设计任务书.docx
- 文档编号:1855008
- 上传时间:2023-05-01
- 格式:DOCX
- 页数:37
- 大小:963.51KB
基于Struts+Hibernate网上论坛系统课程设计任务书.docx
《基于Struts+Hibernate网上论坛系统课程设计任务书.docx》由会员分享,可在线阅读,更多相关《基于Struts+Hibernate网上论坛系统课程设计任务书.docx(37页珍藏版)》请在冰点文库上搜索。
基于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天
第一章网上论坛系统分析4
1.开发平台4
(1)MyEclipse4
(2)Tomcat4
2.数据库5
3.功能模块6
第二章网上论坛系统开发技术6
1.J2EE技术简单介绍6
2.J2EE技术struts简单介绍6
3.J2EE技术hibernate简单介绍7
4.J2EE技术MVC开发模式介绍7
第三章网上论坛系统开发8
一、数据库开发与设计8
二、登录模块12
2.1登录界面12
2.2注册模块14
2.3论坛首页16
2.4新建帖子模块21
2.5查看帖子模块23
2.6添加回复模块24
2.7错误页面模块25
第四章总结25
第五章参考文献25
摘要
J2EE是一套全然不同于传统应用开发的技术架构,它包含许多组件,可以简化和规范应用系统的开发和部署,提高可移植性、安全性与重用价值,J2EE的核心是一组技术规范与指南,其包含的各类组件、服务架构及技术层次均有共通的标准及规格,因而各种遵循J2EE架构的平台具有良好的兼容性。
本次课程设计的题目是基于基于Struts+Hibernate网上论坛系统,实现了论坛的基本功能,即用户登陆、用户注册、用户发帖以及回帖等。
主要任务是学会J2EE程序开发的环境搭建和配置,并在实践运用中学习和掌握J2EE程序开发的全过程,进一步熟悉掌握J2EE程序设计语言的基础内容。
论坛又名网络论坛BBS,全称为BulletinBoardSystem(电子公告板)。
它是Internet上的一种电子信息服务系统。
它提供一块公共电子白板,每个用户都可以在上面书写,可发布信息或提出看法。
它是一种交互性强,内容丰富而即使的Internet电子信息服务系统。
用户在BBS站点上可以获得各种信息服务,发布信息,进行讨论,聊天等等。
像日程生活中的黑板报一样,论坛按不同的主题分为许多板块,版面的设立依据是大多数用户的要求和喜好,用户可以阅读别人关于某个主题的看法,也可以将自己的想法毫无保留的贴到论坛中。
关键词:
论坛系统MVC设计模式JSP
第一章网上论坛系统分析
1.开发平台
本系统的开发平台为MyEclipse+Tomcat
(1)MyEclipse
MyEclipse,是一个十分优秀的用于开发Java,J2EE的Eclipse插件集合,MyEclipse的功能非常强大,支持也十分广泛,尤其是对各种开元产品的支持十分不错。
MyEclipse企业级工作平台(MyEclipseEnterpriseWorkbench,简称MyEclipse)是对EclipseIDE的扩展,利用它我们可以在数据库和JavaEE的开发、发布,以及应用程序服务器的整合方面极大的提高工作效率。
它是功能丰富的JavaEE集成开发环境,包括了完备的编码、调试、测试和发布功能,完整支持HTML,Struts,JSP,CSS,Javascript,SQL,Hibernate。
在结构上,MyEclipse的特征可以被分为7类:
1.JavaEE模型
2.WEB开发工具
3.EJB开发工具
4.应用程序服务器的连接器
5.JavaEE项目部署服务
6.数据库服务
7.MyEclipse整合帮助
(2)Tomcat
Tomcat很受广大程序员的喜欢,因为它运行时占用的系统资源小,扩展性好,支持负载平衡与邮件服务等开发应用系统常用的功能;而且它还在不断的
改进和完善中,任何一个感兴趣的程序员都可以更改它或在其中加入新的功能。
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_comment
3.功能模块
第二章网上论坛系统开发技术
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定义为一个对象关系数据库映射(ObjectRelationalMapping,ORM)工具,它作为开源的持久层框架,目前的技术已经相对成熟,且为众多的软件开发项目所采用。
它作为连接Java应用程序和数据库的中间件,对JDBC进行简单封装,负责java对象的持久化。
在分层结构中处于持久化层,封装对数据库的访问细节,使业务逻辑层更专注于实现业务逻辑。
4.J2EE技术MVC开发模式介绍
MVC(modelviewcontroller)是一个设计模式,它强制性的使应用程序的输入、处理和输出分开。
使用MVC应用程序被分成三个核心部件:
模型、视图、控制器。
它们各自处理自己的任务。
视图:
显示层,主要用来实现信息输入和展示功能。
模型:
业务逻辑层主要用来实现具体的业务逻辑和状态管理。
控制器:
控制层,主要起到控制业务流程控制的作用,实现视图模型部分的协同工作。
MVC结构
第三章网上论坛系统开发
一、数据库开发与设计
1.全局变量的配置(Hibernate.cfg.xml)
mysql:
localhostsi
2.表格的创建
packagecom;
importorg.;
importorg.(String[]args)
{
Configurationcfg=newConfiguration().configure();
SchemaExportexport=newSchemaExport(cfg);
export.create(true,true);
}
}
3.POJO对象
(1)User.java
packagecom;
publicclassUser{
privateStringusername;
privateStringpassword;
privateintid;
publicintgetId(){
returnid;
}
publicvoidsetId(intid){
this.id=id;
}
publicStringgetPassword(){
returnpassword;
}
publicStringgetUsername(){
returnusername;
}
publicvoidsetPassword(Stringpassword){
this.password=password;
}
publicvoidsetUsername(Stringusername){
this.username=username;
}}
用户表的映射文件配置(User.="id">
(2)Message.java:
packagecom;
importjava.util.Date;
importjava.util.HashSet;
importjava.util.Set;
publicclassMessage{
privateDatetime;
privateStringcontent;
privateStringauthor;
privateStringtitle;
privateintid;
privateSetcomment=newHashSet();
publicStringgetCommentCount(){
returnString.valueOf(comment.size());
}
publicStringgetTimeString(){
returntime.toString();
}
publicStringgetAuthor(){
returnauthor;
}
publicvoidsetAuthor(Stringauthor){
this.author=author;
}
publicStringgetContent(){
returncontent;
}
publicvoidsetContent(Stringcontent){
this.content=content;
}
publicintgetId(){
returnid;
}
publicvoidsetId(intid){
this.id=id;
}
publicDategetTime(){
returntime;
}
publicvoidsetTime(Datetime){
this.time=time;
}
publicStringgetTitle(){
returntitle;
}
publicvoidsetTitle(Stringtitle){
this.title=title;
}
publicSetgetComment(){
returncomment;
}
publicvoidsetComment(Setcomment){
thisment=comment;
}}
帖子表的映射文件配置(Message.="id">
inverse="true"cascade="save-update"> (3)Comment.java packagecom; importjava.util.Date; publicclassComment{ privateDatetime; privateStringcontent; privateStringauthor; privateintid; privateintmessage_id; publicStringgetTimeString() { returntime.toString(); } publicStringgetAuthor(){ returnauthor; } publicvoidsetAuthor(Stringauthor){ this.author=author; } publicStringgetContent(){ returncontent; } publicvoidsetContent(Stringcontent){ this.content=content; } publicintgetId(){ returnid; } publicvoidsetId(intid){ this.id=id; } publicintgetMessage_id(){ returnmessage_id; } publicvoidsetMessage_id(intmessage_id){ this.message_id=message_id; } publicDategetTime(){ returntime; } publicvoidsetTime(Datetime){ this.time=time; }} 回复表的映射文件配置(Comment.="id"> 二、登录模块 2.1登录界面 1)实现了用户登录及验证功能,使系统更加安全可靠。 2)主要代码 a.web.xml的配置 b.struts-config.xml的配置 c.登录部分通过继承Action和ActionForm类,实现了前台的数据收集和处理。 publicclassLoginActionextendsAction{ publicActionForwardexecute(ActionMappingmapping,ActionFormform, HttpServletRequestrequest,HttpServletResponseresponse) throwsException{ LoginActionFormlaf=(LoginActionForm)form; Stringusername=laf.getUsername(); Stringpassword=laf.getPassword(); try{ SessionFactorysf=newConfiguration().configure().buildSessionFactory(); Sessionsession=sf.openSession(); Transactiontx=session.beginTransaction(); StringsqlQuery="selectufromUseruwhereu.username='"+username+"'"; Queryquery=session.createQuery(sqlQuery); ArrayListuserlist=(ArrayList)query.list(); txmit(); session.close(); Useruser=newUser(); if((null! =userlist)&&(userlist.size()>0)) { user=(User)userlist.get(0); if(! user.getPassword().equals(password)) { returnmapping.findForward("error"); } } else { returnmapping.findForward("error"); } } catch(HibernateExceptione) { e.printStackTrace(); returnmapping.findForward("error"); } HttpSession=request.getSession(); .setAttribute("username",username); returnmapping.findForward("success"); } } 2.2注册模块 1)注册界面 2)主要代码 a.struts-config.xml的配置代码 type="com.registerAction" name="registerForm" scope="request">
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 Struts Hibernate 网上 论坛 系统 课程设计 任务书