SSH集成框架

2024-10-20

SSH集成框架(共7篇)

SSH集成框架 篇1

1 引言

对于集团型企业, 总部机关往往需要出具大量集团层面的全局性统计报表或报告, 每年、每月甚至每日都需要对各类数据进行挖掘和分析, 以便更好地指导企业日常经营管理和决策。虽然现在大多数企业都已建立了ERP系统, 存储了企业大部分生产经营数据, 但受限于各种原因, 如:有的下属单位实施了ERP系统, 有的尚未实施;有的职能业务纳入了ERP管理, 有的尚未纳入等, 生产经营数据很难全部进入集团ERP系统中, 缺乏一个集成整合平台进行数据管理和综合分析。每当需要对一些管理环节进行深入、详细地了解以及问题分析时, 往往难以及时全面获得所需的准确数据, 这也使得为决策层提供集团范围数据支撑的需求日益突出。

此外, 多数企业的分析人员习惯于采用指标比较分析的方法, 且评价标准较为片面、单一。通过拿当期资料与上年同期或预算指标做简单对比, 就得出分析结论, 使得分析报告更像是财务指标对比情况说明书。而一些优秀的经营管理分析报告, 常常是由有长期从业经验、对公司情况比较了解的人员来完成。当掌握好的分析经验和方法的人员离开公司的时候, 企业常常会陷入一方面对人才流失表示惋惜, 另一方面对新手不称职感到着急的尴尬境地。

而通过对各类经营数据进行统一标准、集中采集, 并结合现有成熟分析模型开展数据处理, 实现企业经营报表的自动生成, 将有助于加强对企业经营状况关键指标的及时监控、分析与预警, 这对提高企业的经营管理水平也具有重要的意义。

基于上述期望, 本文以笔者负责实施的中海石油化学股份有限公司 (以下简称:化学公司) 报表综合分析平台建设项目为例, 通过对现有SAP管理报表平台进行深入分析, 提出了基于MVC模式和SSH集成框架进行报表综合分析平台系统设计的思路, 以期做到数据收集、管理、统计、分析自动化, 为管理者提供直观便捷的信息获取渠道, 进而建成集团数据统一管理、统一分析的报表综合分析平台, 满足集团层面对ERP与非ERP上线单位数据收集统计及分析的需求, 弥补现有系统对非ERP上线单位数据整合能力的不足, 使得管理者能够通过该平台清晰准确地了解全集团运营状况。

2 报表综合分析平台设计需求分析

通常, 集团型企业在信息化报表的管理方面主要存在以下三项挑战:

(1) 系统数据分散, 具体表现为:伴随信息化的深入应用, 系统数据量呈爆炸式增长;信息零散, 业务人员需同时面对多个系统及各类手工数据;已有系统间数据接口开发难度大, 成本高, 周期长;系统外数据上载功能灵活性及易用性差, 缺乏良好的数据校验方法。

(2) 执行效率不高, 具体表现为:数据分散导致业务人员只能手工处理分析数据, 耗时耗力, 且数据准确性难以保证;现有SAP系统等分析工具对计算机专业技能要求较高, 且由上级公司统一运维管理的系统对二级单位权限开放有限, 沟通及开发成本均较高;系统外数据的采集、统计、分析多数都还停留在手工阶段。

(3) 价值难以发挥, 具体表现为:由于系统数据覆盖面不全, 导致分析工作需借助手工方式对大量系统外数据进行深度分析和挖掘, 工作量及难度均较大;现有系统的报表功能开发需要耗费较多的时间和精力, 用户难以自主灵活地使用数据;系统外数据通过人工手段难以实现全面历史数据的实时查询和分析。

3 报表综合分析平台的整体架构

本文所设计的化学公司报表综合分析平台, 关注于集团总部对各所属单位零散系统数据集中管控的要求, 为内外部系统数据整合工作提供了一套综合解决方案。

该平台在以往建设的SAP管理报表平台基础上 (参见表1) , 重点解决系统外数据的集成问题, 做到手工数据也能够进入信息系统, 并提供一套面向用户的简单报表开发工具, 既能充分发挥现有系统作用, 又能够弥补现有系统不足, 易于推广、成本低廉。

该平台专注于非SAP数据的采集、统计、分析, 用于集成OA、SAP BW等现有系统及其他业务系统, 并可供用户自定义报表、报告, 提高业务分析效率。通过平台的数据整合功能, 能有效地为报表分析人员提供从点到面、从现象到原因的多维度动态分析, 及时有效地掌握企业相关信息并对信息做出透彻的分析, 为企业决策提供数据依据。同时, 最终以OA平台作为统一的展示平台, 通过定制化页面的开发, 让用户以最直观的方式获取相关数据、报表信息, 减轻用户报表出具工作量, 提升企业报表管理运用效率, 系统架构参见图1。

3.1 平台技术架构

该平台技术架构如图2所示, 属于纯Web应用, 系统管理和业务应用均以Web页面方式在客户端展现和操作, 只需运行IE浏览器就可通过内网平台进行访问和使用。

平台基于MVC模式和SSH集成框架进行开发, 利用SSH集成框架中的Struts、Spring、Hibernate组成表现层、业务逻辑处理层和数据库管理层的三层开放架构, 具有良好的平台无关性。各个组件本身还具有良好的封装性与独立性, 主要在表现层体现其各项功能和操作。业务逻辑层是代表了所有与分析模型业务逻辑的组件, 处于数据层和用户业务层之间, 其本身不包括任何用户界面, 是完全独立封装、可重用的业务对象, 为用户业务层提供系统所需的相关服务, 其通用性也对将来开发和实施应用程序提供了很大的帮助。数据层在功能服务、操作系统和共享服务提供的服务基础上对数据进行管理, 并向业务逻辑层提供标准化的开放访问接口。

三层架构设计的目的在于:一是保证系统的扩张性和拓展的灵活性;二是通过表现层、业务层和数据库的隔离, 能保证和提高数据的安全性;三是能实现维护、使用灵活性和集中管理的最佳结合。

3.2 类Excel界面报表设计器

考虑到大部分用户习惯于使用Excel处理手工数据的情况, 在平台中所提供面向用户的报表设计工具采用了B/S架构、以类Excel的方式进行报表设计和开发, 使得系统用户进行数据分析更容易、更快捷、更简单, 设计器界面如图3所示。

4 MVC设计模式与SSH集成框架简介

4.1 MVC设计模式

MVC设计模式是将应用数据和业务逻辑、数据的表示以及数据的交互相分离, 即分成模型、视图和控制器三个不同的实体[1]。三者之间的交互过程如图4所示:首先控制器接受用户的请求, 并决定调用模型进行处理;然后模型根据用户请求进行相应的业务逻辑处理, 并返回数据;最后控制器调用相应的视图来格式化模型返回的数据, 并通过视图呈现给用户[2]。

MVC模式的处理过程:首先控制器接受用户的请求, 并决定调用模型进行处理;然后模型根据用户请求进行相应的业务逻辑处理, 并返回数据;最后控制器调用相应的视图来格式化模型返回的数据, 并通过视图呈现给用户。

4.2 SSH集成框架

