基于MVC模式Struts框架研究与应用详解
- 格式:doc
- 大小:7.33 KB
- 文档页数:5
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)是授予用户访问系统中特定对象或资源,对对象或资源执行特定操作的一种能力。
Java Web框架的选择与应用实战随着互联网技术的飞速发展,Web应用成为了当今互联网世界中的重要组成部分。
而在Web开发中,框架的作用越来越被人们所重视。
Java作为一门广泛应用于Web开发领域的编程语言,也涌现出了一批优秀的Web框架,如Spring MVC、Struts2等。
本文将就Java Web框架的选择与应用实战进行探讨。
一、Web框架的选择在选择Java Web框架时,除了要考虑自身的开发能力、需求以及项目特点外,还需要考虑框架的性能、安全性、稳定性等方面。
下面对几种常见的Java Web框架进行简单的介绍和评价,以供参考。
1. Spring MVCSpring MVC是一个模块化的Web应用框架,是基于Spring Framework的一个子框架,它支持多种视图技术,可用于开发RESTful Web应用和基于服务的Web应用。
该框架易于使用、扩展性强、提供了很好的测试支持,但也存在着过于复杂、学习曲线较陡峭等缺点。
2. Struts2Struts2是一个基于MVC模式的Web应用框架,它是Struts框架的后续版本。
该框架提供了大量的标签库支持,可以方便地实现各种表单操作。
它易于使用、对XML文件配置的支持逐渐减少,但也存在着减速代码的臃肿、性能不如其他框架等缺点。
3. Play FrameworkPlay Framework是一个开源的高度可扩展的Web应用框架,它采用了异步编程的方式,支持Java和Scala两种编程语言。
Play Framework使用了一种独特的路由机制,可以极其方便地实现URL路由。
它快速上手,性能优异,但也存在着不太适合大型项目、文档不太全面的缺点。
二、应用实战在选择了适合自己的Java Web框架后,我们需要在具体项目中进行实际应用。
下面以Spring MVC框架为例,介绍其在开发一个Web应用中的具体应用实战。
1. 搭建Maven工程Maven是一个强大的项目管理工具,我们可以使用它来构建一个Spring MVC的工程。
基于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务逻辑和存储业务数据,校验从表示层传过来的数据,通过表示层提交的命令来执行相应的业务逻辑。
基于Struts的网上商城系统研究摘要:随着计算机的广泛应用和网络技术的飞速发展,网上购物成了众多上网者所追捧的时尚活动。
网上购物突破了传统商务的障碍,不管是对企业、消费者还是市场都有着巨大的吸引力和影响力。
该文研究的网上商城系统是基于myeclipse6.0开发环境、运用struts应用框架技术、以sqlserver 2005作为后台数据库进行开发的。
关键词:struts;网上商城;订单管理;商品管理;货物配送中图分类号:tp393 文献标识码:a 文章编号:1009-3044(2013)08-1998-04网上购物是一种可以实现交互功能的商业信息系统,相比传统购物具有很多优势,对于商家来说,由于网上销售经营成本低、经营规模不受场地限制、没有库存压力等,基于这些优势会有越来越多的商家选择网上销售。
对于整个市场经济来说,网上购物可在更广的范围内和更宽的层面上以更高的效率实现资源配置。
因此,网上购物网站的建设在当今乃至今后一段时间将会受到企业内部和互联网越来越多的关注。
1 网上购物国内外现状在国外,如美国、日本等计算机水平较发达的国家,越来越多的行业加入到网上商店,因此网上商店发展速度飞快。
美国的世界级超一流的零售商,如沃尔玛凯玛特、家庭仓储、科罗格、j.c培尼等都开展网络商店。
经过调查表明,美国越来越多的家庭已习惯于在家中进行网上购物。
2 系统开发的可行性分析开发任何一个系统,都会受到资源和技术的限制,因此,在开发系统前,要进行技术可行性和经济可行性分析,以减少开发风险,避免人力、财力、物力的浪费。
2.1 技术可行性随着计算机网络的发展,上网人数越来越多,人们已经习惯和接受通过电子商城来进行购物和接受服务。
因此,在这种前提下,企业通过网站向客户提供各种各样商品的销售,能够被客户所接受,同时也可以增加企业客户访问量。
网上商城购物系统的开发技术已经日趋成熟,无论是在硬件还是软件方面。
首先,在硬件方面,由于计算机硬件速度和网络运行速度的大幅度提高,为网上电子商城的运行打下坚实的基础。
mvc三大框架的原理MVC是一种软件设计模式,将应用程序分为三个部分:模型(Model)、视图(View)和控制器(Controller)。
每个部分都有特定的任务和职责,协同工作来实现应用程序的功能。
MVC框架就是基于MVC模式的应用程序框架,常见的三大MVC框架是Spring MVC、Struts2和 MVC。
它们都是开源的、成熟的框架,被广泛应用于Web应用程序的开发中。
下面我们来了解一下这三个MVC框架的原理。
1. Spring MVCSpring MVC在MVC模式的基础上,增加了IoC(控制反转)和AOP(面向切面编程)的概念,使得开发者能够更加方便地管理和组装组件。
Spring MVC将请求分解为控制器、模型和视图三部分,在控制器处理请求,模型提供数据,视图渲染数据。
Spring MVC的工作流程如下:1)客户端发送请求到DispatcherServlet。
2)DispatcherServlet调用HandlerMapping查找处理器。
3)HandlerMapping返回处理器,DispatcherServlet将请求发送到处理器。
4)处理器执行业务逻辑,并将数据存储在模型中。
5)处理器返回逻辑视图名字给DispatcherServlet。
6)DispatcherServlet将逻辑视图名字发送给ViewResolver。
7)ViewResolver返回视图,DispatcherServlet将模型和视图合并,并将HTML响应发送给客户端。
2. Struts2Struts2是Apache Struts的继承者,它将MVC设计模式应用于Web应用程序开发中。
Struts2通过拦截器(Interceptor)实现了AOP的功能,通过以拦截器为基础的过滤器链,将请求从客户端发送到控制器,再由控制器调用模型和视图。
Struts2的工作流程如下:1)客户端发送请求到FilterDispatcher。
摘要: Struts框架具有组件的模块化,灵活性和重用性的优点,同时简化了基于MVC 的web应用程序的开发。
本文讨论了Struts框架实现MVC模式的原理与方法,给出了一个具体的应用实例。
分布式企业应用软件结构复杂、涉及多种技术,对设计开发人员提出了很高的要求。
在此情况下,运用设计模式――可复用的设计方案进行软件的设计开发十分必要。
MVC模式已被证明是一种成功的软件设计模式,本文主要讨论了一种实现MVC模式的应用框架――Struts,并通过一个实例展示了Struts框架实现MVC模式的方法。
MVC设计模式MVC(Modle-View-Controller,模型-视图-控制器)模式是Xerox PARC在20世纪80年代为编程语言Smalltalk-80所设计的一种软件设计模式,至今已被广泛使用,并被推荐为Sun公司J2EE平台的设计模式,其为开发交互式应用系统提供了一个优秀的设计模式,受到越来越多开发者的欢迎。
MVC模式主要由3个部分组成:模型、视图和控制器,其结构如图1所示。
图1 MVC模式框架模型表示业务逻辑和业务规则等,在MVC的三个部件中拥有最多的处理任务。
它可以用JavaBean和EJB等组件技术来处理数据库的访问。
模型能为多个视图提供数据。
由于应用于模型的代码只需写一次就可以被多个视图重用,所以减少了代码的重复性。
视图是屏幕上的显示。
模型进行操作之后,其结果就是通过视图来显示的。
在视图中其实没有真正的处理发生,只是作为一种输出数据并允许用户操作的方式。
控制器用于管理用户与视图发生的交互。
一旦用户想对模型进行处理时,它不能直接去执行模型,而是通过控制器来间接地实现。
控制器能从视图中取值,然后将相应的值传给模型进行处理。
控制器接受用户的输入并调用模型和视图去完成用户的需求。
由上述可知,MVC模式的处理过程是:首先由控制器接收用户的请求,并决定应该调用哪个模型来进行处理,然后模型用业务逻辑来处理用户的请求并返回数据,最后控制器用相应的视图返回数据,并通过表达层呈现给用户。
MVC本身就是一个非常复杂的系统,所以采用MVC实现Web应用时,最好选一个现成的MVC框架,在此之下进行开发,从而取得事半功倍的效果。
现在有很多可供使用的MVC框架,由于Struts有完整的文档并且相对来讲比较简单,所以用它开发MVC系统还是比较方便地。
Struts框架Struts是Apache组织的一个开放源码项目。
Struts是一个比较好的MVC框架,提供了对开发MVC系统的底层支持,它采用的主要技术是Servlet,JSP和Custom tag library。
其基本构成如图2所示。
图2 Struts框架图由图2可以看出,在Struts框架中Controller功能由ActionServlet和ActionMapping 对象构成,核心是一个Servlet类型的对象ActionServlet,它用来接受客户端的请求。
ActionServlet包括一组基于配置的ActionMapping对象,每个ActionMapping对象实现了一个请求到一个具体的Model部分中Action处理器对象之间的映射。
Model部分由Action和ActionForm对象构成。
所有的Action处理器对象都是开发者从Struts的Action类派生的子类。
Action处理器对象封装了具体的处理逻辑,调用业务逻辑模块,并且把响应提交到合适的View组件以产生响应。
Struts提供的ActionForm组件对象可以通过定义属性描述客户端表单数据。
开发者可以从它派生子类对象,利用它和Struts 提供的自定义标记库结合可以实现对客户端的表单数据的良好封装和支持,Action处理器对象可以直接对它进行读写,而不再需要和request、response对象进行数据交互。
通过ActionForm组件对象实现了对View和Model之间交互的支持。
View部分是通过JSP技术实现的。
Struts提供了自定义的标记库,通过这些自定义标记可以非常好地和系统的Model部分交互,通过使用这些自定义标记创建的JSP表单,可以实现和Model部分中的ActionForm的映射,完成对用户数据的封装。
基于MVC模式的Struts框架的应用下面通过一个具体实例说明如何应用Struts框架构建应用程序。
该实例是一个全面预算管理系统中的预算资料模块,包括资料录入、资料查询、资料修改和资料删除四个功能,用于完成预算资料的录入、查询、修改及删除。
具体在使用Struts框架时,对应各个部分的开发工作主要包括:1、构建视图在Struts框架中,视图的实现主要采用JSP技术,但与传统的JSP相比有两个显著的不同。
首先,在Struts下使用JSP开发视图,在页面中没有包含任何的脚本程序,只是单纯的完成数据传送以及接收和显示返回的数据。
对数据的处理以及页面的跳转都在业务层中来实现。
这样做实现了业务逻辑和表示逻辑的完全分离,提高了一个应用程序的性能和可扩展性,并有利于程序的复用。
第二,Struts框架提供了一组可扩展的自定义标记库,主要包括: Bean标记、 Logic 标记、HTML标记和模板标记。
通过使用标记,可以简化创建用户界面的过程,并且更好地实现数据的封装。
通过使用这些自定义标记创建的JSP表单,可以实现和业务层中的ActionForm 的映射,非常好地和系统的业务逻辑部分交互。
下面给出资料录入页面的部分实现代码:<%@ page contentType="text/html; charset=GBK" %><%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %><%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %><%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic" %><html><head><title>前期准备资料录入</title><link rel="stylesheet" type="text/css" href="../images/mobile.css"></head><body bgcolor="#ffffff"><html:form action="/information/budgetinfoadd" enctype="multipart/form-data"><table width="95%" border="1" cellspacing="1" cellpadding="2" bordercolor="#CBE7F8" align="center"><tr bgcolor="#F2F9FD"><td width="20%">类型:</td><td><html:select property="infoType" styleClass="input2"><html:options collection="TypeList" property="id" labelProperty="typeName"/></html:select></td></tr>……</table></html:form></body></html>程序中首先引入了HTML、Bean和Logic标记库,然后用action指出调用的Action组件的绝对路径,标记<html:form>和</html:form>封装了表单数据,在业务层中用相应的ActionForm组件可以将输入的数据全部得到。
可以看出在视图中没有进行任何的业务逻辑的处理,其主要作用是给出客户端显示的信息和处理结果,以及请求的转发,它是和用户交互的接口。
2、构建模型模型采用JavaBean和EJB组件,设计和实现系统的业务逻辑。
根据不同的请求从Action 派生具体Action处理对象,完成“做什么”的任务来调用由Bean构成的业务组件,创建由ActionForm 的派生类实现对客户端表单数据的封装。
下面以BudgetInfoAddForm这个ActionForm Bean进行说明:……public final class BudgetInfoAddForm extends ActionForm {private String infoType;private String title;private String content;private FormFile infoFile;这里表示BudgetInfoAddForm继承于ActionForm,在这个Bean中定义了视图中所要显示数据信息的参数,包括infoType,资料分类;title,资料标题;content,资料内容;infoFile, 资料文件。
同时在BudgetInfoAddForm中提供了设定和访问这些参数的方法:public String getInfoType()public void setInfoType(String infoType)public String getTitle()public void setTitle(String title)public String getContent()public void setContent(String content)public FormFile getInfoFile()public void setInfoFile(FormFile infoFile)public void reset(ActionMapping mapping, HttpServletRequest request) { title = null;content = null;infoFile = null;}3、构建控制器在Struts应用框架中,中心控制器(ActionServlet)是由Struts框架本身所提供,开发人员一般无须对该ActionServlet进行再次开发;负责具体业务处理的Action类则是开发者开发实现的重点,在这些Action对象中会进行所有的业务操作,处理完毕,由Struts的ActionServlet转向到jsp页面,将处理结果返回给客户端。