顯示具有 JSP 問題處理 標籤的文章。 顯示所有文章
顯示具有 JSP 問題處理 標籤的文章。 顯示所有文章

Eclipse 的 Tomcat 環境設定


前提 1: 必須是 Eclipse IDE for Java EE 才有此設定.

前提 2: 到 Apache Tomcat 網址, 若只要供 Eclipse 使用, 則下載 ziptar.gz 這種免安裝檔即可.

1) Menu: Window > Preferences, 移動到 Server > Runtime Environments :


選擇 Apache Tomcat 版本 :


點選 "Browse" 鈕, 選擇 Apache Tomcat 根目錄 :


設定完成 :


2)在 Eclipse 中, 新增一個 "Dynamic Web Project" 專案 :


輸入 Project Name 與運行的 Target runtime :


3)新增一個 JSP FileHTML File :


選擇檔案的所在目錄 WebContent檔案名稱 :


4)在專案的地方按右鍵, 選擇 Run As > Run on Server, 進行運行 :


選擇運行的 Target runtime 環境 :


運行結果 :


Apache Tomcat 的記憶體配置 (效能調整)

Tomcat Server 預設可使用的記憶體為 128M,

若有大量網頁需求時, 會因記憶體太少, 而導致 Tomcat 當掉無法運作,

所以, 若要應付大量網頁的需求,

可自行編輯 <Tomcat_Home> / bin / catalina.bat 檔案,

增加下面這一行 (以 Windows 平台為例) :
 程式碼
SET JAVA_OPTS=-Xms512m -Xmx1024m

另外提供, 網路上的一些參考 :

網址 1 : http://blog.udn.com/LupinBlog/1987728.

網址 2:http://svjr.blogspot.com/2006/12/tomcat.html.

網址 3:http://big5.ce.cn/gate/big5/blog.ce.cn/html/25/106825-19997.html.

網址 4:http://www.oreilly.com.tw/column_editor.php?id=e137.

網址 5:http://tomcat.apache.org/tomcat-5.5-doc/printer/windows-service-howto.html.

Java 如何將 TEXT 文字檔轉換成 PDF 檔案

在 Java 程式中,

若要將 TEXT 文字檔轉換成 PDF 檔案,

可以利用 iText 套件,

程式範例, 如下 :
 程式碼
File f1 = new File( request.getRealPath("") + "/tom.pdf" );

// 建立 PDF Document 物件
Document document = null;
int vPageWidth = (int)(Math.round(Double.parseDouble(request.getParameter("pagewidth")) * 72));
int vPageHeight = (int)(Math.round(Double.parseDouble(request.getParameter("pageheight")) * 72));

if( request.getParameter("pagewidth") != null && request.getParameter("pageheight") != null )
{
// 設定 Page 範圍
Rectangle pdfPage = new Rectangle( vPageWidth
, vPageHeight
);

// 建立 PDF Document 物件, 且紙張設定以 page 物件為主
document = new Document( pdfPage, 10, 10, 10, 10 );
}
else
document = new Document();

try
{
// 將 PDF Document 物件輸出到檔案
PdfWriter.getInstance(document, new FileOutputStream( request.getRealPath("") + "/tom.pdf"));

// 開啟 PDF 檔案
document.open();

// 行距大小
float vLineSize = 10;

// 字型: 細明體
BaseFont bf = BaseFont.createFont( request.getRealPath("") + "/mingliu.ttc,0"
, BaseFont.IDENTITY_H
, BaseFont.EMBEDDED
);

// 設定字型大小 (比行距小一點)
Font font = new Font( bf, vLineSize - 1, Font.NORMAL );

// 讀取 TEXT 檔案 (設定編碼為 UTF-8)
try
{
String str;
boolean vPushName = false;

// 讀取來源檔案
BufferedReader br = new BufferedReader( new InputStreamReader( new java.net.URL(vURL).openStream()
, "UTF-8"
)
);

while( (str = br.readLine()) != null )
{
// 讀到換頁符號, 自動換頁
if( str.indexOf("\f") > -1 )
{
document.newPage();
document.add( new Paragraph( vLineSize, str.substring(1), font ) );
}
else
{
// 繪製資料
document.add( new Paragraph( vLineSize, str, font ) );

// 空白列
if( str.length() == 0 )
document.add( new Paragraph( vLineSize, "\n", font ) );
}
}

// 釋放資源
br.close();
}
catch( Exception e )
{
out.println( e.toString() );
}

// 顯示 PDF 網頁
response.sendRedirect( "tom.pdf" );
}
catch(Exception pdfErr)
{
out.println( "輸出 PDF 錯誤 !!" );
}

// 關閉 PDF 檔案
document.close();

以上, 這樣不管任何文字檔, 都可完整地轉換且格式仍是對齊的 PDF 檔.

Java 字元集列表 (Charset List)

最近為了把 Oracle 加密的資料, 拋轉到 Java 程式, 被語系字元集搞的傷腦筋,

