配置Servlet開發(fā)環(huán)境
在Domino開發(fā)環(huán)境中基于報表的解決方法一直沒有很好的解決方案。最近在實際項目應用過程中結合用戶的實際需求解決了用戶的實際報表問題。用戶要求能夠對報表直接在IE中查看,也能夠把報表自行保存,根據用戶實際需要用Excel進行報表的輸出。
由于在實際報表需求中有很多的統(tǒng)計運算,所以使用JDBC ODBC來解決統(tǒng)計運算的問題。Servlet完成整個報表的控制運行,JDBC驅動程序完成以SQL語句方式存取NSF數據,利用JXL進行讀取Excel,***以文件流的形式把報表展現給用戶客戶端,并用Excel程序打開報表。
報表結構圖
整個報表的結構圖如下。
報表結構圖
報表實現
一.設置Domino運行Servlet
1.在整個報表輸出過程中使用Domino的Servlet容器管理Servlet程序的運行,所以首先要啟用Servlet程序并對其進行相關配置。
打開Domino服務器的服務器配置文檔,找到”DominoWeb引擎”標簽如下圖進行設置。
配置Servlet
Java服務器小程序支持:選擇“Domino服務器小程序管理器”
服務器小程序URL路徑:輸入“/Servlet”
類路徑:輸入相關的類路徑名稱,多值之間用分號隔開
其他參數使用默認。
注意:這里的URL路徑是相對于../data/domino目錄的
2.關于Servlet開發(fā)環(huán)境JSDK
標準DominoDesigner的開發(fā)環(huán)境并不支持Servlet開發(fā)環(huán)境,因此必須使用第三方IDE或命令行JDK開發(fā)Servlet代碼。這里我們使用的是Eclipse集成開發(fā)環(huán)境來Servlet開發(fā)。
DominoServlet支持JVM和ServletManager。當Servlet“啟用”時,JVM在HTTP服務器啟動之前裝載;如果使用DominoServletManager,在JVM裝載之后裝載它;如果使用第三方ServletManager,則只裝載JVM。
用戶從瀏覽器訪問Servlet時,URL為http://myserver/servlet/servletname。例如,輸入http://myserver/servlet/DomStat運行報表統(tǒng)計的Servlet。
Web服務器啟動時裝載Servlet,此后Servlet將在內存中開始工作。但是,Servlet代碼改變后,DominoHTTP服務器必須退出并重新啟動,新代碼才會起作用。
需要在Domino控制臺中敲入“tellhttprestart”命令重新加載Http服務才能生效。
有關Servlet配置文件經常出現的錯誤有:
◆文件目錄放置錯誤,它必須是在您的Domino數據目錄下。
◆文件擴展名錯誤,許多編輯器例如Notepad使用TXT擴展名。
◆大小寫錯誤,文件名如同Servlet名字是大小寫敏感的。
二.安裝Notessql驅動程序
Notessql是為NSF類型數據庫提供的ODBC驅動程序,符合ODBC2.0規(guī)范。安裝Notessql驅動程序后,NSF類型數據庫就可以用SQL語句進行讀取數據。目前Notessql***的版本是3.02。首先從IBM網站下載對應的安裝文件,下載完成后在運行Domino服務器的機器上進行安裝并進行配置。
安裝完成后在配置ODBC數據源時可以從數據源類型中進行選擇來配置與NSF數據庫的連接,下圖是一個例子。
創(chuàng)建新數據源
三.配置ODBC數據源
啟動控制面板->ODBC數據源,新建所需要的系統(tǒng)數據源:
ODBC數據源
數據源類型選擇“系統(tǒng)DSN”,點“添加”新建基于NSF的數據源:
新建基于NSF的數據源
Datasourcename:輸入數據源名稱
Dominoserver:輸入Domino服務器名稱或者Domino服務器的IP地址
Database:選擇對應的nsf數據庫
四.編寫Servlet
1.選擇熟悉的Java源程序Servlet開發(fā)環(huán)境,這里我選擇的Eclipse3.1版本。
2.創(chuàng)建Servlet類
publicclassDomStatextendsHttpServlet{
}
3.Servlet源程序代碼
五.運行Servlet
編譯完成后把輸出的class文件拷貝到Servlet目錄下面,然后直接在IE地址欄中輸入http://servername:serverport/Servlet/DomStat即可,運行效果如下圖:
文件下載
【編輯推薦】