[设计开发]07技术研究报告

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

文档编码密级拟制人日期XX水库移民信访应急和综合管理系统技术研究报告甲方框架研究以及与CCP框架的对比郑重声明:XX软件股份有限公司版权所有。本文档中任何部分未经XX软件股份有限公司书面授权,不得将材料泄露给第三方,不得以任何手段、任何形式进行复制与传播。目录1.1问题描述..............................................................31.2需达到的目标..........................................................31.3技术路线..............................................................31.3.1甲方框架研究.......................................................31.3.2甲方框架和CCP框架的差异...........................................81.4结论.................................................................141.1问题描述该项目需要集成在甲方开发的大系统中,由于甲方大系统自身提供了一个开发框架,其开发框架基于Struts2+Spring+Hibernate3,与目前我公司项目中采用的CCP框架结构相似,但其JDK及SSH版本比CCP更新,其界面风格、权限控制(Acegi)以及具体代码编写组织方式也与CCP完全不同,在开发技术学习和代码集成上存在一定难度。因此,需要对甲方的开发框架进行仔细研究,掌握其开发方式,并比较与CCP开发框架的差异,从而确定开发集成方案。1.2需达到的目标1、掌握甲方开发框架下,代码的开发;2、比较甲方开发框架和CCP,寻找开发模式的异同。1.3技术路线1.3.1甲方框架研究1.3.1.1前台代码结构1、页面框架构成:Index.jspframe.jspFrametopFrameleftFrameLeftSwitchFramerightFramegisFrame.menu.switch.doFrame.top.do/jsp/common/leftSwitch.html/jsp/common/head.jspjsp/gis/ArcGisApp.htmlmanage.do2、页面跳转机制前台编码流程(显示行政区划列表)1、修改/jsp/common/head.jsp,新增菜单tdwidth=75ahref=frame.menu_baseInfo.dotarget=leftimgsrc=images/menu1_off.gifname=Image1width=75height=34id=Image1onMouseOver=MM_swapImage('Image1','','images/menu1_on.gif',1)onMouseOut=MM_swapImgRestore(1)onClick=setFouce(1)/a/td2、修改src/gov/gjym/common/web/IndexSupport.java,增加frame.menu_baseInfo.do对应的action方法3、编写左侧页面\WebRoot\jsp\common\menu_baseInfo.jsp4、实现AreaSupport.java对应的客户端请求方法。编码注意事项1、struts.xml配置规范package的name表示子系统名,namespace表示模块名,页面请求request读取struts.xmlActionClass(eg:gov.gjym.baseinfo.web.AreaSupport)服务器返回处理结果动态页面(eg:/jsp/baseinfo/Area_List.jsp)action的name中前部分表示菜单业务名,name的后部分对应类中的方法名,*号表示接受任何方法packagename=baseinfonamespace=/baseinfoextends='struts-default'actionname=area.*class=gov.gjym.baseinfo.web.AreaSupportresultname=detail/jsp/baseinfo/Area_Add.jsp/resultresultname=list/jsp/baseinfo/Area_List.jsp/resultresultname=choose/jsp/common/area.jsp/result/action/package2、页面的主题框架是一个frameset其中包括topleftright等,刷新对应frame只需指定target即可,eg:ahref=baseinfo/area.list.dotarget=right1.3.1.2后台代码结构一、包结构说明:PackageName包内文件及说明gov/gjym/baseinfo/daoAreaDao.java数据访问接口AreaDaoImpl.java数据访问实现类gov/gjym/baseinfo/pojoArea.java持久对象类Area.hbm.xmlhibernate映射文件gov/gjym/baseinfo/serviceAreaService.java业务层接口AreaServiceImpl.java业务层实现方法,动态注入了对应的daogov/gjym/baseinfo/webAreaSupport.java扩展自ActionSupport实现页面的扭转,同时该类的父类提供了getBean方法,可以从spring工厂动态获取业务层类的实例二、后台实现编码流程(添加一个行政区划)1、编写pojoArea.java和hibernate映射文件Area.hbm.xml2、配置/gjym/src/spring/applicationContext.xml由spring实现hibernate的托管增加一行内容beanid=sessionFactoryclass=org.springframework.orm.hibernate3.LocalSessionFactoryBeanpropertyname=mappingResourceslistvaluegov/gjym/baseinfo/pojo/Area.hbm.xml/value/list/property3、编写AreaSupport.java类,该类要继承CommonSupport;编写保存请求area.add.do对应的action方法add();4、编写AreaService.java业务层接口类5、编写AreaServiceImpl.java注入了AreaDao,修改配置文件src\spring\spring-baseinfo.xml6、编写AreaDao.java数据访问接口类7、编写AreaDaoImpl.java数据访问实现类1.3.1.3系统权限权限的使用1、系统管理员登陆进入系统管理界面2、角色管理-设置角色成员------设置每个角色下的用户3、模块权限设置-授权管理------设置每个角色可以访问的模块管理员登陆访问系统管理用户与角色模块与权限设置用户管理角色管理模块管理授权管理1.3.1.4Acegi的应用1、编写简单的访问控制策略2、配置acegi拦截过滤器·A、Web.xmlAcegi过滤器的配置filter-mappingfilter-nameacegiFilterChain/filter-nameurl-pattern*.jsp/url-pattern/filter-mappingfilter-mappingfilter-nameacegiFilterChain/filter-nameurl-pattern*.do/url-pattern/filter-mapping·B、在spring中配置Acegi用的组件,其实都是JavaBean见gjymDemo\src\spring\security.xml验证用户身份,处理登陆身份验证beanid=authenticationProcessingFilterclass=gov.gjym.common.web.AuthenticationProcessingFilter基于URL的安全拦截器beanid=securityInterceptorclass=org.acegisecurity.intercept.web.FilterSecurityInterceptor对应于将要发生的授权的访问控制定义beanid=objectDefinitionSourceAcegiSecuritySystem过滤器管理器提供者处理程序class=gov.gjym.common.web.JdbcFilterInvocationDefinitionSourcepropertyname=rbacServiceref=rbacService//bean退出登录后的清理工作,把session销毁,把contextHolder清空,把rememberMeService从cookies删除,重新定向到退出的登录页面beanid=logoutFilterclass=gov.gjym.common.web.LogoutFilter1.3.2甲方框架和CCP框架的差异1.3.2.1前台框架甲方的框架基于struts2.0而CCP基于struts1.X,两者间的差异造成了配置文件和编码方式的诸多不同sturts.xml差异甲方:packagename=baseinfonamespace=/baseinfoextends='struts-default'actionname=area.*class=gov.gjym.baseinfo.web.AreaSupportresultname=detail/jsp/baseinfo/Area_Add.jsp/resultresultname=list/jsp/baseinfo/Area_List.jsp/resultresultname=choose/jsp/common/area.jsp/result/action/packageCCP:form-beansform-beanname=examSetBookFormtype=com.jiuqi.cpatest.formbean.form.ExamSetBookExtForm/form-bean/form-beansactionname=examSetBookFormtype=org.springframework.web.struts.DelegatingActionProxyscope=requestparameter=methodvalidate=falsepath=/TextbookActionforwardname=textmngmainpath=/app/bnscontent/sysmng/textmng/textmngmain.jspredirect=false//actionStruts1使用ActionForm对象捕获输入。象Action一样,所有的ActionForm必须扩展基类。因其他的JavaBean不能作ActionForm使用,而Struts2Action属性作输入属性,排除第二个输入对象的需要;因此CCP的struts配置文件中多了form的定义;甲方的struts配置文件只有一个,通过package标签中的name表示子系统名,namespa

1 / 14
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功