SSH是由Struts+Spring+Hibernate组成的一个集成框架, 是目前较流行的一种Web应用程序开源框架。基于SSH集成框架的系统从职责上分为:表示层、业务逻辑层、数据持久层和域模块层, 以帮助开发人员在短期内快速搭建结构清晰、可复用性好、维护方便的Web应用程序。其中, 使用Struts作为系统的整体基础架构, 负责MVC的分离, 在Struts框架的模型部分, 利用Hibernate框架对持久层提供支持, 业务层用Spring支持。

系统的基本业务流程是:在表示层中, 首先通过JSP页面实现交互界面, 负责传送请求 (Request) 和接收响应, 然后Struts根据配置文件将Action Servlet接收到的Request委派给相应的Action处理。在业务层中, 管理服务组件的Spring容器负责向Action提供业务模型 (Model) 组件和该组件的协作对象数据处理 (DAO) 组件完成业务逻辑, 并提供事务处理、缓冲池等容器组件以提升系统性能和保证数据的完整性。而在持久层中, 则依赖于Hibernate的对象化映射和数据库交互, 处理DAO组件请求的数据, 并返回处理结果。

SSH集成框架不仅实现了视图、控制器与模型的彻底分离, 而且还实现了业务逻辑层与持久层的分离。这样无论前端如何变化, 模型层只需很少的改动, 并且数据库的变化也不会对前端有所影响, 大大提高了系统的可复用性。且不同次之间耦合度小, 有利于项目团队成员并行工作, 大大提高了开发效率。

5 平台数据分析模型情况

该平台采用目前技术较为成熟及领先的财务分析模型作为核心分析部件, 以“准确计算法” (对相关因素进行公式计算, 得到准确数值) 和“因素穷尽法” (穷尽相关因素的状态组合, 给出每一组合对应的结论) [3]两大理论创新为基础, 通过调用相关业务分析模型以及采用动态的多指标综合分析方法 (单一性的统计指标将可能导致企业自身发展的盲目追求, 不利于决策者进行有效决策[4]) , 进行数以万计的逻辑判断, 全面解读企业的财务状况和经营成果, 辅以看板、图形及多维表格等展示形式, 以B/S架构和类Excel的方式进行报表的设计和开发, 使得系统用户进行数据分析更容易、更快捷、更简单。

5.1 财务分析

基于现有成熟的动态综合分析理论[5], 平台从资金结构、偿债能力、盈利能力、营运能力、现金流量、经营风险等诸多方面, 对企业的经营及财务状况进行全面的分析诊断, 并对每个方面的分析问题给出结论性意见, 既可生成简单明了的结论性报告, 也可生成分析详细、内容翔实的图文并茂的报告, 满足不同层次领导和用户的需要。

5.1.1 各类数据快速灵活导入

对于资产负债表, 损益表, 现金流量表三张主表等通用表采用智能导入方式, 一分钟完成数据导入;常用明细表可采用复制粘贴报表格式功能, 迅速实现分析用表和用户个性化明细报表的一一对应, 并可将其保存为永久性模版, 供以后随时调用和智能导入;项目繁多、结构复杂的综合报表, 可采用系统提供的自定义导入方法, 并可对报表进行行列转换, 灵活导入不同企业不同时期不同数据的报表, 并可将其保存为模板长期使用, 再次导入时, 只需打开模板, 变换时间, 便可迅速导入数据;除可以导入完整的个性化报表之外, 也可根据企业的实际情况, 仅导入分析所需的部分数据。

5.1.2 多视角、多角度分析比较

可根据实际需要选择分析视角, 进行同期比、预算比、变化比、累计比等多角度的分析, 并且可以迅速实现跨季度累计分析, 快速有效地实现多企业间的比较。对于收入、成本、费用、毛利等明细项目的分析内容, 可进行如占比、增长率、绝对值等多个角度的筛选。

5.2 风险预警

企业财务风险的防范, 是对风险进行动态的控制, 并非刻意减少风险。其主要是在衡量和分析财务风险的基础上, 针对不同的情况采取相应的措施, 抑制不利事态的发展, 减少损失程度[6]。该平台可从资金需求测算、资金链监控、异常波动预警、综合财务分析等方面, 对企业的财务风险进行预警, 从而帮助企业建立有效的风险预警体系。

5.2.1 合理资金需求测算

可根据企业资产负债结构、盈利水平和资金周转速度的变化, 从动态的、发展的角度进行计算, 明确告知一年期、二年期和三年期的合理负债规模。系统还可根据财务报表所反映的经营情况, 计算集团企业当前经营活动的正常资金需求, 包括短期资金需求、长期资金需求和资金总需求, 并能够根据收入的几种可能变化对未来三年的资金需求数量做出估计。

5.2.2 监控资金链

可将企业的表外项目的金额, 转化到财务报表之内项目, 然后再根据资金链监控制的准确计算公式, 通过准确计算, 来分别监控投资、融资、经营和现金支付环节的资金缺口, 明确回答一个被监控企业是否会出现资金链断裂。如果发生断裂, 软件还能够计算出资金缺口将是多少。

5.2.3 异常波动预警

系统从历史变化、行业比较、表中数据关系三个方面对变化异常进行提示, 特别是对过快下降、过快增长和亏损可能性进行重点提示。

5.2.3. 1 过快下降预警

对收入、利润等过快下降的项目提出警示, 增加现金流入、流出和净流入和净出等的预警。

5.2.3. 2 过快增长预警

对成本、费用的过快上升的项目提出警示, 以及对现金流出过快的项目做出预警。

5.2.3. 3 亏损预警

从多个角度对发生亏损的可能性做出预警。

6 下一步工作建议

报表平台的建设, 其首要目的是要把分散在企业各处的业务数据按照统一模板进行统计整合与集成, 进而在所需各类数据整合齐全的前提下, 通过对业务数据进行更深入、更全面的分析, 最大限度挖掘各业务数据的关键信息与潜在信息, 并以此支持企业及时、科学进行经营管理决策活动。而要实现该目的, 除了要有信息化手段的支撑, 还需企业在内部管理活动上予以支持。

6.1“一把手”重视是关键

企业各类活动的有效开展离不开公司高层领导的重视与支持。领导层重视程度决定了该项工作质量的高低, 领导层的高度重视是做好该项工作的前提和基础。同时, 建立相配套的管理机制亦是该项目工作贯彻执行的有力保障。

6.2 构建综合指标体系

各数据整合及分析工作应围绕企业当前经营活动展开, 只有贴合企业当前所需, 才能更好体现与发挥业务数据所带来的信息价值。企业应结合战略目标构建自身综合指标体系并不断进行滚动完善与细化, 从而更好地指导数据整合、分析工作的有效开展。

6.3 提升经营分析能力

虽然信息化手段能够提供部分数据分析结论, 但受当前技术所限, 系统更多的只是提供基础信息, 部分深入分析工作还需依靠人员。因此, 企业要加强经营分析人员的专业培训, 拓展其知识面的广度与深入。同时, 经营分析人员自身要深入了解企业各生产、经营流程, 确保所作分析不浮于数据表面。

7 结束语

