贵阳市公共住宅投资建设集团官方网站,百度的代理商有哪些,销量不高的网站怎么做,wordpress高速优化From: http://www.blogjava.net/fannie/archive/2013/05/08/398985.html FineReport是一个纯Java软件#xff0c;因此对于J2EE的项目#xff0c;可以做到无缝集成。 报表服务器并非物理概念的服务器#xff0c;而是以一个标准的J2EE应用的形式或者jar包的形式提交给程序。应…From: http://www.blogjava.net/fannie/archive/2013/05/08/398985.html FineReport是一个纯Java软件因此对于J2EE的项目可以做到无缝集成。 报表服务器并非物理概念的服务器而是以一个标准的J2EE应用的形式或者jar包的形式提交给程序。应用程序通过url来调用报表或者通过开放的API来调用报表的各种功能来实现更加灵活的控制。报表集成到应用程序后即可作为一个统一完整的程序来进行发布。 同时无缝集成还能够使报表与应用程序使用同一个数据库连接池或进行集群负载均衡等提高报表的运行效率原理图如图1所示 图1 Java项目集成原理图 报表工程目录结构 在说明配置FineReport服务器之前我们先了解一下FineReport应用服务的目录结构 对上图的目录层次结构我们做一些说明 WebReport可以看到所有的相关文件都包含在WebReport这个服务器应用工程中也就是说WebReport是我们默认的工程名此项名字可以修改。 WEB-INFWEB-INF目录是J2EE服务器中默认规定的全称是Web Information。 classesclasses 文件夹也是应用服务器默认规定的。主要作用是存放.class文件例如在FineReport中如果要使用自定义函数程序数据源和程序网 络报表等功能必需先使用我们提供的接口来编写.java文件然后将编译后产生的.class文件存放到该目录下。 liblib 也是应用服务器规定的目录结构。FineReport该目录下主要包括fr-server-6.5.jar第三方类的jar文件和一些常用数据库 JDBC驱动比如ojdbc14.jar就是Oracle数据库的驱动应用服务器在启动的时候会自动将lib目录下所有的.jar文件加载到系统的 classpath中fr-server-6.5.jar包含了FineReport服务器的所有功能它是由FineReport源文件编译后产生 的.class类文件。例如Servlet类com.fr.web.ReportServlet便位于fr-server-6.5.jar中。 reportletsreportlets是FineReport服务器默认规定的不能修改。可以在这个目录下面建立子目录文件夹FineReport设计器设计的模板一般都保存在这个目录或者它的子目录下面以便FineReport服务器调用。 resourcesresources 是FineReport服务器默认规定的不能修改。下面保存了一些.xml文件这些.xml文件里面保存着FineReport服务器的配置等信 息FineReport服务器启动的时候会自动加载这些.xml文件有些xml文件不是运行必需的。 web.xml这个文件也是J2EE服务器所规定必须建立的我们在此文件中定义了FineReport的SERVLET的解析路径方式权限加载等一些内容此文件初始配置内容如下 1. ?xml version1.0 encodingUTF-8? 2. web-app xmlnshttp://java.sun.com/xml/ns/j2ee xmlns:xsihttp://www.w3.org/2001/XMLSchema-instance xsi:schemaLocationhttp://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd version2.4 3. servlet 4. servlet-nameReportServer/servlet-name 5. servlet-classcom.fr.web.ReportServlet/servlet-class 6. load-on-startup0/load-on-startup 7. /servlet 8. servlet-mapping 9. servlet-nameReportServer/servlet-name 10.url-pattern/ReportServer/url-pattern 11./servlet-mapping 12./web-app 报表集成步骤 1、 服务器部署 FineReport报表是一个Servlet应用。大 家知道Servlet是一种服务器端的Java应用程序具有独立于平台和协议的特性可以生成动态的Web页面。 它担当客户请求Web浏览器或其他HTTP客户程序与服务器响应HTTP服务器上的数据库或应用程序的中间层。 Servlet是位于Web 服务器内部的服务器端的Java应用程序由Web服务器进行加载该Web服务器必须包含支持Servlet的Java虚拟机。 因此FineReport报表必须部署在Web应用服务器如Tomcat、Weblogic、Websphere等下面启动Web应用服务器时就会加载FineReport报表这个Servlet从而交互式地浏览和修改数据整个过程如下 报表部署分为两种一是报表作为一个独立的应用独立部署或者是集成到现有应用即嵌入式部署。不管哪种部署方式他们的目录结构都是类似的。 如下图我们对未包含报表的应用及包含报表的应用目录作一个比较 1.1独立部署 FineReport安装目录下的WebReport目录就是一个标准的应用因此若用户希望将报表作为一个独立的应用进行部署的话可以直接使用WebReport目录进行发布。 1.2嵌入式部署 若用户希望将报表集成到自己的应用中的话则可以对应上图“部署报表后的应用”目录结构将对应的报表文件拷贝到相应目录即可。 2、 页面集成 用户系统的网页可能由不同的语言开发如HTML、ASP、JSP、PHP等。FineRepor报表可以通过Frame框架集成到Web页面中指定Frame的src即可。 例iframe idreportFrame width900 height400 src/WebReport/ReportServer?reportlet/doc/Primary/Parameter/Parameter.cpt/iframe 另外页面集成中的一些常见应用动态传参、自定义参数界面、自定义工具栏、页面布局等可以参考FR在线帮助手册。 3、 权限集成 3.1、FR权限流程图 3.2、丰富的权限认证方式 FineReport为了保证权限功能的通用性提供了多种认证方式其总体架构图如图 图2 FineReport权限总体架构图 3.3、权限粒度 很多系统的权限认证只是限制模块的使用使得合法用户能够行使自己的权利。FineReport在满足这种整体权限认证的同时权限的控制力度可以达到同一张报表的内容在不同权限下展示的效果不一样这样就免除了制作大量的报表来实现同样效果尤其是在企业内部业务繁杂审批麻烦时一张报表就可以解决所有问题。 3.4、灵活的权限集成 伴随着国内信息技术的高速发展越来越多的政府和企事业单位使用信息管理系统来管理日常的工作生产但是每个系统应用都有自己的权限体系模型经常会出现一个用户在好几个系统应用里面都有设置这样就产生了两个问题1用户每访问一个系统都要登录一次既繁琐又要用户记忆很多的用户名和密码2加大了对日常的组织分配和人员变更的维护的复杂性和高成本性。 FineReport提供的权限认证可以灵活的与其它系统进行统一认证实现单点登录。 当我们按照上面的三种类型的身份验证方式配置好相应权限后需要将报表和相应的系统进行集成我们采取的方式是 1当客户登录时通过FR登录接口传递相应的用户名和密码给我们报表系统 2报表系统会匹配报表用户数据集中的用户名和传递过来的用户名然后识别登录用户的角色并根据角色绑定相应的权限 3把角色存储在session里面这样用户访问每张报表时报表权限都会先和session进行验证满足的话就直接进行相应权限的操作不满足的话则会提示没有权限。 具体的实现过程如图3所示 图3 权限集成示意图 注FR报表登录接口http://../ReportServer?opauth_login FR报表登出接口http://../ReportServer?opauth_logout 总结 FineReport同样作为J2EE的一个应用可以跟任何J2EE架构的工程进行完美的无缝集成。 如有任何疑惑FR竭诚为您服务。