日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

FineReport报表和J2EE应用的集成

發(fā)布時(shí)間:2023/12/9 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 FineReport报表和J2EE应用的集成 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

From:?http://www.blogjava.net/fannie/archive/2013/05/08/398985.html

FineReport是一個(gè)純Java軟件,因此對(duì)于J2EE的項(xiàng)目,可以做到無(wú)縫集成。

報(bào)表服務(wù)器并非物理概念的服務(wù)器,而是以一個(gè)標(biāo)準(zhǔn)的J2EE應(yīng)用的形式或者jar包的形式提交給程序。應(yīng)用程序通過(guò)url來(lái)調(diào)用報(bào)表,或者通過(guò)開(kāi)放的API來(lái)調(diào)用報(bào)表的各種功能,來(lái)實(shí)現(xiàn)更加靈活的控制。報(bào)表集成到應(yīng)用程序后,即可作為一個(gè)統(tǒng)一完整的程序來(lái)進(jìn)行發(fā)布。

同時(shí)無(wú)縫集成還能夠使報(bào)表與應(yīng)用程序使用同一個(gè)數(shù)據(jù)庫(kù)連接池,或進(jìn)行集群,負(fù)載均衡等,提高報(bào)表的運(yùn)行效率,原理圖如圖1所示:


1 Java項(xiàng)目集成原理圖

?

報(bào)表工程目錄結(jié)構(gòu)

???????在說(shuō)明配置FineReport服務(wù)器之前,我們先了解一下FineReport應(yīng)用服務(wù)的目錄結(jié)構(gòu):


對(duì)上圖的目錄層次結(jié)構(gòu)我們做一些說(shuō)明:

WebReport:可以看到所有的相關(guān)文件都包含在WebReport這個(gè)服務(wù)器應(yīng)用工程中,也就是說(shuō)WebReport是我們默認(rèn)的工程名,此項(xiàng)名字可以修改。

WEB-INF:WEB-INF目錄是J2EE服務(wù)器中默認(rèn)規(guī)定的,全稱是Web Information。

classes:classes 文件夾也是應(yīng)用服務(wù)器默認(rèn)規(guī)定的。主要作用是存放.class文件,例如在FineReport中,如果要使用"自定義函數(shù)","程序數(shù)據(jù)源"和"程序網(wǎng) 絡(luò)報(bào)表"等功能,必需先使用我們提供的接口來(lái)編寫.java文件,然后將編譯后產(chǎn)生的.class文件存放到該目錄下。

lib:lib 也是應(yīng)用服務(wù)器規(guī)定的目錄結(jié)構(gòu)。FineReport該目錄下主要包括fr-server-6.5.jar,第三方類的jar文件和一些常用數(shù)據(jù)庫(kù) JDBC驅(qū)動(dòng),比如ojdbc14.jar就是Oracle數(shù)據(jù)庫(kù)的驅(qū)動(dòng),應(yīng)用服務(wù)器在啟動(dòng)的時(shí)候會(huì)自動(dòng)將lib目錄下所有的.jar文件加載到系統(tǒng)的 classpath中;fr-server-6.5.jar包含了FineReport服務(wù)器的所有功能,它是由FineReport源文件編譯后產(chǎn)生 的.class類文件。例如:Servlet類com.fr.web.ReportServlet便位于fr-server-6.5.jar中。

reportlets:reportlets是FineReport服務(wù)器默認(rèn)規(guī)定的,不能修改。可以在這個(gè)目錄下面建立子目錄文件夾,FineReport設(shè)計(jì)器設(shè)計(jì)的模板一般都保存在這個(gè)目錄或者它的子目錄下面,以便FineReport服務(wù)器調(diào)用。

resources:resources 是FineReport服務(wù)器默認(rèn)規(guī)定的,不能修改。下面保存了一些.xml文件,這些.xml文件里面保存著FineReport服務(wù)器的配置等信 息,FineReport服務(wù)器啟動(dòng)的時(shí)候,會(huì)自動(dòng)加載這些.xml文件(有些xml文件不是運(yùn)行必需的)。