本文基于对企业相关经营报表的分析, 结合成熟业务模型, 为集团型企业提供了报表综合分析平台的设计思路, 为如何解决ERP系统以及非ERP系统数据的整合以及集团化数据分析这一当前共性问题进行了有益的探索和实践, 为企业决策层提供了更为全面的数据支持, 对提高企业的经营管理水平、辅助企业快速准确地做出经营决策具有积极意义。

参考文献

[1]王家骐, 于海霞.基于MVC设计模式的WEB应用框架研究[J].计算机与信息技术, 2006, (11) :8-10

[2]孙卫琴.精通Struts:基于MVC的Java Web设计与开发[M].电子工业出版社, 2005, (2) :9-10

[3]MattyLeus, Dwight Deugo, Franz Oppacher.Trajectory-based visual analysis of large financial time series data.ACM:ACM SIGKDD Explorations Newsletter, 2007, 9 (2) :30-37

[4]亓文会, 徐林.利用UFO电子报表系统建立财务分析指标体系的探讨.中国会计电算化, 2003, 6 (7) :44-46

[5]张先治, 陈友邦.财务分析.大连:东北财经大学出版社, 2007, 2-4

[6]李燕.企业财务风险成因分析及其控制[J].会计之友, 2008 (5) .

SSH框架技术分析 篇2

SSH是struts+spring+hibernate的集成框架, 是当前Web应用程序开发采用比较多的一种开源框架技术。本文主要对SSH框架的技术优势及各组成部分的特点进行分析介绍。

1 SSH框架技术优势

SSH框架是基于传统J2EE框架的新技术, SSH框架继承了J2EE的分层架构模式, 二者的不同之处仅在于层与层之间的实现方法。当J2EE框架和SSH架构完成相同的运算任务时, SSH框架消耗的系统资源较少。

SSH框架在业务对象的平台专用性上没有特殊的限定要求, 在SSH框架中业务逻辑的实现通过普通的Java对象即可完成。

SSH组合框架技术优势体现在四个方面: (1) 分离了Java代码和HTML代码, 降低了对开发人员要求的复合度。 (2) 系统的层与层之间的工作相对独立, 代码耦合度低。 (3) 即使脱离了Spring环境的AOP机制, 也不会妨碍AOP实现业务的功能。 (4) 与SSH配合使用的Hibernate等跨平台技术开源性极强, 促使了SSH框架的飞速发展。

SSH的技术优势使得采用SSH框架技术开发的系统具备了很强的可拓展性和可移植性。同时, 采用开源的SSH框架能够大大简化系统开发的复杂度, 缩短系统开发时间。

2 Struts

Struts与SSH框架同样具有开源性, 合理恰当的使用Struts技术可以在一定程度上减少基于MVC模型的Web应用系统的开发时间, 从而有效控制系统开发成本。事实上, 绝大多数程序员在使用Servlets和JSP的可扩展的应用时, 已经将Struts框架技术作为系统开发的标准。

Struts技术基于MVC框架, Struts的实现依赖Servlet和JSP实现。EJB和JavaBean两个组件是Struts框架业务功能实现的基础部件;Action和ActionServlet部件是框架实现控制功能的重要部件;视图部分则是由若干存在内在联系的.JSP文件有机构成, 来实现系统功能。其工作原理如图一所示。

(1) 使用者通过浏览器客户端发送HTTP协议的数据请求。

(2) HTTP请求到达服务器后, 经过控制器, 使用框架结构填充FormBean。

(3) 经过填充的数据请求通过框架中控制器的Action组件进行数据业务处理。

(4) 经过控制器处理过的业务数据调用Struts的基础部件实现业务逻辑。

(5) 将业务逻辑经过转换形成JSP业务进行处理, 并将处理结果返回。

(6) 用户在客户端或者浏览器上得到HTTP请求的响应。

3 Spring

Spring在整个系统体系中提供两种框架:一种是面向方面编程 (AOP) 容器框架, 另外一种是轻量级的反向控制。

Spring的核心部分是轻量级控制反转 (Inversion ofControl, 简称IoC) 容器。通过外部的配置文件反过来调用应用程序来替代原有应用程序调用的控制功能, 是控制反转的基本思想。

在框架中进行控制功能的创建工作就实现了轻量级控制反转, 这样就能使控制功能的编写从应用程序的编写中分离出来。在使用组件调用容器时, 在框架中的控制功能创建中只需要给出调用组件所用到的对象。典型的轻量级控制反转工作过程如下:首先创建程序中以后所用到的所有对象, 并进行对象属性设置, 对相关的属性和惯性进行连接配置, 最后再确定调用的方法和时间点即可。

Spring架构的反转控制提供了应用场景和复杂程度不同的两种注入方式:构造器注入和Setter依赖注入 (DependencyInjection) 。Spring支持在实际开发中应用的最为广泛方法注入Setter (Setter Injection) 方法, 这种方法使用起来更加直观、方便。

4 Hibernate

在面向对象程序设计中, 关系数据库中的表间关系与对象间关系的匹配没有有效的转换来完成匹配, Hibernate的出现可以很好地完成二者之间的关系匹配问题。

Hibernate可以将对象间关系按照一定的逻辑与数据库中表之间的关系进行高耦合度的匹配, 这种转换由Hibernate自动进行[20]。使用Hibernate可以减少原来面向对象程序设计时大量的程序与数据库之间SQL的转换, 有效提高开发效率。

Hibernate是Java平台上高效的ORM映射框架。由于Hibernate使用了反射和运行时字节码生成技术, 所以对于最终用户而言, Hibernate几乎是透明地运行。

Hibernate的执行流程如图二所示。

(1) 通过实例化Configuration对象, 解析文件, 建立对象与数据库之间的映射关系。

(2) 通过创建Session工厂, 运用Session变量, 对数据库进行操作。

(3) 通过创建事务Transation, 对对象进行持久化操作。

(4) 提交事务, 关闭打开的会话, 结束操作。

纵观整个开发过程, Hibernate承接应用程序和基础数据库, 通过Hibernate, 应用程序能够方便地将对象注入到数据库中。由执行流程可以看出, Hibernate通过配置文件及利用数据库作为支撑持续不断地向应用程序提供服务。换个意思来讲, 可通过配置文件把普通Java对象直接映射到关系数据库中, 并直接作为关系数据库的表存储起来。

5 结束语

SSH是开源的框架技术, 它可以部署在AP ACH E等便宜的服务器上, 可以脱离大型服务器的约束, 从而节省成本开支。另外, SSH作为一款轻量级的框架, 还能够与异步JavaScript和XML框架同时使用, 能够较大程度地降低系统开销, 还能够较大幅度改善用户的体验, 从而大大提高系统的性能。

摘要:本文分析了SSH框架技术的优势及各组成部分, 并对各部分的功能特点进行了详细阐述。

关键词:框架,Struts,Spring,Hibernate

参考文献

[1]梁立新.项目实践精解:基于Struts-Spring-Hibernate的Java应用开发[M].北京:电子工业出版社, 2006.

[2]陈天河.Struts Hibernate Spring集成开发宝典[M].北京:电子工业出版社, 2007.

[3]穆福森, 吴观茂.基于Struts+Spring+Hibernate Web应用开发框架技术[J].电脑知识与技术, 2006, (01) :81-82.

