1、毕业设计( 论文)网: http:/毕业设计(论文) 网: http:/摘 要21 世纪的发展已经很大程度的依赖于计算机网络的发展,随着计算机网络的快速发展而带来的一系列的基于网络的事物的飞速增长和世界信息化步伐的加快,于是越来越多的企事业单位包括各类院校都需要一个自己的信息发布和资源共享的平台。为了满足这个需求,我们开发此工作室管理系统,用于软件学院教学和师生日常交流。系统基于 B/S 的开发模式,前台使用 JSP 技术开发实现,后台使用 MySQL5.0数据库软件管理,并采用 Hibernate 框架进行数据库连接。系统主要分为信息展示、工作室日常管理、系统管理、互动交流四大模块。本文介绍
2、了在 Struts 下应用 MVC 分层思想:模型层、视图层、控制层,在基于 JSP 页面、 MySQL 数据库及 Resin 服务器端的基础上开发的软件学院工作室管理系统。系统地阐述该管理系统开发的分析及设计过程,包括数据流图,功能分析设计,数据库设计等;详细描述了本人负责模块的实现过程,并对本人在系统模块中所使用关键技术的实现进行了全面的介绍。【关键字】工作室管理系统、分层思想、日常交流毕业设计( 论文) 网 QQ: 306826066 优秀毕业设计网 计算机毕业设计网 毕业设计资料网 毕业设计论文网 毕业设计( 论文)网: http:/毕业设计(论文) 网: http:/【Abs
3、tract】The development of the 21st century has a large extent dependent on the development of computer networks.With the rapid development of computer network, a number of network-based things grow rapidly and the pace of worlds informanization is accelerating,so there are more and more enterprise un
4、its including various institutions need its own information and resource sharing platform. To meet this demand, we have developed this system for regular conmunication between teachers and students of the college of software.The front of the system based on B/S pattern uses JSP to achieve while the
5、background uses MySQL5.0 database software to manage, and Hibernate framework is used for database connection. The System consists four main modules of infomation publishing,regular management of the studio、system management and conmunication between each other.This paper introduces MVC delamination
6、 thoughts under the Struts: model layer, view layer, control layer,and the Studio Management System Of College Of Software System Based On J2EE Technology using the technology of JSP ,MySQL database and Resin server,also it systematic describes the development of the Studio Management System and the
7、 process of design ,which includes the data flow diagram ,functional analysis and design ,and the database design and so on.It detailedly describes the realization of the modules i am responsible for,and it has a comprehensive introduction of the key technology used in the system.Keywords the studio
8、 management system, delamination thoughts, conmunication between each other毕业设计( 论文)网: http:/毕业设计(论文) 网: http:/目 录第一章 绪论 .11.1 引言 .11.2 文本的组织 .11.3 本人做的主要工作 .2第二章 系统开发相关技术概述 .32.1 B/S 开发模式 .32.2 JSP 技术概述 .32.2.1 什么是 JSP技术 .32.2.2 JSP技术的优点 .42.3 struts 技术 .42.3.1 struts与 MVC.42.3.2 struts 的工作原理 .52.3
9、 数据库连接池技术 .62.4 MySQL 简介 .72.5 Hibernate 简介 .72.6 Lucene 简介 .82.7 自定义标签简介 .92.4.1 自定义标签的基本概念 .92.4.2 自定义标签的格式 .10第三章 系统的分析与设计 .113.1 系统的实现目标 .113.2 系统分析 .113.2.1 系统功能分析 .113.2.2 系统流程分析 .133.2.3 系统数据流分析 .143.3 系统数据库设计 .143.3.1 系统 E-R图 .143.3.2 数据库表设计 .15第四章 模块的实现 .274.1 MVC 分层结构 .274.2 信息展示模块 .304.3
10、日常管理模块 .344.4 系统管理模块 .404.5 互动交流模块 .434.6 系统模块中关键技术的实现 .444.6.1 Struts 框架的使用(多模块、多配置文件) .44毕业设计( 论文)网: http:/毕业设计(论文) 网: http:/4.6.2 Hibernate 的使用 .454.6.3 StrutsTiles模板 .464.6.4 StrutsValidator验证 .474.6.5 Tags 自定义标签 .484.6.6 DisplayTag标签库 .504.6.7 JSTL标签库 .514.6.8 AJAX异步获取数据 .524.6.9 FreeMarker模板 .
11、534.6.10 Lucene全文索引 .544.6.11 庖丁解牛中文分词包 .544.6.12 数据缓存技术 .554.6.13 Proxool 数据库连接池技术 .554.6.14 分页技术 .564.6.15 网址重写技术(Apache Mod Rewrite) .574.6.16 特殊 Filter的使用 .584.6.17 关于系统安全的技术 .58第五章 总结 .605.1 系统总结 .605.2 个人总结 .605.3 下一步工作 .61参考文献 .62致谢 .63毕业设计( 论文)网: http:/毕业设计(论文) 网: http:/第一章 绪论1.1 引言 软件学院工作室管
12、理中心是以方便同学及导师为宗旨设计的,让管理员、导师通过网络,方便的了解工作室同学的状况。对于即将进入工作室学习的同学,可以通过工作事管理中心,进行工作室学习方向的确定,这就避免了同学选择方向时,因工作室已满而不得不转方向。对于已经在工作室学习的同学,导师可以通过本签到系统,方便的了解同学的出勤状况,历史缺到次数。简单的新闻系统,使同学们能够及时了解工作室最新动向。通过站内短信,同工作室,不同工作室之间都可以进行短信交流,也可以进行短信群发。工作室管理中心提供了一个讨论区,同学可以就最新的帖子进行评论,也可以和导师交流最新技术。个人日志功能免除了同学手写日志的苦恼,日志直接提交至导师,导师也可
13、以及时了解同学当天的学习进展。网站链接功能则是由导师或同学添加一些认为好的学习网站,这样能更好的进行知识交流。在实际使用中,本系统可以发挥互联网的优势、在网络上建立一个工作室管理中心,使得工作室管理更合理。让导师更清楚的掌握学生的出勤状况及学习进度。工作室选向更人性化,让学院更好、更早的进行安排。1.2 文本的组织论文主要介绍了工作室管理系统开发的分析过程、设计思想和功能实现,并详细阐述了系统中关键技术的实现。第一章简述了系统的开发背景、特点以及本人的主要工作。第二章简述了系统开发的相关技术。第三章阐述了系统开发的分析和设计过程,包括系统的数据流分析、数据库设计等。第四章详细描述了软件学院工作
14、室管理系统的过程中所使用的关键技术和系统部分功能的实现。毕业设计( 论文)网: http:/毕业设计(论文) 网: http:/1.3 本人做的主要工作在软件学院工作室管理系统的开发过程中,我参与并完成了从需求分析、概要设计、数据库设计到系统功能划分、最终实现的一系列工作。本人在系统中主完成全部模块,包括新闻公告、工作室管理、论坛、问答系统、考勤管理、荣誉管理、选方向管理、资源管理等。毕业设计( 论文)网: http:/毕业设计(论文) 网: http:/第二章 系统开发相关技术概述2.1 B/S 开发模式 目前较流行的网络开发模式分别是 Client/Server 模式与 Browser/C
15、lient模式。 C/S 模式主要是在以局域网为基础的环境下展开应用的,它受到地域的限制。而 B/S 模式通过 Internet 进行通信,可以不受地域的限制,但是它不能够进行联机事务处理,并且在大量数据处理的情况下,速度较慢。从目前的开发技术来看,Browser 端作为信息收集源,特别是大量的数据录入工作还不能完全取代 Client 端的用户界面。在这方面,Client 端的各种开发工具的功能更加强大也更加灵活,而 Browser 端却由其功能结构的限定过于“瘦小” 。基于B/S 与 C/S 两种模式的比较下,该系统采用的系统体系结构为 B/S 结构,克服了 C/S 体系结构的缺点,使系统跨
16、平台,跨语言,高度移植性充分体现出来了。同时,使用该体系结构开发本系统具有以下两个优点 1:1、较低的应用开发及管理成本。基于 B/S 技术开发的应用系统,安装、配置和升级主要在服务器上进行,在用户计算机上通常只需要安装通用的浏览器软件即可,可以支持客户端跨操作系统平台的使用。由于浏览器软件常常是客户机操作系统的默认安装内容,不需要管理员为每个不同的应用维护客户端系统。2、应用推广成本低。一旦用户掌握了浏览器的使用,就基本掌握了各种不同应用系统的使用。2.2 JSP 技术概述2.2.1 什么是 JSP技术JSP(JAVA SERVER PAGES)是由 Sun Microsystems 公司倡
17、导、许多公司参与一起建立的一种动态网页技术标准。它由 HTML 代码和嵌入其中的 JAVA 代码所组成。服务器在页面被客户端请求以后对这些 JAVA 代码进行处理,然后将生成的 HTML 页面返回给客户端的浏览器。JSP 具备了 JAVA 技术的简单易用、完全面向对象、具有平台无关性且安全可靠,其在动态网页的建设中有其强大而特别的功能,下文将简单介绍其优点 2 3 4 5。毕业设计( 论文)网: http:/毕业设计(论文) 网: http:/2.2.2 JSP 技术的优点第一、将内容的生成和显示进行分离。 使用 JSP 技术, Web 页面开发人员可以使用 HTML 或者 XML 标识来设计
18、和格式化最终页面。使用 JSP 标识或者小脚本来生成页面上的动态内容(内容是根据请求来变化的,例如查询指定学院的专业或者某一位学生参加的文艺活动) 。Web 管理人员和页面设计者,能够编辑和使用 JSP 页面,而不影响内容的生成。第二、生成可重用的组件。绝大多数 JSP 页面依赖于可重用的,跨平台的组件(JavaBeans 或者Enterprise JavaBeansTM 组件)来执行应用程序所要求的更为复杂的处理。开发人员能够共享和交换执行普通操作的组件,或者使得这些组件为更多的使用者或者客户团体所使用。第三、采用标识简化页面开发。 Web 页面开发人员不会都是熟悉脚本语言的编程人员。但 J
19、avaServer Page技术封装了许多功能,这些功能是在易用的、与 JSP 相关的 XML 标识中进行动态内容生成所需要的。标准的 JSP 标识能够访问和实例化 JavaBeans 组件,设置或者检索组件属性,下载 Applet,以及执行用其他方法更难于编码和耗时的功能。 通过开发定制化标识库,JSP 技术是可以扩展的。以上这些使得 Web 页面开发人员能够使用熟悉的工具来执行特定功能。 第四、提供所有 Servlets 的功能。 与 SERVLETS 相比,JSP 能提供所有 SERVLETS 功能,但它比用 println书写和修改 HTML 更方便。此外,可以更明确的进行分工,WEB
20、 页面设计人员编写 HTML,只需要留出地方让 SERVLETS 程序员插入动态部分即可。 2.3 struts 技术 2.3.1 struts 与 MVCJSP 标记只解决了部分问题,还得处理验证、流程控制和更新应用程序的状态等问题。MVC(模型-视图-控制器)通过将问题分为三个类别来帮助解决单一模块方法所遇到的某些问题: 6 7毕业设计( 论文)网: http:/毕业设计(论文) 网: http:/ Model(模型)模型包含应用程序的核心功能。模型封装了应用程序的状态。有时它包含的唯一功能就是状态。它对视图或控制器一无所知。 View(视图)视图提供模型的表示。它是应用程序的外观。视图可
21、以访问模型的读方法,但不能访问写方法。此外,它对控制器一无所知。当更改模型时,视图应得到通知。 Controller(控制器)控制器对用户的输入作出反应。它创建并设置模型。 2.3.2 struts 的工作原理MVC 即 Model-View-Controller 的缩写,是一种常用的设计模式。MVC 减弱了业务逻辑接口和数据接口之间的耦合,以及让视图层更富于变化。Struts 是 MVC 的一种实现,它将 Servlet 和 JSP 标记(属于 J2EE 规范)用作实现的一部分。Struts 继承了 MVC 的各项特性,并根据 J2EE 的特点,做了相应的变化与扩展。控制:主要有一个 XML
22、 文件 Struts-config.xml,与之相关联的是Controller,在 Struts 中,承担 MVC 中 Controller 角色的是一个 Servlet,叫ActionServlet。ActionServlet 是一个通用的控制组件。这个控制组件提供了处理所有发送到 Struts 的 HTTP 请求的入口点。它截取和分发这些请求到相应的动作类(这些动作类都是 Action 类的子类) 。另外控制组件也负责用相应的请求参数填充 Action From(通常称之为 FromBean) ,并传给动作类(通常称之为ActionBean) 。动作类实现核心商业逻辑,它可以访问 java
23、 bean 或调用 EJB。最后动作类把控制权传给后续的 JSP 文件,后者生成视图。所有这些控制逻辑利用 Struts-config.xml 文件来配置。 视图:主要由 JSP 生成页面完成视图,Struts 提供丰富的 JSP 标签库: Html,Bean , Logic,Template 等,这有利于分开表现逻辑和程序逻辑。 模型:模型以一个或多个 java bean 的形式存在。这些 bean 分为三类:Action Form、Action 、JavaBean or EJB。Action Form 通常称之为 FormBean,封装了来自于 Client 的用户请求信息,如表单信息。A
24、ction 通常称之为ActionBean,获取从 ActionSevlet 传来的 FormBean,取出 FormBean 中的相关信息,并做出相关的处理,一般是调用 Java Bean 或 EJB 等。 流程:在 Struts 中,用户的请求一般以*.do 作为请求服务名,所有的*.do请求均被指向 ActionSevlet,ActionSevlet 根据 Struts-config.xml 中的配置信息,毕业设计( 论文)网: http:/毕业设计(论文) 网: http:/将用户请求封装成一个指定名称的 FormBean,并将此 FormBean 传至指定名称的 ActionBean
25、,由 ActionBean 完成相应的业务操作,如文件操作,数据库操作等。每一个*.do 均有对应的 FormBean 名称和 ActionBean 名称,这些在 Struts-config.xml 中配置。 核心:Struts 的核心是 ActionSevlet,ActionSevlet 的核心是 Struts-config.xml。2.3 数据库连接池技术 数据库连接的建立及关闭对系统而言是耗费系统资源的操作,在多层结构的应用环境中,这种耗费资源的动作对系统的性能影响尤为明显。在传统的数据库连接方式 (指通过 DriverManager)中,一个数据库连接对象均对应一个物理数据库连接,每次
26、操作都打开一个物理连接,使用完都关闭连接,这样造成系统的 性能低下。 数据库连接池的解决方案是在应用程序启动时建立足够的数据库连接,并讲这些连接组成一个连接池(简单说:在一个“池”里放了好多半成品的数据库联接对象),由应用程序动态地对池中的连接进行申请、使用和释放。对于 多于连接池中连接数的并发请求,应该在请求队列中排队等待。并且应用程序可以根据池中连接的使用率,动态增加或减少池中的连接数。 连接池技术尽可能多地重用了消耗内存地资源,大大节省了内存,提高了服务器地服务效率,能够支持更多的客户服务。通过使用连接池,将大大提高程序运行效率,同时,我们可以通过其自身的管理机制来监视数据库连接的数量、
27、使用情况等。数据库连接是一种关键的有限的昂贵的资源,这一点在多用户的网页应用程序中体现得尤为突出。对数据库连接的管理能显著影响到整个应用程序的伸缩性和健壮性,影响到程序的性能指标。数据库连接池正是针对这个问题提出来的。数据库连接池负责分配、管理和释放数据库连接,它允许应用程序重复使用一个现有的数据库连接,而再不是重新建立一个;释放空闲时间超过最大空闲时间的数据库连接来避免因为没有释放数据库连接而引起的数据库连接遗漏。这项技术能明显提高对数据库操作的性能。 数据库连接池在初始化时将创建一定数量的数据库连接放到连接池中,这些数据库连接的数量是由最小数据库连接数来设定的。无论这些数据库连接是否被 使用,连接池都将一直保证至少拥有这么多的连接数量。连接池的最大数据库连接数量限定了这个连接池能占有的最大连接数,当应用程序向连接池请