線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1406
推到 Plurk!
推到 Facebook!

JSP中的PAGE命令就算沒有Excel表格也可以正常的顯示

 
jackkcg
站務副站長


發表:891
回覆:1050
積分:848
註冊:2002-03-23

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-07-30 19:47:29 IP:61.64.xxx.xxx 未訂閱
此為主轉貼資料 http://www.php2000.net/modules/wfsection/article.php?articleid=2562 本文將要討論的問題包括:如何在JSP裏面使用自定義的JAVA類,如何讓你的表格在EXCEL下面顯示,怎樣指定用單線程的方式執行Servlet,以及怎樣設置http輸出流的緩衝區大小等等。 JSP的命令一共有三個:page、include和taglib。Page命令讓你能夠控制從JSP頁面生成的Servlet的屬性和結構。Include命令讓你插入一個文件,通常用於導入Applet。在JSP1.1標準裏面,新添加了一個命令taglib,用於自定義的標簽。JSP命令的語法格式如下(以page爲例): 或者 如果你想讓你的JSP文件和XML標準相容,你還可以考慮下面這種寫法: 在什麽位置插入page命令沒有關係,因爲page命令和其他的命令一樣,只在JSP頁面編譯的時候起作用。 Page命令的參數包括import, contentType, isThreadSafe, errorPage, isErrorPage,session, buffer, autoflush, extends, info, language。注意這些參數的名稱是大小寫敏感的。 import參數:使用自定義的類 import參數的作用是讓你指定生成的servlet中需要導入的包(packages)。缺省的情況下會自動導入java.lang.*, javax.servlet.*,javax.servlet.jsp.*,javax.servlet.http.*,另外還可能有你所使用的伺服器自動導入的類。但是,出於可攜性 的考慮,不要讓你的JSP依靠特定的伺服器。原則:總是顯式的指定自己用到的類包。 import參數的格式爲: 例如: 這個命令就導入了java.util和java.sql包裏面的所有類。 import參數是page命令的參數中唯一一個可以在同一個頁面中出現多次的。儘管命令出現的位置無關緊要,筆者仍然建議你把所有的import參數寫在頁面的開始部分。 如何引入自定義的類包呢?首先要明確你所要使用的類包被正確的安裝到了你的伺服器上面。現在的JSP伺服器中大多數不支援JSP頁 面引用具有自動更新(auto-reloading)屬性目錄下面的類包。不同的伺服器的針對servlet的類包的存放目錄是不一樣的 ,詳見表1。必須注意,一旦你更改了這些目錄下面的文件,你必須重新啓動伺服器。 伺服器 標準目錄 候選目錄 自動更新 JSP可用 TOMCAT 3.0 webpages/WEB-INF/classes classes N/N Y/Y JSWDK 1.0.1 webpages/WEB-INF/servlets classes N/N Y/Y JWS 2.0 servlets classes Y/N N/Y 表1 類包的安裝目錄 用一個例子來說明自定義類包的引用吧。首先假設你的java根源程式裏面寫明瞭package pack.cla,那麽你編譯以後的class 文件就會位於你的編譯器的output路徑/pack/cla下面。再假設你使用的伺服器是TOMCAT,你的應用的存放路徑是 webapps/myapp/。那麽你所要做的就是把/pack目錄拷貝到/myapp/WEB-INF/classes下面,然後再重新啓動TOMCAT。這樣你就可以在JSP文件中引用pack.cla裏面的類了。 contentType 參數:利用EXCEL來顯示表格 contentType 參數指定http回應的頭部(response header)的Content-Type值。用戶端的瀏覽器會根據你在contentType指定的MIME類型和字元集代碼來顯示servlet輸出的內容。 MIME(Multipurpose Internet Mail Extention)的內容一直在增加,現在包括的應用程式文檔格式已經很多了。表2列出了一些常見的MIME類型。 MIME 類型 意義 application/msword Microsoft Word文檔 application/pdf Acrobat PDF 文件 application/vnd.ms-excel Microsoft Excel 表格 audio/x-wav wav格式的音頻文件 text/html HTML格式文本文檔 text/css HTML層疊樣式表 text/plain 普通文本文檔 image/jpeg JPEG格式圖片 video/mpeg MPEG格式視頻文件 表2 常見MIME類型 contentType參數的格式爲: 或者 實際上,設置page命令的contenType參數和下面的代碼功能上完全等價: 但是,這樣用scriplet直接調用setContentType函數的方式有一個缺陷,書寫的位置不像page命令一樣是位置無關的(如果servlet的輸出流沒有設置緩衝區的情形下)。 JSP的默認MIME類型是text/html,普通的servlet則是text/plain。不過兩者的默認charset都是ISO-8859-1。 需要指出的一點是,如果你使用了FrontPage等網頁製作工具來編寫JSP頁面的話,最好刪除其自動加上的Content-Type設置 ,以免引起可能的衝突。 舉一個例子,我們經常碰到某些需要訪問資料庫並用表格形式顯示資料的應用,現在可以通過contentType參數的設置用Excel來顯示表格。 步驟有兩個。首先,用page命令把MIME類型設置爲application/vnd.ms-excel。 然後,把你想輸出的內容按照Excel的格式要求輸出。 Excel的表格格式有兩種。簡單的一種是直接把不同行的資料寫在不同的行上,然後把不同列上的資料用TAB鍵分隔開。 比如像下面一樣寫一個JSP文件: JAN FEB MAR APR MAY 142 154 225 456 777 在安裝了Excel的系統上用瀏覽器打開這個頁面的時候,你就會看到頁面中的資料自動在Excel的表格中顯示出來。 另外一種資料格式就是用通常的HTML表格,但是只有最新版本的Excel才支援HTML表格的顯示。 這種方法的好處是不必關心用戶是否安裝了Excel,就算沒有Excel表格也可以正常的顯示。 自然的,你會馬上考慮到能不能動態的改變contentType的值,以便按照用戶的需求來顯示表格。 遺憾的是,page命令不能夠在運行期間才確定參數的值,也不能夠想當然的把page命令插入到if語句中間去。 要到達這一目的,我們只能使用contentType參數的等價形式:setContentType函數 ********************************************************* 哈哈&兵燹 最會的2大絕招 這個不會與那個也不會 哈哈哈 粉好 Delphi K.Top的K.Top分兩個字解釋Top代表尖端的意思,希望本討論區能提供Delphi的尖端新知 K.表Knowlege 知識,就是本站的標語:Open our mind to make knowledge together! 希望能大家敞開心胸,將知識寶庫結合一起
------
**********************************************************
哈哈&兵燹
最會的2大絕招 這個不會與那個也不會 哈哈哈 粉好

Delphi K.Top的K.Top分兩個字解釋Top代表尖端的意思,希望本討論區能提供Delphi的尖端新知
K.表Knowlege 知識,就是本站的標語:Open our mind
系統時間:2024-05-18 16:00:37
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!