[4]罗时飞.精通Spring2.0[M].北京:电子工业出版社, 2007.

[5]孙卫琴.精通Hibernate:Java对象持久化技术详解[M].北京:电子工业出版社, 2006.

SSH集成框架 篇3

SSH框架是目前JavaEE项目中常用的轻型框架, 在框架的项目实现中依赖于相应的配置文件, 通过配置文件struts.xml和applicationContext.xml配置相关的参数, 实现相应的业务分发与对象的注入等, 但在实际应用中还可以通过使用注解方式来实现这些功能, 简化这些配置文件的编写工作, 本文就SSH框架采用完全注解的方式实现JavaEE项目的设计。

1. SSH项目环境

建SSH项目, 首先加入struts 2.x、spring 3.x和hibernate 3.x运行支持包, 在添加SSH运行支持包后, 进行SSH集成配置, 由spring实现对struts和hibernate的管理支持, 并修改相应的配置文件, 实现注解的支持。

(1) 修改struts.xml文件

在struts中加入spring管理支持:

(2) 修改web.xml文件

增加spring的监听器:

(3) 修改applicationContext.xml文件

加入注解应用的支持:

加入事务监听注解支持:

2. Struts注解的应用

@Namespace ("/student") 指定名称空间, 设定后访问的URL必须加上此命名空间, 如:http://lo-calhost/student/…

@ParentPackage ("student") //指定继承的包, struts-default无需指定, 如在JSON化数据时必须指定为json-default。

@Results ({@Result () [, @Result () [, …]]}) 用于组织多个@Result因此它只需指定一个value属性值, 该value属性值为多个@Result

@Result相当于struts.xml文件中的<result/>元素。使用@Result必须指定一个name属性, 相当于<result name=””/>另外, 它还有几个可选的属性。

☆type相当于<result type=””/>指定返回视图资源的类型

☆location相当于<result>…..</result>中间部分, 用于指定实际视图位置

☆params:该属性相当于<result/>元素里多个<param../>子元素的作用, 用于为该Result指定参数值。该属性应满足{“name1”, ”value1”, ”name2”, ”value2”}格式。

与Action相关的两个Annotation是@Action和@Actions:

@Action中可指定一个value属性, 还可以指定一个params属性, 该属性是一个字符串数组, 用于该Acion指定的参数名和参数值。params属性应遵守如下格式:{“name1”, ”value1”, ”name2”, ”value2”}

@Actions也用于修饰Action类里的方法, 用于将该方法映射到多个URL.@Actions用于组织多个@Action.因此它可将一个方法映射成多个逻辑Action。

3. Spring注解注入的实现

3.1 Spring注解符

@Repository用于DAO属于类级别;

@Service用于service服务层属于类级别;

@Component适用不是以上两种的类属于类级别;

@Controlle web层控制器属于类级别;

@Resource注入的对象类属性级别;

Resource有name参数, 缺省时, Spring将这个值解释为要注入bean的名字。即遵循by-name的语法, 将继承于字段名或者setter方法名:如果是字段名, 它将简化或者等价于字段名;如果是setter方法名, 它将等价于bean属性名。

@Scope ("singleton") 或prototype属于类级别;

@PostConstruct;

@PreDestroy。

当一个方法带有这些注解之一时, 将被在其生命周期与Spring生命周期接口的方法或者显式声明回调方法同一刻上调用。下面的例子里, 缓存将预置于初始化与销毁阶段。

3.2 应用示例

(1) 事务注解示例:

(2) DAO文件注解示例

(3) Action文件注解示例:

4. Hibernate注解的应用

4.1 Hibernate主要的注解符有:

@Entity注解将一个类声明为实体Bean (即一个持久化POJO类) ;

@Id注解声明了该实体Bean的标识属性 (对应表中的主键) ;

@Table为实体Bean指定对应数据库表, 目录和schema的名字;

@Table注解包含一个schema和一个catelog属性, 使用@UniqueConstraints可以定义表的唯一约束;

@Version注解用于支持乐观锁版本控制;

@Column注解将属性映射到列;

@Entity public class Student implements Serializable{...

@Column (updatable=false, name="flight_name", nullable=false, length=50)

public String getName () {...}

@GeneratedValue注解声明了主键的生成策略;

@OneToOne设置一对一个关联。cascade属性有五个值 (只有CascadeType.ALL好用?很奇怪) , 分别是CascadeType.PERSIST (级联新建) , CascadeType.REMOVE (级联删除) , CascadeType REFRESH (级联刷新) , CascadeType.MERGE (级联更新) , CascadeType.ALL (全部四项) ;

@ManyToOne设置多对一关联;

4.2 应用示例:

5. 注解与配置文件的比较

在SSH项目中使用注解程序结构更加清晰, 使用更加方便, 但注解使用硬编码, 直接写入程序, 对后期修改必须使用源代码并重新编译, 而使用xml配置文件方式, 只需对xml文件进行配置, 但在使用上没有注解来的直观, 因此在实际中, 二者各有所长, 应用者就根据实际应用的需要决定采用那一种方式。

参考文献

[1]成天河.Struts, Hibernate, Spring集成开发宝典[M].电子工业出版社.2006.11

[2] (英) 明特 (Minter.D.) , (美) 林伍德.Hibernate基础教程.人民邮电出版社.2008.2

SSH集成框架 篇4

1 原理简介

1.1 MVC模式介绍

MVC思想将一个应用分成三个基本部分:Mode(模型)、View(视图)和Controller(控制器),这三个部分以最少的耦合协同工作。这样的划分给应用程序带来的好处很多,包括:高可靠性,高重用和适应性,较低的生命周期成本,快速的部署,可维护性。而Java EE的JSP Mode2问世使得MVC模式的应用更加广泛了起来。它用JSP技术实现视图的功能,用Servlet技术实现控制器的功能,用JavaBean技术实现模型的功能。随后的开源框架spring中的MVC模式也得到了广泛的应用,如图1所示。

Spring的MVC框架是围绕DispatcherServlet这个核心展开的。核心控制器的作用就是截获请求,并将其分发到对应的业务控制器中,由业务控制器调用业务处理的对象处理业务逻辑,然后由业务处理返回一个模型和视图对象,核心控制器根据此对象找到实例显示出结果。

1.2 SSH框架介绍

1.2.1 Struts

Struts2是从WebWork的基础上发展起来的,吸收了Struts1和WebWork的精华,在稳定性、性能等方面都有了很好的保证。Struts2也是面向对象的框架,从而将MVC模式“分离显示逻辑和业务逻辑”的能力完美发挥。Struts2主要由充当中央控制器的核心过滤器StrutsExecuteFilter、充当线程清洁工的StrutsPrepareFilter过滤器、决定是否需要调用自定义业务控制器Action的Action控制器等组成。

1.2.2 Spring

Spring降低企业开发应用程序的复杂性,简化了企业应用的开发过程,降低了开发成本,能够整合各种流行框架。它以IoC(控制反转)和AOP(面向切面编程)两种先进的技术为基础,完美地简化了企业级开发的复杂度。Spring框架主要由7个模块组成,而且每个模块都可以单独使用,也可以和其他模块组合使用,灵活且方便的部署可以使开发的程序更加简洁灵活。

Spring的核心控制器只是负责拦截用户请求,但无法完成业务操作。因此,还需要业务控制器的帮助。业务控制器是由用户来定义的,用户定义的业务控制器只要实现org.springframework.mvc.Controller接口即可。Controller接口的源代码如下:

Public interface Controller{

ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response)throws Exception; }

