struts架构图
- 格式:pdf
- 大小:188.63 KB
- 文档页数:3
基金交易平台(详细设计)系统设计说明书文件状态: 文件标识[?] 草稿 1.0.0 当前版本[ ] 正式发布作者罗豪[ ] 正在修改 2005-12-6 完成日期版本历史版本/状态修订人修改日期备注 V1.0.0 2005-12-15 罗豪第一部分、概述1、文档说明本文档适用于本项目开发人员阅读,开发人员可据此进行开发。
本设计文档主要采用了OOAD的方法,从类图和时序图的角度对系统进行了分析设计。
2、系统需求概述本系统是一个关于开发式基金进行交易的平台,它主要包括一下功能 : , 基金销售人员登陆管理, 基金产品管理, 客户资料管理, 客户资金账户管理, 基金交易管理第二部分、系统总体结构该系统将采用J2EE技术架构实现,WEB层采用Struts架构,页面采用了EJB 层使用了Session Bean 和Entity Bean,采用了Session Façade的设计模式,其技术架构如下图所示。
Browser ServerWEB Layer EJB Layer (Struts) Delegate Session Bean Action Web ServiceLocatorDB Form Entity Bean JSP图1:系统技术架构图注:Delegate是指业务逻辑的代理类。
另外,当前价格的产生使用WebService进行模拟产生。
第三部分、系统设计1、类图由于类图太多,这里只提供所有的实体类图,如下所示。
FinancialAccountDtoClientDto- serialVersionUID : long = 1L- serialVersionUID : long = 1L- accountNo : Integer- clientNo : Integer- clientNo : Integer- clientName : String- financingAmount : Double- idCardNo : String1- status : String- sex : String...- phone : String- address : String+ getAccountNo ( )...+ setAccountNo ( )+ getClientNo ( )+ getClientNo ( )+ setClientNo ( )+ setClientNo ( )+ getFinancingAmount ( )+ getClientName ( )+ setFinancingAmount ( )+ setClientName ( )+ getCreatedDate ( )+ getIdCardNo ( )+ setCreatedDate ( )+ setIdCardNo ( )*+ getStatus ( )+ getSex ( )+ setStatus ( )+ setSex ( )+ getPassword ( )+ getPhone ( )1+ setPassword ( )+ setPhone ( )+ equals ( )+ getAddress ( )+ hashCode ( )+ setAddress ( )...+ getEmail ( )+ setEmail ( )1+ getHobby ( )+ setHobby( )SalesDto1*+ getCreatedDate ( )- serialVersionUID : long = 1L+ setCreatedDate ( )- salesNo : Integer...- username : String1- password : String...+ getSalesNo ( )FundAccountDto+ setSalesNo ( )+ getUsername ( )- serialVersionUID : long = 1L*+ setUsername ( )- fundAccNo : Integer+ getPassword ( )- financialAccNo : Integer*FundDto+ setPassword ( )- fundNo : Integer+ getRealname ( )1- fundName : String- serialVersionUID : long = 1L+ setRealname ( )...- fundNo : Integer+ getSex ( )+ getFundDto ( )- fundName : String+ setSex ( )+ setFundDto ( )- price : Double1...+ getFundAccNo ( )...+ setFundAccNo ( )+ getFundNo ( )+ getFinancialAccNo ( )+ setFundNo ( )+ setFinancialAccNo ( )+ getFundName ( )+ getFundNo ( )*+ setFundName ( )+ setFundNo ( )+ getPrice ( )*+ setFundName ( )+ getCurrentPrice ( )1+ getFundName ( )- pickNumberInRange ( )+ getTotalPrice ( )+ setPrice ( )+ getQuantity ( )+ getDescription ( )+ setQuantity ( )+ setDescription ( )+ getPrice ( )+ getStatus ( )+setPrice ( )+ setStatus ( )...+ getCreatedDate ( )+ setCreatedDate ( )..., 注册用例实现A、时序图: 基金柜台操作人员 : registration.jsp : login.jsp :SalesAction.java : SalesDelegate.java : ServiceLocator : SalesSessionFacade : Sales1 : \输入注册资料\2 : \获取注册资料\3 : \委托注册\4 : \获取SessionBean接口\5 : \注册\6 : \保存注册信息\7 : \返回结果\B、描述1)输入注册资料输入用户、密码、确认密码和性别。
Struts1与struts2的区别总结1,背景:Struts2并不是struts1的升级版,两者没有太大的关系,struts2是继承了webwork的机制,吸收了struts2和webwork的有优势。
Struts2是基于WebWork的一个全新框架. Struts2主要改进是取代了Struts1的Servlet和Action. Struts2的核心框架是当作一个filter来实现其功能的,而Struts1是ActionServlet.然后在Action上,Struts1都少不了要传递Request等参数,还要继承Action父类,而Struts2只要实现了一个public String execute()就可以了,这样Action就可以实现脱离Servlet 测试. Struts2还提供了拦截器(Interceptot)等Struts1所没有的技术.2,Action类Struts1要求action继承一个抽象基类,而struts2既可以继承类又可以实现action对应的接口,即接口编程,可以实现多个接口,使得可选和订制服务成为可能。
3,线程模式Struts1中的action是单例模式,会涉及到线程安全问题,因为仅有一个action来处理所有的请求,而struts2则是非单例模式,每个请求对应一个action,这样就不用考虑线程安全的问题(而且,servlet容器会给每个请求产生可丢弃的对象,这样就不会导致性能和垃圾回收问题)。
4,可测性Struts1中的action有个主要的问题是execute方法暴露了servlet API,这使得测试等需要依赖servlet容器。
一个第三方扩展--struts TestCase--提供了一套struts模拟对象来进行测试;而struts2 中的action可以通过初始化和设置属性(例如action当中直接用get和set方法),调用方法来测试,“依赖式注入”注入也使得测试更容易5,servlet依赖Struts1中的action依赖于servlet API,因为当一个action被调用时,HttpServletRequest和HttpServletResponse对象会被传递给execute方法(请求和响应的对象需要依赖于execute方法,即servlet API);而struts2中的action则不需要依赖于servlet容器,允许action脱离容器单独被测试(例如:struts2中获取请求的对象可以用ServletActionContext.getRequest())。
Stucts架构的信息管理系统权限研究与实现作者:邵发明伍红兵卜一波李兴德陈磊来源:《电脑知识与技术》2012年第30期摘要:信息管理系统所面对的服务对象不同,需要对不同用户赋予不同的权限。
该文在根据信息管理系统的普遍设计需求,提出基于Struts的信息系统权限设计方法,分级、分角色进行信息管理系统的权限管理。
根据用户角色在系统操作和信息读取上实现权限细粒度划分。
基于该模式的信息系统权限管理具有高效性、灵活性、适应性以及安全性。
关键词:信息管理系统;权限;角色;分级;信息安全中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2012)30-7141-031 概述Struts是最早的MVC开源框架,它是apache组织基于MVC模式开发的开源的单点控制的web应用框架(framework)。
Struts的的目的是为了减少在运用MVC设计模型来开发Web 应用的时间。
信息管理系统的权限管理,是指根据不同的用户和角色,分配不同的信息管理系统的操作权限。
让不同的用户能够享受信息管理系统的功能、对不同的数据库对象进行操作、在信息管理系统中完成不同的任务,并且不允许其进行权限以外的操作确保系统安全有序的运行。
2 用户权限分配概述2.1基于B/S系统的权限设计的重要性B/S系统中的权限比C/S中的更显的重要,C/S系统因为具有特殊的客户端,所以访问用户的权限检测可以通过客户端实现或通过客户端+服务器检测实现。
而B/S中,浏览器是每一台计算机都已具备的,如果不建立一个完整的权限检测,那么一个“非法用户”很可能就能通过浏览器轻易访问到B/S系统中的所有功能。
因此B/S业务系统都需要有一个或多个权限系统来实现访问权限检测,让经过授权的用户可以正常合法地使用已授权功能,而对那些未经授权的“非法用户”将会将他们彻底的“拒之门外”。
2.2权限和角色的划分权限(Privilege)是授予用户访问系统中特定对象或资源,对对象或资源执行特定操作的一种能力。
购物网站设计与实现毕业论文毕业设计(论文)题目:基于Struts + Spring + Hibernate的购物网站设计与实现学生姓名曹逸学号200520100303分院信息工程分院专业班级计算机503班指导教师曹平2009年5月杭州摘要本设计运用当前主流的Java技术,采用MVC开发模型,以Struts、Spring和Hibernate框架为基础开发了一个轻量级的网上购物系统。
Struts用作控制器,Spring 作为业务层,Hibernate作为数据持久层,开发中同时使用JSTL标签库。
这些技术的整合,使得系统在各方面都能达到要求,并有利于系统的维护和升级。
系统分为前台部分和后台部分,前台部分主要实现的功能有顾客的注册和登录功能、查看商品信息功能、搜索商品的功能、购物车、收藏夹功能、个人信息维护管理功能;后台部分主要实现管理员管理商品信息、订单信息、目录信息和用户信息。
其中购物车可以在用户未登录的情况下操作,并且原有的商品与现有的商品可以相互叠加。
关键词:网上购物系统;Struts;Spring;Hibernate;JSTL;MVC模式ABSTRACTThis design uses the mainstream Java technology to develop a lightweight online shopping application. MVC software developing model is adopted, based on the popular framework consisting of Struts, Spring and Hibernate, where Struts behaves as the controller layer, Spring as the service layer, and Hibernate as the data persistence layer. JSTL library is also used. With all these technologies together, the application achieves all the design purposes, and is flexible for update and maintenance.The application consists of two main subsystems, the front end subsystem and the central management subsystem. For the front end subsystem, the features involve customer registration, login, information retrieval on merchandises, product search, shopping cart, preference folder, customer profile update. Product information update, orders process, category and user information management are the functions of the central management subsystem. In the mean time, the shopping cart can be used without login, the selected item can be added automatically.Key Words:Online shopping system;Struts;Hibernate;JSTL;The Model of MVC目录1引言 (1)2相关知识和技术背景 (2)2.1J2EE概述22.2MVC设计模式22.3Struts MVC设计模式32.4Spring框架32.5Hibernate框架42.6Struts、Spring、Hibernate的整合52.7JSTL标签库63系统需求分析 (7)3.1B2C系统模块介绍73.2确定用户需求83.3需求规定93.3.1对性能的规定93.3.2输入输出要求93.3.3数据管理能力要求93.3.4故障处理要求93.3.5运行环境需求94系统概要设计 (10)4.1总体设计104.1.1环境配置104.1.2系统结构104.1.3总体模块104.2功能模块114.2.1用户顾客注册、登录模块114.2.2商品检索、浏览模块124.2.3个人信息管理模块124.2.4购物车/收藏夹模块124.2.5后台登录模块134.2.6商品管理模块144.2.7商品目录管理模块144.2.8订单管理模块154.2.9会员管理模块165系统详细设计 (17)5.1数据库设计175.1.1ER图设计175.1.2数据表设计185.2架构设计275.2.1带日志功能的设计275.2.2Web.xml配置文件275.2.3Struts配置文件285.2.4Spring配置文件285.2.5Hibernate自动生成的文件295.2.6工程包层次结构295.3详细模块设计305.3.1顾客注册、登录模块305.3.2商品检索、浏览模块305.3.3个人信息管理模块315.3.4购物车/收藏夹模块315.3.5后台登录模块325.3.6后台商品管理模块325.3.7后台商品目录管理模块335.3.8后台订单管理模块345.3.9后台会员管理模块346系统实现 (35)6.1环境配置356.2主要界面及代码366.2.1前台界面显示及代码366.2.2后台界面显示及代码55结论 (59)致谢 (61)参考文献 (62)1引言随着Internet的蓬勃发展,电子商务慢慢融入了我们的生活。
1.Spring架构图Spring是一个开源框架,是为了解决企业应用程序开发复杂性而创建的。
框架的主要优势之一就是其分层架构,分层架构允许您选择使用哪一个组件,同时为J2EE应用程序开发提供集成的框架。
Spring框架的功能可以用在任何J2EE 服务器中,大多数功能也适用于不受管理的环境。
Spring的核心要点是:支持不绑定到特定J2EE服务的可重用业务和数据访问对象。
这样的对象可以在不同J2EE环境(Web或EJB)、独立应用程序、测试环境之间重用。
组成Spring框架的每个模块(或组件)都可以单独存在,或者与其他一个或多个模块联合实现。
每个模块的功能如下:•核心容器:核心容器提供Spring框架的基本功能。
核心容器的主要组件是BeanFac tory,它是工厂模式的实现。
BeanFactory使用控制反转(IOC)模式将应用程序的配置和依赖性规范与实际的应用程序代码分开。
•Spring上下文:Spring上下文是一个配置文件,向Spring框架提供上下文信息。
S pring上下文包括企业服务,例如JNDI、EJB、电子邮件、国际化、校验和调度功能。
•Spring AOP:通过配置管理特性,Spring AOP模块直接将面向方面的编程功能集成到了Spring框架中。
所以,可以很容易地使Spring框架管理的任何对象支持AOP。
Spring AOP模块为基于Spring的应用程序中的对象提供了事务管理服务。
通过使用Spring AOP,不用依赖EJB组件,就可以将声明性事务管理集成到应用程序中。
•Spring DAO:JDBC DAO抽象层提供了有意义的异常层次结构,可用该结构来管理异常处理和不同数据库供应商抛出的错误消息。
异常层次结构简化了错误处理,并且极大地降低了需要编写的异常代码数量(例如打开和关闭连接)。
Spring DAO的面向JDBC的异常遵从通用的DAO异常层次结构。
•Spring ORM:Spring框架插入了若干个ORM框架,从而提供了ORM的对象关系工具,其中包括JDO、Hibernate和iBatis SQL Map。
第一章Struts2系统架构本章主要介绍的Struts2的系统架构,让学员对Struts2框架在结构上有一个整体概念为我们以后更加详细的学习Struts2打下一个良好的基础。
第一节Struts2的系统架构及处理的主要流程1.Struts1简介Struts1的历史比较久远,Struts1是世界上第一个发布的MVC框架,目前市场率最高的框架。
下面将简单讲解Struts1的基本架构。
图1-1显示了Struts1的数据流图。
图1-1 Struts1数据流图Struts1框架以ActionServlet为核心控制器,ActionServlet获得客户端请求。
然后ActionServlet根据请求信息调用匹配的业务逻辑控制器(Action)处理用户请求。
请求处理完成后,业务逻辑处理器调用相应的JSP显示处理结果。
Struts1框架实现了MVC模式,下面我们了解一下Struts1是怎样实现MVC模式的。
Struts1框架中并没有提供Model层的实现。
在实际的企业应用中,通过一个JavaBean 实现一个业务逻辑,在功能比较复杂的应用中也采用EJB或WebService服务实现业务逻辑。
Struts1框架的View层采用JSP实现。
Struts1提供了大量丰富的标签库。
这些标签库与Struts的组件兼容的特别好,可以很容易的输出控制器的处理结果。
Struts1框架中,控制器是它的核心,Struts1的控制器由两部分组成:核心控制器(ActionServlet)和业务逻辑控制器(Action),核心控制器由Struts1框架提供。
业务逻辑控制器需要由用户自己继承Struts1框架提供的Action类实现。
在Struts1框架中,JSP/Servlet耦合非常紧密。
这种紧密关系促使Struts1存在各种缺陷。
下面我们分析一下Struts1中存在的缺陷。
●支持的表现层技术单一●耦合性强,不便于单元测试●代码依赖于Struts1 API,侵入性强2.WebWork简介WebWork出自于开源组织opensymphony,实际的创始人是Java领域的名人Rickard Oberg(JBoss和XDoclet的作者)。
基于Struts+Hibernate+Spring的系统设计和开发俞国红(健雄职业技术学院计算机工程系,江苏太仓215411)摘要:阐述了以J2EE(JSP、JavaBean、Servlet)、SSH(Struts、Spring、Hibernate)开源框架为核心技术,逐步构建软件架构原型,构建系统原型作为系统开发的基础,提出了基于Struts、Spring和Hibernate框架的轻型J2EE 软件架构技术的系统设计和开发方法。
关键词:J2EE;Struts;Spring;Hibernate;架构中图分类号:TP311.52文献标识码:A1 前言J2EE(Java 2 Enterprise Edition即Java 2 平台企业版)是由Sun公司主持推出的一项中间件技术。
EJB (Enterprise JavaBean)是J2EE的一部分,定义了一个用于开发基于组件的企业多重应用程序的标准。
但由于EJB的复杂性,导致程序的开发效率低。
在Spring和Hibernate 等轻量级框架出现后,大量的开发人员转向到以目前最流行的开源框架,能快速开发出结构清晰、可重用性好、维护方便的轻量级的J2EE企业系统应用。
2 Web应用的分层分析构架Web企业系统应用时需要考虑用户交互、处理业务逻辑、应用数据持久化、扩展性等很多问题,所以一个应用的架构方案和实现技术选择十分重要。
而分层的目的就是对应用的逻辑功能进行划分,使每层在完成自己功能的同时,不影响其它层,实现“高内聚,低耦合”具有易于控制、扩展、维护的优点,图1是一个典型的轻量级J2EE应用架构,Web 应用分层结构基本上都分为三层:表现层、业务逻辑层、数据持久层。
表示层用来处理用户和软件之间的交互,它主要的责任是向用户展现信息以及处理用户请求。
业务逻辑层,又叫做领域逻辑层。
其职责包括处理业图1 典型的Web应用分层结构Fig.1 Typical Web application hierarchical structure务逻辑和存储业务数据,校验从表示层传过来的数据,通过表示层提交的命令来执行相应的业务逻辑。
1.structs1 架构图
Struts 是Apache 基金会Jakarta 项目组的一个Open Source 项目,它采用MVC 模式,能够很好地帮助java 开发者利用J2EE 开发Web 应用。
和其他的java 架构一样,Struts 也是面向对象设计,将MVC 模式" 分离显示逻辑和业务逻辑" 的能力发挥得淋漓尽致。
Structs 框架的核心是一个弹性的控制层,基于如Java Servlets ,JavaBeans ,ResourceBundles 与XML 等标准技术,以及Jakarta Commons 的一些类库。
Struts 有一组相互协作的类(组件)、Serlvet 以及jsp tag lib 组成。
基于struts 构架的web 应用程序基本上符合JSP Model2 的设计标准,可以说是一个传统MVC 设计模式的一种变化类型。
Struts 有其自己的控制器(Controller ),同时整合了其他的一些技术去实现模型层(Model )和视图层(View )。
在模型层,Struts 可以很容易的与数据访问技术相结合,如JDBC / EJB ,以及其它第三方类库,如Hibernate / iBATIS ,或者Object Relational Bridge( 对象关系桥) 。
在视图层,Struts 能够与JSP ,包括JSTL 与JSF ,以及Velocity 模板,XSLT 与其它表示层技术。
Struts 为每个专业的Web 应用程序做背后的支撑,帮助为你的应用创建一个扩展的开发环境。
∙ Client browser (客户浏览器)
来自客户浏览器的每个HTTP 请求创建一个事件。
Web 容器将用一个HTTP 响应作出响应。
∙ Controller (控制器)
控制器接收来自浏览器的请求,并决定将这个请求发往何处。
就Struts 而言,控制器是以servlet 实现的一个命令设计模式。
struts-config.xml 文件配置控制器。
∙业务逻辑
业务逻辑更新模型的状态,并帮助控制应用程序的流程。
就Struts 而言,这是通过作为实际业务逻辑“ 瘦” 包装的Action 类完成的。
∙ Model (模型)的状态
模型表示应用程序的状态。
业务对象更新应用程序的状态。
ActionForm. bean 在会话级或请求级表示模型的状态,而不是在持久级。
JSP 文件使用JSP 标记读取来自ActionForm. bean 的信息。
∙ View (视图)
视图就是一个JSP 文件。
其中没有流程逻辑,没有业务逻辑,也没有模型信息-- 只有标记。
标记是使Struts 有别于其他框架(如Velocity )的因素之一
2.structs2 架构图
Struts 2 相对于Struts 1.X ,将实现用户业务逻辑(Action )同Servlet API 分离开,这种分离机制,是采用了拦截器或者拦截器栈(拦截器链)。
拦截器是Struts 2 的核心内容之一。
Struts 2 内建了多个拦截器和拦截器栈(由多个拦截器形成的拦截器链),将用户的Web 请求进行拦截处理,从而提供了更加丰富的功能,例如数据类型转换、国际化、文件上传等。
<!-- [if gte vml 1]><v:shape id="_x0000_i1028" type="#_x0000_t75"
style='width:362.25pt;height:336.75pt'><v:imagedata
src="file:///C:\Users\bq_wang\AppData\Local\Temp\msohtmlclip1\01\clip _image006.png" o:title=""/></v:shape><![endif]--><!-- [if !vml]-->。