web.xml:這個(gè)文件也是J2EE服務(wù)器所規(guī)定必須建立的,我們?cè)诖宋募卸x了FineReport的SERVLET的解析路徑方式,權(quán)限加載等一些內(nèi)容,此文件初始配置內(nèi)容如下:

1.?<?xml?version="1.0"?encoding="UTF-8"?>????

2.?<web-app?xmlns="http://java.sun.com/xml/ns/j2ee"?xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"????xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee?http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"????version="2.4">???

3.?<servlet>??

4.?<servlet-name>ReportServer</servlet-name>??

5.?<servlet-class>com.fr.web.ReportServlet</servlet-class>??

6.?<load-on-startup>0</load-on-startup>??

7.?</servlet>???

8.?<servlet-mapping>??

9.?<servlet-name>ReportServer</servlet-name>???

10.<url-pattern>/ReportServer</url-pattern>??

11.</servlet-mapping>??

12.</web-app>??

報(bào)表集成步驟

1、?服務(wù)器部署

FineReport報(bào)表是一個(gè)Servlet應(yīng)用。大 家知道,Servlet是一種服務(wù)器端的Java應(yīng)用程序,具有獨(dú)立于平臺(tái)和協(xié)議的特性,可以生成動(dòng)態(tài)的Web頁(yè)面。 它擔(dān)當(dāng)客戶請(qǐng)求(Web瀏覽器或其他HTTP客戶程序)與服務(wù)器響應(yīng)(HTTP服務(wù)器上的數(shù)據(jù)庫(kù)或應(yīng)用程序)的中間層。 Servlet是位于Web 服務(wù)器內(nèi)部的服務(wù)器端的Java應(yīng)用程序,由Web服務(wù)器進(jìn)行加載,該Web服務(wù)器必須包含支持Servlet的Java虛擬機(jī)。

因此FineReport報(bào)表必須部署在Web應(yīng)用服務(wù)器如Tomcat、Weblogic、Websphere等下面,啟動(dòng)Web應(yīng)用服務(wù)器時(shí)就會(huì)加載FineReport報(bào)表這個(gè)Servlet,從而交互式地瀏覽和修改數(shù)據(jù),整個(gè)過(guò)程如下:


?

報(bào)表部署分為兩種,一是報(bào)表作為一個(gè)獨(dú)立的應(yīng)用獨(dú)立部署;或者是集成到現(xiàn)有應(yīng)用即嵌入式部署。不管哪種部署方式,他們的目錄結(jié)構(gòu)都是類似的。

如下圖我們對(duì)未包含報(bào)表的應(yīng)用及包含報(bào)表的應(yīng)用目錄作一個(gè)比較:


?????? 1.1獨(dú)立部署

FineReport安裝目錄下的WebReport目錄就是一個(gè)標(biāo)準(zhǔn)的應(yīng)用,因此,若用戶希望將報(bào)表作為一個(gè)獨(dú)立的應(yīng)用進(jìn)行部署的話,可以直接使用WebReport目錄進(jìn)行發(fā)布。

?

?????? 1.2嵌入式部署

若用戶希望將報(bào)表集成到自己的應(yīng)用中的話,則可以對(duì)應(yīng)上圖部署報(bào)表后的應(yīng)用目錄結(jié)構(gòu),將對(duì)應(yīng)的報(bào)表文件拷貝到相應(yīng)目錄即可。

?

2、?頁(yè)面集成

用戶系統(tǒng)的網(wǎng)頁(yè)可能由不同的語(yǔ)言開(kāi)發(fā),如HTML、ASP、JSP、PHP等。FineRepor報(bào)表可以通過(guò)Frame框架集成到Web頁(yè)面中,指定Frame的src即可。

例:<iframe?id="reportFrame"?width="900"?height="400"?src="/WebReport/ReportServer?reportlet=/doc/Primary/Parameter/Parameter.cpt"></iframe>??