在该接口中定义了一个handleRequest方法来处理用户的请求,并返回一个ModelAndView对象。如图2所示,Spring MVC通过实现Controller接口已经提供了丰富的控制器功能。越是底端的控制器,功能越强大,以便完成复杂的业务流程。

1.2.3 Hibernate

ORM(Object Relational Mapping)是对象到关系的映射,是一种解决实体对象与关系型数据库相互匹配的技术,其实现思想就是将数据库中的数据表映射为对象,对关系型数据以对象的形式进行操作。在实际的开发中,对象和关系数据是业务实体的两种表现形式,ORM通过使用描述对象和数据库之间映射的元数据,将对象自动持久化到关系数据库中。因此,ORM在业务逻辑层与数据库层之间充当桥梁的作用。

Hibernate是一个成熟的ORM组件,将ORM的思想进行了完美的体现。Hibernate主要通过持久化类、Hibernate映射文件及Hibernate配置文件与数据库进行交互。其中,持久化类是操作对象,用于描述数据表的结构;映射文件指定持久化类与数据表之间的映射关系;配置文件用于指定Hibernate的属性信息等。

2 医疗信息系统的功能实现

本开发主要用于医院的信息管理系统,帮助护理人员提高工作效率,方便病人信息的管理。在B/S模式与C/S模式,即browser/server与client/server结构中,本系统采用当前比较流行的B/S模式进行开发。B/S体系相比C/S体系结构具备很多的优点,主要是利用了不断成熟的浏览器技术,结合浏览器的多种script语言,实现了以前用软件才能实现的功能,并节约了开发的成本。在本系统中我们采用了 Struts+Spring+Hibernate 三种主流框架相结合的技术,使整个系统框架结构清晰明了,缩减了开发周期和工作量,方便了后期的系统维护。数据库则采用已经成熟而且精简的 MySQL,完全满足了病人信息数据方面的存储需求,因而降低了在系统运行时对硬件的要求。系统的功能流程图如图3所示。

系统中遵循Java面向接口对象设计的原则,从而降低系统的耦合性。由于我们在接口中只定义了方法,但并没有实现。所以我们就可以按照我们定义的方法去实现接口的实例,如果某个实例不符合我们定义的方法,那么我们可以直接更换实例,而不会影响到我们在上层代码的设计,这样就降低了系统的耦合性,提高了代码的复用效率。

我们采用这种在面向接口设计的好处在于,接口层与层之间的联系是向下兼容的,底层对于上层的内容一无所知,改变上层的设计对底层不造成影响,这是一个理想的降低系统耦合性的一个分层式系统结构。因此,本系统基于以上架构建立,系统的扩展性和维护性得到了充分的保证。

2.1 控制层

本系统的控制层是由Struts2来实现的,我们需要将Struts2的相关类包放入项目源代码的lib文件夹中,同时再对web.xml和action进行相关的配置,如下所示:

struts2

org.apache.struts2.dispatcher.FilterDispatcher

struts2