而在解決問題的過程中, 發現這個網頁不錯,

它列舉了許多 Java 的字元集,

各位可以參考看看,

網址 : http://java.sun.com/j2se/1.4.2/docs/guide/intl/encoding.doc.html.

Tomcat Web Server 存取 Network Drive (網路磁碟機) 的檔案

我是利用下面這段 JSP 程式, 檢查是否可存取網路磁碟的檔案 :
 程式碼
<%@page import="java.io.*" %>
<%@page contentType="text/html;charset=Big5" %>
<%
File f1 = new File( "\\network_drive\software\Data.txt" ); // 路徑表示用 UNC
if ( f1.exists() )
out.println( vFile + " <font color='#0000FF'> is exists</font> !!" );
else
out.println( vFile + " <font color='#FF0000'> is not exists</font> !!" );
%>

若使用 "本機系統帳戶" 啟動 Web Server :


則 Web Server 上的網頁程式 (如:JSP) 會抓不到檔案 :


所以, Web Server 上的網頁程式, 若要存取網路磁碟的檔案, 必須使用登入網路磁碟相同的 OS User 來啟動 Web Server, 詳細情形, 如下 :

1) 建立一個與 "登入網路磁碟機相同的 OS User" :


2) 這個 OS User, 必須擁有 "Administrators" 權限 (即使是 Power User 也不可) :


3) 開啟 Apache Tomcat 的內容, 修改登入的身分, 由 "本機系統帳戶", 改為 "新建的 OS User" :


4) 用 "新建的 OS User" 啟動 Apache Tomcat :


5) 執行 JSP 程式, 網路磁碟機上的檔案可以存取了 :

HTML 沒有圖片, 不顯示 X 的顯示方式

在網頁沒有圖片時, 若不要顯示 X 的方式,

除了用程式判斷的方式之外,

也可以利用 onError event 去變更 Image 的顯示來源, 如下範例 :
 程式碼
<html>
<body>
<image src="1.JPG" onError="this.src='noImage.png';" />
</body>
</html>

Apache Tomcat 架設虛擬路徑 (一台電腦架多個網站)

針對 Apache Tomcat Web Server 部分,

若一台電腦, 想架設多個網站,

可以透過不同虛擬路徑來達成,

如 :
http://127.0.0.1:8080/AAA 指定到 C:\Test 實際目錄
http://127.0.0.1:8080/BBB 指定到 D:\Temp 實際目錄

設定如下 (以 Tomcat 5.0.28 說明) :

1) 輸入 http://127.0.0.1:8080 (8080 是預設, 看你當時安裝設定 Port 為多少), 然後點選 "Tomcat Administration" :


2) 輸入 Tomcat admin 的帳號 / 密碼 :


3) 選擇 Service 下的 "Host" :


4) 選擇 Host Action 為 "Create New Context", 來建立一個虛擬路徑 :


5) 輸入網頁的 "實際路徑", "虛擬路徑", 然後按 "Save" :


6) 登出, 然後重新啟動 Apache Tomcat 服務 :


若要第二個虛擬路徑, 則重複上述步驟即可.

希望對各位有所幫助.

在 Linux 安裝 Tomcat Web Server

如何在 Linux 上安裝 Tomcat Web Server, 在此推薦兩篇不錯的文章.

這篇寫的較簡單 :
http://home.so-net.net.tw/idealist/servlet/Tomcat.html

這篇有考量到安全性問題 :
http://wzl.idv.tw/index.php?title=linuxac_ar_ep_tomcat&more=1&c=1&tb=1&pb=1

Java iText 如何設定 PDF 行距

Java 在利用 iText 產生 PDF 時,

若只是利用 document.add( new Paragraph(str) ); 輸入段落資料,

在同樣的紙張大小, iText PDF 的行數會比正常情況少一些,

這是由於行距過大而造成的,

其實, 在 iText 中可以設定行距 (Leading), 如下 :
 程式碼
document.add( new Paragraph(行距數值, str) );

這樣, 就可以解決行距的問題了.

重新啟動 Tomcat Apache Web Server on Windows

如何在 Windows 中, 重新啟動 Tomcat Apache Web Server,

其實還蠻簡單的,

首先, 先到 "電腦管理員" :


然後, 選擇 "服務", 選擇右邊的 "Apache Tomcat", 按下上邊的 "停止服務" 鈕 :


等完全停止後, 再按上邊的 "啟動服務" 鈕即可 :

為何在 IE 直接開啟 Excel 檔會是亂碼

遇到這個問題, 是 IE Browser 的問題,

若用 Firefox 直接開啟 Excel, 會出現 "開啟" or "儲檔" 的訊息框,

對於此問題,

若是用 Tomcat Web Server 的話,

可以更改 web.xml 檔案,

增加下面設定即可.
 程式碼
<mime-mapping>
<extension>xls</extension>
<mime-type>application/vnd.ms-xls</mime-type>
</mime-mapping>
Related Posts Plugin for WordPress, Blogger...