另外頁(yè)面集成中的一些常見(jiàn)應(yīng)用:動(dòng)態(tài)傳參、自定義參數(shù)界面、自定義工具欄、頁(yè)面布局等;可以參考FR在線幫助手冊(cè)。

3、?權(quán)限集成

3.1FR權(quán)限流程圖


?

3.2、豐富的權(quán)限認(rèn)證方式

??????? FineReport為了保證權(quán)限功能的通用性,提供了多種認(rèn)證方式,其總體架構(gòu)圖如圖

???

圖2 FineReport權(quán)限總體架構(gòu)圖

?

3.3、權(quán)限粒度

????????很多系統(tǒng)的權(quán)限認(rèn)證只是限制模塊的使用,使得合法用戶能夠行使自己的權(quán)利。FineReport在滿足這種整體權(quán)限認(rèn)證的同時(shí),權(quán)限的控制力度可以達(dá)到同一張報(bào)表的內(nèi)容在不同權(quán)限下展示的效果不一樣,這樣就免除了制作大量的報(bào)表來(lái)實(shí)現(xiàn)同樣效果,尤其是在企業(yè)內(nèi)部業(yè)務(wù)繁雜,審批麻煩時(shí),一張報(bào)表就可以解決所有問(wèn)題。

?

3.4、靈活的權(quán)限集成

伴隨著國(guó)內(nèi)信息技術(shù)的高速發(fā)展,越來(lái)越多的政府和企事業(yè)單位使用信息管理系統(tǒng)來(lái)管理日常的工作生產(chǎn),但是每個(gè)系統(tǒng)應(yīng)用都有自己的權(quán)限體系模型,經(jīng)常會(huì)出現(xiàn)一個(gè)用戶在好幾個(gè)系統(tǒng)應(yīng)用里面都有設(shè)置,這樣就產(chǎn)生了兩個(gè)問(wèn)題:1:用戶每訪問(wèn)一個(gè)系統(tǒng),都要登錄一次,既繁瑣又要用戶記憶很多的用戶名和密碼;2:加大了對(duì)日常的組織分配和人員變更的維護(hù)的復(fù)雜性和高成本性。

FineReport提供的權(quán)限認(rèn)證,可以靈活的與其它系統(tǒng)進(jìn)行統(tǒng)一認(rèn)證,實(shí)現(xiàn)單點(diǎn)登錄。

當(dāng)我們按照上面的三種類型的身份驗(yàn)證方式配置好相應(yīng)權(quán)限后,需要將報(bào)表和相應(yīng)的系統(tǒng)進(jìn)行集成,我們采取的方式是:

1:當(dāng)客戶登錄時(shí)通過(guò)FR登錄接口傳遞相應(yīng)的用戶名和密碼給我們報(bào)表系統(tǒng);

2:報(bào)表系統(tǒng)會(huì)匹配報(bào)表用戶數(shù)據(jù)集中的用戶名和傳遞過(guò)來(lái)的用戶名,然后識(shí)別登錄用戶的角色,并根據(jù)角色綁定相應(yīng)的權(quán)限;

3:把角色存儲(chǔ)在session里面,這樣用戶訪問(wèn)每張報(bào)表時(shí),報(bào)表權(quán)限都會(huì)先和session進(jìn)行驗(yàn)證,滿足的話就直接進(jìn)行相應(yīng)權(quán)限的操作,不滿足的話則會(huì)提示沒(méi)有權(quán)限。

具體的實(shí)現(xiàn)過(guò)程如圖3所示:


3?權(quán)限集成示意圖

??????????????注:FR報(bào)表登錄接口:http://../ReportServer?op=auth_login

???????????????????? FR報(bào)表登出接口:http://../ReportServer?op=auth_logout

?

總結(jié)

?????? FineReport同樣作為J2EE的一個(gè)應(yīng)用,可以跟任何J2EE架構(gòu)的工程進(jìn)行完美的無(wú)縫集成。

???????如有任何疑惑,FR竭誠(chéng)為您服務(wù)。


總結(jié)

以上是生活随笔為你收集整理的FineReport报表和J2EE应用的集成的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。