/*

2.2 业务层

业务层在表示层与持久层之间,在数据交换中起到了承上启下的作用,是系统架构中最有核心价值的部分。系统中业务层将采用与控制层相同的方式,将实现对象交给Spring 框架来托管,并且通过注入持久层对象,实现与数据库间的交互。此系统的持久层对象同样交给Spring框架托管。相关代码如下例示:

在上述代码中,通过set和get方法来注入和获取 IUserInfoDAO 接口的实现类,同时配置 Spring中的applicationContext. xml文件。通过property属性来完成注入,方便在使用时直接调用。

2.3 持久层

从业务逻辑层中分离出持久层能够极大地提高程序的可扩展性及可维护性,降低程序之间的各种业务的耦合性,使得程序更加健壮和易于维护。Hibernate封装了数据库访问的细节,并一直维护着实体类与关系型数据库中数据表之间的映射关系,业务处理可以通过Hibernate提供的API接口进行数据库操作。接口内定义了一些不同功能的数据管理方法,而这些方法的具体实现是通过其子包中的实现类来实现的。相关的配置如下:

3 结束语

本文系统采用基于JavaWeb技术和MVC思想,采用了Struts2+Spring+Hibernate的SSH框架来进行该系统的开发。系统的框架模式为4层结构模式,分别为表示层、业务逻辑层、持久层和数据层。这样的设计与实现使得该系统具备速度快、通用、方便、灵活等特点,并具有较高的可维护性、可重用性以及可扩展性。在此项目的基础上进行扩展开发可提高之后项目的开发效率,节约开发和维护的成本。经过实践证明,取得了良好的效果。

摘要:为了便于进行医疗信息的管理,提高医疗信息资源的使用率,提出了基于Java Web技术的医疗信息管理系统的方案。从系统的实际应用出发,详细介绍了Struts2、Spring、Hibernate这三个基于Java EE架构的Web框架(简称SSH),构建一个易于维护和扩展的系统;并且详细讨论了系统中各个层,包括MCV、Controller控制器所使用的关键技术。为以后这类框架系统提供高效、便捷、稳定的开发打下基础。

关键词:Struts2,Spring,Hibernate,SSH,J2EE

参考文献

[1]陈丹丹,卢瀚,等.学通Java Web的24堂课[M].北京:清华大学出版社,2011.

[2]惠燕,潘煜.基于SSH的毕业设计管理平台的研究[J].电子设计工程,2011(1):23-24.

[3]宋隽婷.基于SSH框架模式的Web应用研究[J].网络与通信,2011(6):63-64.

[4]章慧,刘亚军.基于SSH框架的高校宿舍管理系统的设计与实现[J].信息通信,2011(5):183-184.

[5]李刚.轻量级企业应用实战——Struts2+Spring3+Hi-bernate整合开发[M].北京:电子工业出版社,2011.

[6]赵涛.基于SSH架构的在线考试系统的研究[J].大众科技,2011(3):27-28.

[7]计磊,李里,周伟.精通J2EE[M].北京:人民邮电出版社,2006.

基于SSH框架的网站设计与实现 篇5

1 SSH框架技术

Struts是最早的Java开源框架之一,该框架是基于Model2的架构,也就是基于MVC模式的框架技术。它是一个免费的开源的Web层的应用框架,具有很高的可配置性,和有一个不断增长的特性列表。一个前端控制组件,一系列动作类,动作映射,处理XML的实用工具类,服务器端Java Bean的自动填充,支持验证的Web表单,国际化支持,生成HTML,实现表现逻辑和模板组成了Struts的灵魂。

Spring是一个开源框架,为简化企业级系统开发而诞生的轻量级解决方案,它致力于J2EE应用的各层的解决方案,而不仅仅专注于某一层的方案,可以说Spring是企业应用开发的“一站式”选择,并且可与其他已有的框架无缝地整合。

Hibernate是一个优秀的持久化框架,负责简化将对象数据保存到数据库中或从数据库中读取数据并封装到对象的工作。通过简单的配置和编码即可替代JDBC繁锁的程序代码。换句话说,它是Java应用和关系数据库之间的桥梁,它负责Java对象和关系数据之间的映射。Hibernate内部封装了通过JDBC访问数据库的操作,向上层应用提供了面向对象的数据访问API。

SSH即Struts+Spring+Hibernate,网站采用基于MVC模式的J2EE体系结构,实现B/S的多层Web应用,即分为表示层、业务逻辑层、数据持久层以及数据库层。每层在应用程序中都有明确的责任。Spring,Hibernate,Struts合理配置组合,使分层灵活清晰,增强了系统的可重用性和可维护性,如图1所示。

2 开发工具选择

My Eclipse,Deamweare,选择SQLServer 2005作为后台的数据库,选择Java、JSP、Java Script、HTML作为应用程序开发工具,运用Tomcat服务器技术,整个系统完全基于B/S(Browser/Server)模式进行设计。

Tomcat是其中较为流行的一个Web服务器,Tomcat是一个免费的开源的Serlvet容器,应用程序的部署很简单,只需将WAR放到Tomcat的Web APP目录下,Tomcat会自动检测到这个文件,并将其解压。在浏览器中访问这个应用的JSP时,通常第一次会很慢,因为Tomcat要将JSP转化为Servle文件,然后编译。编译以后,访问将会很快。

Tomcat也具有传统的Web服务器的功能:处理HTML页面。但是与Apache相比,它的处理静态HTML的能力就不如Apache。可以将Tomcat和Apache集成到一块,让Apache处理静态HTML,而Tomcat处理JSP和Servlet。Tomcat是一个很好的工具,不仅仅因为其免费,功能强大,更因为其开放性,越来越受到人们的重视。

B/S模式开发成本及维护成本降低。由于B/S架构管理软件只安装在服务器端(Server)上,即应用程序在部署、升级、维护时,只需要在服务器端进行配置就可以了,网络管理人员只需要管理服务器就行了,用户界面主要事务逻辑在服务器(Server)端完全通过WWW浏览器实现,极少部分事务逻辑在前端(Browser)实现,所有的客户端只有浏览器,网络管理人员只需要做硬件维护。良好的安全性能,防火墙技术可以保证后台数据库的安全性。所有的配置工作都集中在服务器端且所有客户端请求都是通过DBMS来访问数据库,从而大大减少了数据直接暴露的风险。

3 总体设计

3.1 功能模块

注册登录模块:该模块实现用户的注册及登录验证功能。

网站主页模块:根据网站设计要求设计内容,如:企业文化模块、商家店铺模块、站内新闻模块、企业机构模块、友情链接模块、查看留言模块等。

后台管理模块:后台管理模块用于实现管理员对主页及相关信息的动态管理。

以上模块,管理员可以对主页中的内容进行增加或修改,包括内容更新、添加新项目及留言管理等功能,从而达到对信息进行维护和管理。

3.2 代码实现

基于Struts构架的表示层实现:表示层是由Struts实现,基于XML的配置文件Struts-config.xml将模型、视图、控制器联系起来。它将从页面接收到的请求按Form Bean的格式将其封装成一个Form对象,根据业务流的逻辑决定交给地合适方法实现业务流的转向,处理完的数据返回给控制器,控制器将数据封装成Form对象,根据业务流决定是交给下一个业务逻辑进行处理还是返回到页面。控制器是按struts-config.xml文件中的配置来决定业务流的转向的,struts-config.xml的部分代码如下:

4 结语

网站以开源框架Spring框架为核心,向下整合Hibernate进行持久层访问,向上整合Struts按清晰的MVC模式控制,清晰地划分了应用的层次,提高系统灵活性,降低了维护成本。

通过实体关系映射工具将关系型数据库的数据映射成对象,很方便地实现以面向对象方式操作数据库,该系统采用Hibernate作为ORM框架。Spring的作用贯穿了整个中间层,将Web层、Service层、DAO层及PO无缝整合,其数据服务层用来存放数据。通过使用Hibernate持久层,可以避免使用传统的JDBC操作数据库,对JDBC进一步包装,从而更好地使用面向对象的方式来操作数据库。保证了整个软件开发过程以面向对象的方式进行。

利用Struts+Spring+Hibernate框架开发网站,使网站具有良好的可维护性和可扩展性。

摘要:SSH是基于J2EE的架构方案之一。基于SSH框架的网站设计以开源框架Spring为核心,整合Hibernate进行持久层访问,并且整合Struts进行MVC模式控制,清晰地划分了应用的层次,提高系统灵活性,降低了维护成本。通过实体关系映射工具将关系型数据库的数据映射成对象,很方便地实现面向对象方式操作数据库。

关键词:网站,SSH框架,功能模块,Struts

参考文献

[1]使用Java实现面向对象编程[M].北京:科学技术文献出版社,2009.

[2]开发基于JSP/Servlet/JavaBean的网上交易系统[M].北京:科学技术文献出版社,2009.

[3]网页编程[M].北京:科学技术文献出版社,2009.

[4]李宁.Java Web开发技术大全[M].北京:清华大学出版社,2009.

[5]使用JSP开发Web应用系统[M].北京:清华大学出版社,2009.

[6]李相国.Java实例精通[M].北京:机械工业出版社,2009.

[7]SQL Server数据库设计和高级查询[M].北京:科学技术文献出版社,2009.

[8]网页制作案例教程[M].北京:北京人民邮电出版社,2008.

[9]数据结构[M].北京:中国计划出版社,2008.

SSH集成框架 篇6

EJB技术作为J2EE整体框架的核心技术, 使得很多人认为"J2EE=EJB", 然而在使用中人们逐渐地认识到EJB是一种过于复杂的技术, 虽然很好地解决了一些问题, 但传统EJB应用代码依赖容器, 部署复杂, 资源占用高, 在许多情况下也增添了比其商业价值更大的复杂性, 所以实际地使用情况并不理想[1]。目前可以以一种更高效, 简单的轻量级框架来替代EJB进行J2EE项目的开发, 本文通过集成Struts, Hibernate, Spring这3种框架技术, 构建一个在线培训考试系统。

1、系统开发中使用到的框架技术

1.1 Struts框架

在线培训考试系统的Web层中框架技术实现:在三层架构中, Web层是一个位于中间层业务接口之上的独立层。为了保证Web层对修改能做出迅速反应, 就要保证在业务对象的表示与逻辑控制和访问之间有一个明确的分离。MVC体系结构可以实现在表示与逻辑之间的分离, Struts就是一个实现MVC体系结构的框架, 在Struts框架中模型由实现业务逻辑的Java Bean构成, 控制器由Action Servlet和Action来实现, 视图由一组JSP文件构成[2]。

1.1 Hibernate框架

在线培训考试系统中用到了Hibernate框架, 该框架是轻量级的, 数据访问的OR映射工具。可以取代Entity Bean和JDBC。它是JDBC上面的一层, 性能优化相当好, 代码量非常少, 一般应用的代码量均小于标准SQL。可以适用16种不同的数据库实现, 遵循相应的标准, 即可做到不同数据库的无缝切换。避免了Entity Bean的多数据库实例要发布大量的jndi名称的缺点, 利用Hibernate, 开发人员可以方便地按照Java对象的结构进行持久层的开发[3]。

1.2 Spring框架

在线培训考试系统中用到了Spring框架, 该框架是一种简化J2EE开发架构, 开放性很好。开发时, 可以部分使用Spring的类库, 也可以不用。它最精华的地方就是基于Java Bean的Java对象的配置机制, 采用AOP (面向方面编程) 或是Io C (依赖注入) 技术, 可以代理开发实现。比如:DAO接口和实现类, 通过配置文件的配置就可以切换不同的DAO实现。整个软件开发都是可配置的。AOP技术可以横向切入, 日志, 数据库地址变化, 事务控制, 权限控制, 都是可以配置的。另外, 使用Spring还可以带来以下好处:

1.面向接口编程, 代码可扩展, 易维护;

2. 基于Java Bean的配置机制, 写代码基本都是Java Bean的set, get机制, 非常简单。

3. 简化开发Hibernate等数据访问层的开发。

4.DAO, 数据源, 事务控制, jndi调用都是可配置, 可替换的。

5.开发的代码易于测试, 基于统一接口。

6.简化J2EE开发, 降低项目风险。

同时, 在Spring框架里依赖注入通常有两种, 一种是基于setter的设值注入, 是在调用无参的构造函数或无参的静态工厂方法实例化bean之后, 通过调用bean上的setter方法实现的, 另一种是基于构造函数的依赖注入, 通过调用带有许多参数的构造方法实现的或带有特定参数的静态工厂方法来构造bean[4]2、培训考试系统开发

2.1培训考试系统的软件架构层次图

图1中培训考试系统的软件架构层次图, 在该图中浏览器展示子层, 界面过程逻辑子层, 业务逻辑子层, 数据访问子层, 数据O-R映射子层, 数据库连接子层:

其中, 1) 业务逻辑子层:业务逻辑子层用于表达业务逻辑, 即根据业务逻辑和外部使用业务信息的需要, 提供各类业务对象的管理服务.业务逻辑子层统一封装为服务管理对象 (BMO) , 用Java类实现, BMO涉及的类分为接口类和实现类, 以便根据业务及环境的需要, 提供不同的实现方式。其运行环境取决于具体要求, 如在本系统内部, 其运行环境为STRUTS;如与外部机构通讯采用Session Bean时, 其运行环境即为EJB环境。业务逻辑子层还使用了Spring做为Io C平台和AOP平台, Io C平台用于发现所需要用的DAO类的接口, 可以实现接口的系统注册和替换;AOP部分用于实现事务控制。2) 数据访问子层:数据访问子层用于封装数据的访问逻辑, 即根据应用的需要, 提供各种数据的访问方法, 包括普通的CRUD操作和较复杂数据抽取操作, 数据访问子层统一封装为数据访问对象 (DAO) , 用Java类实现, DAO涉及的类分为接口类和实现类, , 提供不同的实现方式。另外, 数据访问子层还使用了Spring做为AOP平台, 用于得到数据连接句柄。3) 数据O-R映射子层:数据O-R映射提供数据库到系统的静态信息类模型的映射能力.鉴于Hibernate是目前业界较流行的商业套件, 且可以提供较好的性能, 其功能和性能都可以满足系统需要, 因此数据O-R映射选用Hibernate做为映射工具。4) 数据库连接子层:数据库连接子层提供一个在Java中连接数据库的技术.数据库连接子层采用JDBC, 并使用了Weblogic的数据库连接池技术。应用Spring, 可以方便地将数据库连接池切换到其他厂商的J2EE平台上的连接池。

2.2系统中各层次之间的双向的数据流

在下面的应用结构中, 自上而下的所有层次之间均存在双向的数据流。

图2中产生的数据流说明:1) 界面显示子层-展现逻辑子层, 其数据流向是双向的, 双方通过HTTP进行通讯, 界面显示子层向展现逻辑子层发出请求, 由展现逻辑子层调用业务处理接口产生展现要求的数据, 并将数据返回界面显示子层进行显示。2) 展现逻辑子层―业务逻辑子层:其数据流向是双向的, 展现逻辑子层调用业务逻辑子层的接口, 输入参数, 输出所要求的数据。3) 业务逻辑子层内部, BMO:其数据流向是双向的, 在业务逻辑子层内部, 某些复杂的业务逻辑需要不同BMO协调完成, 在这种情况下, 不同BMO间存在数据流。4) BMO业务逻辑子层-DAO:其数据流向是双向的, BMO向DAO提供参数, DAO向BMO提供业务逻辑所需的数据。

2.3题库管理逻辑结构

下面以考试管理模块中题库管理子模块为例说明SSH架构在系统开发中的应用, 题库管理的逻辑结构如图3所示:

在题库管理的逻辑结构图中, 其各个部分如表1中所述:

2.4培训考试系统开发工具

在本系统的开发中采用了以下的开发工具:

1) Java IDE工具:可以选择JBuilder X (2005也可) 或Eclipse3.01。对IDE选择没有硬性规定, 可以选择最适合自己的IDE。

2) 数据模型设计工具:采用Power Designer9.5作为数据模型设计工具;

3) 版本管理工具:采用VSS6.0作为开发的版本管理工具;

4) 辅助文档工具:采用WORD 2003、VISIO2003做为辅助文档工具。

其他工具:采用ANT进行集成, 采用JUnit作为单元测试工具。

3、结束语

本文应用框架SSH来构建数字图书馆考试系统。在软件的开发中, 尽量做到软件模块与模块之间, 各种框架与框架间不直接打交道, 它们之间的联系尽量通过配置文件来实现。这样做可以尽量降低模块之间, 模块与框架之间的耦合度, 高度抽象出一些公共模块, 为后期复用做准备, 而这些正是SSH框架所体现出的开发优势所在。

参考文献

[1]Rod Johnson.J2EE设计开发编程指南[M].电子工业出版社2003, 10

[2]孙卫琴.精通Struts:基于MVC的Java Web设计与开发[M].电子工业出版社2004, 13

[3]陈天河.Hibernate项目开发宝典[M].电子工业出版社2006, 7

SSH集成框架 篇7

Spring作为一种开源型的框架,为企业级的系统开发提供了轻量级的解决方法,它主要应用于J2EE应用的各层解决方案而非专注于某一层,也可以说,Spring完全有能力胜任企业的应用开发工作,并可实现与其他框架的无缝连接。

Hibernate是一种优秀的持久化框架,该框架所面对的主要服务对象是数据库,具体的工作是负责将简化的数据对象保存于数据库中,或是从数据库中读取数据然后封装至对象。该框架秩序简单的配置以及编码便能实现JDBC中需要繁琐的程序代码才能实现的功能。Hibernate就好比是Java应用与数据库之间沟通的桥梁,它的主要工作是负责Java对象与关系数据间的映射。由于Hibernate的内部便封装了JDBC访问数据库的相关操作,因此,在向上层应用提供面向对象的数据访问API时,大多数网站均采用了基于MVC模式的J2EE体系架构,从而实现了B/S在Web的多层应用,其大致可分为4层,即表示层、业务逻辑层、数据持久层与数据库层,这些应用在每层中均有其明确的职责[2]。因此Struts、Spring、Hibernate三者通过合理配置并组合,让系统层次更加清晰,从而增强了系统的可重用性与可维护性。

1基于SSH框架社交网站

随着社会的不断进步与网络的快速发展,现代社会的人们对社交网站的使用也越来越普及。在网络时代背景下,人们无需在花费大量的时间与精力去参与各种各样的社交活动,通过互联网便可随时随地与自己的朋友聊天并建立自己的朋友圈。然而大多数人们并不知悉,绝大多数的交友网站,其对用户信息缺乏一定的保密性,任何人都能可肆无忌惮地浏览他人信息并可对其发表自身的评论,这样的做法严重威胁这网站注册用户的使用安全。因此,保证用户信息的隐秘性成为了网站创建首先思考的问题。本文中所提到的网站正是基于此点而设计,它的不同之处在于,若非本网站的注册会员将无法直接浏览到注册会员的个人信息,只有注册成为了本站会员,才能获得查看网站会员资料、发表看法、添加好友等权限,从而保证了用户信息的隐秘性[3]。

1.1系统需求

创建该网站主要有如下两个目的:(1)让每一位注册用户都能创建出属于自己的朋友圈;(2)让每一位用户的信息得到最安全的保证。文中所论述的交友网站,其创建的目的在于:(1)方便用户扩大自身朋友圈;(2)尽可能保护每一位用户的个人隐私。因此,根据大众用户的需求,要创建交友网站必须拥有以下几个模块:

(1)用户管理模块:包括用户注册、登录以及用户信息的增、删、查、改等。

(2)内容管理模块:用户可自由发表日志、给朋友留言、上传照片并评论等。

(3)好友动态模块:用户可在该模块中查看自身好友的最新动态。

(4)消息管理模块:及时获取最新的消息。

(5)管理模块:用户可在此界面中针对好友进行一系列的操作,如增加、删除、查找等。

1.2系统架构

该系统的设计主要以六度分割理论为依据,结合JSP技术,以SSH架构为设计方案,数据库为My SQL。网站的设计主要采用了三层架构,如图1所示。

1.3系统主要模块

该系统的主要功能是为网站注册用户提供一个安全、便捷的交由平台,用户可通过该系统与好友进行实时互动。该系统主要包括如下几个模块:

1.3.1用户管理模块

用户要想使用网站功能,首先必须自行注册,待注册并登录成功后方可使用网站的大部分功能,也才能进行相应的操作。此外,新用户在注册后还需网站管理员审核,待审核通过后方可成为网站用户,此时,用户才能对自身的用户信息,如昵称、密码、投向等内容进行修改操作[4]。

1.3.2内容管理模块

成功登录后的用户,除了可随意修改个人信息外,还能进行日志发表、评论、查看还有日志等操作。此外,用户还能通过本地上传,将本地主机中的图片上传至网站,并可对图片进行浏览、修改与删除等操作。针对好友一栏,用户可根据自身习惯对好友进行分组、查看信息等操作,并能评论好友日志或删除自己日志等。具体的管理状态如图2所示:

1.3.3新鲜事模块

成功登录后的用户,其新鲜事模块将被激活。用户可在此中查看好友的最新动态,并对其发表评论,该模块状态如图3所示:

1.3.4消息管理模块

消息模块作为社交网站最主要的模块之一,其主要负责用户消息的查看与刷新。首先,用户从缓存中获取消息数量,然后可查看所有信息,当该条信息被阅读后,缓存区的消息总数便自动减1,并自缓存中将该消息删除。

1.3.5好友管理模块

成功登录后的用户,可在好友栏中进行好友搜索,提出好友添加申请或是查看还有以及删除好友等操作。若用户需要申请添加好友,可先提交好友申请,待其申请通过后,便可将其好友关系纳入数据库中,若申请被拒,缓存中的申请消息则自动删除。若用户对某一好友进行删除操作,系统便会将该操作添加至缓存信息中,待数据中的的好友关系删除随即删除缓存信息[5]。

1.4系统数据库

通过分析该系统的基本需求,基本确定数据库中至少应包括如下几个表:

(1)用户好友表,即friends表,其主要字段包括:friends ID、userid1、iserid2。

(2)bloguser表,其字段应包括user ID、username、userpass、userhead、gender。

(3)evaluation表,其字段应包括evalu ID、typeid、typekey、evaludate、evaluate、enaluser、serid。

(4)feed表,其主要字段为:feedid、feeddate、feettype、fcontentid、content。

(5)group表,其字段包括:feedid、feeddate、feettype、fcontentid、content。

(6)diary,即日志表,该表主要字段包括imgid、ur1、groupid、imgdate。

1.5 Memcache缓存

Memcache需要存储的数据项包括3种:

(1)用户列表。该模块的主要作用在于验证用户的登录密码与用户名是否正确且该用户名是否与该密码相匹配;其次,在用户进行好友搜索操作出,为其列出该用户全部的好友列表。若用户对该数据进行过删除操作,那么再次访问时,数据库将不再进行数据读取与存入工作[6]。

(2)用户消息数。给成功登录的用户给予消息提示,如有新消息,则数字显示加1,待用户查看后自动减1。

(3)用户新鲜事列表。

2结语

该框架以开源框架Spring为核心,通过Hibernate的整合进行持久层访问,并通过整合Struts进行MVC的模式控制,这样的划分使得网架层次更加清晰,提升了系统的灵活度,减少了维护成本[7]。

SSH是一种基于J2EE的架构方案。该方案在J2EE项目中分别表示着不同的框架,即Spring+Struts+Hibernate。采用基于MVC模式的J2EE体系架构,从而实现了B/S在Web的多层应用,这些应用在每层中均有其明确的职责。因此,Struts、Spring、Hibernate三者通过合理配置并组合,让系统层次更加清晰,从而增强了系统的可重用性与可维护性。

摘要:SSH是一种基于J2EE的架构方案。目前,国内许多网站均是基于SSH框架而设计,该框架以开源框架Spring为核心,通过Hibernate的整合进行持久层访问,并通过整合Struts进行MVC的模式控制,这样的划分使得网架层次更加清晰,提升了系统的灵活度,减少了维护成本。通过具体论述SSH框架的应用网站设计与实现策略。

关键词:SSH,框架,网站应用

参考文献

[1]师温馨.基于SSH框架的电子商务购物网站的研究与设计[J].电子测试,2014(08):10-12.

[2]陈红.基于SSH框架的网络教学平合研究与实现[D].广西大学,2015.

[3]王鹏.基于SSH框架的西安旅游信息展示系统的设计与实现[D].西安电子科技大学,2014.

[4]胡运玲.基于SSH框架的省级精品课程网站的研究与实现[D].中国海洋大学,2011.

[5]易云飞,唐杰.基于ssh框架的C语言网络课程网站设计[J].软件导刊,2015,06:210-211.

[6]兰伟.基于SSH框架的精品课程网站设计与实现[J].软件导刊,2015,09:199-201.

上一篇:有趣的作业下一篇:科学的理论研究