<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>聰明的生活2 &#187; Java</title>
	<atom:link href="http://blog.yslifes.com/archives/category/program/java/feed" rel="self" type="application/rss+xml" />
	<link>http://blog.yslifes.com</link>
	<description>自己寫java程式的一些筆記</description>
	<lastBuildDate>Wed, 08 Feb 2012 02:26:15 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
	<atom:link rel='hub' href='http://blog.yslifes.com/?pushpress=hub'/>
		<item>
		<title>[Java]常用數字函數</title>
		<link>http://blog.yslifes.com/archives/992</link>
		<comments>http://blog.yslifes.com/archives/992#comments</comments>
		<pubDate>Tue, 07 Feb 2012 15:06:04 +0000</pubDate>
		<dc:creator>yku</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Java基礎入門]]></category>
		<category><![CDATA[教學]]></category>
		<category><![CDATA[String]]></category>

		<guid isPermaLink="false">http://blog.yslifes.com/?p=992</guid>
		<description><![CDATA[字串取小數幾位，不足碼補零 package com.creations.util; &#160; import java.math.BigDecimal; import java.text.DecimalFormat; import java.text.DecimalFormatSymbols; &#160; public class NumberUtils &#123; /** * 字串取小數幾位 * * @param str * 字串(數字) * @param precision * 小數幾碼 * @return 取好的字串 */ public static String MarkUpZero&#40;String str, int precision&#41; &#123; String maskup = &#34;00000000000&#34;; String retVal = str; &#160; retVal = StringUtils.nvl&#40;retVal, &#34;0&#34;&#41;; &#160; [...]]]></description>
		<wfw:commentRss>http://blog.yslifes.com/archives/992/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[Java]常用的字串String函數function</title>
		<link>http://blog.yslifes.com/archives/987</link>
		<comments>http://blog.yslifes.com/archives/987#comments</comments>
		<pubDate>Sat, 04 Feb 2012 11:45:00 +0000</pubDate>
		<dc:creator>yku</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Java基礎入門]]></category>
		<category><![CDATA[教學]]></category>
		<category><![CDATA[程式]]></category>
		<category><![CDATA[String]]></category>

		<guid isPermaLink="false">http://blog.yslifes.com/?p=987</guid>
		<description><![CDATA[字串或數字不足碼部份補零 &#160; /** * 數字不足部份補零回傳 * @param str 數字 * @param lenSize 數字最大長度,不足的部份補零 * @return 回傳補零後字串數字 */ public static String MakesUpZero&#40;int str, int lenSize&#41; &#123; return MakesUpZero&#40;String.valueOf&#40;str&#41;, lenSize&#41;; &#125; &#160; /** * 數字不足部份補零回傳 * @param str 字串 * @param lenSize 字串數字最大長度,不足的部份補零 * @return 回傳補零後字串數字 */ public static String MakesUpZero&#40;String str, int lenSize&#41; &#123; String zero [...]]]></description>
		<wfw:commentRss>http://blog.yslifes.com/archives/987/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[JAVA]聯絡我們表單程式後台</title>
		<link>http://blog.yslifes.com/archives/980</link>
		<comments>http://blog.yslifes.com/archives/980#comments</comments>
		<pubDate>Thu, 02 Feb 2012 15:32:00 +0000</pubDate>
		<dc:creator>yku</dc:creator>
				<category><![CDATA[ajax]]></category>
		<category><![CDATA[database]]></category>
		<category><![CDATA[easyui]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[jsp]]></category>
		<category><![CDATA[程式]]></category>
		<category><![CDATA[MySQL]]></category>

		<guid isPermaLink="false">http://blog.yslifes.com/?p=980</guid>
		<description><![CDATA[前一篇介紹過聯絡我們的的前台程式，這篇會介紹如何取得前台聯絡表單所留言的內容，使用的網頁使用framework有jquery及easyui，利用datagrid來顯示所有的資料列，而重要的留言內容則顯示於iframe裡，如此可排除大部份的html tag產生的問題。 這程式目前缺少了幾個功能，並不影響使用，不過如果有需求的人倒可以自己加入使用： 前台留言後自動發mail給某位管理者 後台可回覆留言給使用者，寄送mail或電話聯絡後寫下聯絡事項 最主要是JavaMail的使用，及資料寫入資料庫的應用。 因為是後台，所以還需要一個登入畫面，再登入成功後可以顯示後台menus，利用easyui的layout排列north為資訊狀態，center為datagrid顯示聯絡資料列表，而east為留言的內容。 而網頁使用Ajax傳送get或post參數給後端，而後端程式回傳json格式如下： total：總筆數，grid顯示分頁toolbar使用的，會計算總頁數等… success：成功執行則回傳true，否則則回傳false msg：回傳的訊息，可於回傳success為false時，帶上錯誤訊息顯示給使用者知道 rows：為一個陣列資料，每一筆資料都是一個json格式 程式碼如下： index.jsp登入後台 &#60;%@ page language=&#34;java&#34; contentType=&#34;text/html; charset=UTF-8&#34; pageEncoding=&#34;UTF-8&#34;%&#62; &#60;!DOCTYPE html PUBLIC &#34;-//W3C//DTD HTML 4.01 Transitional//EN&#34; &#34;http://www.w3.org/TR/html4/loose.dtd&#34;&#62; &#60;html&#62; &#60;head&#62; &#60;meta http-equiv=&#34;Content-Type&#34; content=&#34;text/html; charset=UTF-8&#34;&#62; &#60;title&#62;登入&#60;/title&#62; &#60;style type=&#34;text/css&#34;&#62; html,body{ margin:0; padding:0; height:100%; border:none } &#60;/style&#62; &#60;script type=&#34;text/javascript&#34; src=&#34;js/jquery-1.7.1.min.js&#34;&#62;&#60;/script&#62; &#60;script type=&#34;text/javascript&#34; src=&#34;js/jquery.form.js&#34;&#62;&#60;/script&#62; &#60;script type=&#34;text/javascript&#34;&#62; $(function(){ $(document).ready(function() { [...]]]></description>
		<wfw:commentRss>http://blog.yslifes.com/archives/980/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[JAVA]連絡我們表單程式前台</title>
		<link>http://blog.yslifes.com/archives/979</link>
		<comments>http://blog.yslifes.com/archives/979#comments</comments>
		<pubDate>Mon, 16 Jan 2012 13:49:56 +0000</pubDate>
		<dc:creator>yku</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[jsp]]></category>
		<category><![CDATA[架站]]></category>
		<category><![CDATA[程式]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[sql]]></category>

		<guid isPermaLink="false">http://blog.yslifes.com/archives/979</guid>
		<description><![CDATA[這是個很常在官方網頁看到的程式，在這種表單之前要與官方網站人員連絡，只能使用email，只是這email address會被人故意的收集，發送垃圾郵件，十分讓人困擾。 在表單的設計上，需要讓網站人員能知道是誰留了資料，所以連絡的方式一定要讓使用者留下，所以設計畫面如下：類型、標題、姓名、EMail、電話及內容。 按下送出，可存於資料庫裡，這裡可以再加一個send mail的動作，不過目前這個範例並沒有實作。 MySQL資料表 delimiter $$ &#160; CREATE TABLE `contact` &#40; `id` INT&#40;11&#41; NOT NULL AUTO_INCREMENT, `title` VARCHAR&#40;500&#41; DEFAULT NULL, `content` text, `user_name` VARCHAR&#40;45&#41; DEFAULT NULL, `user_email` VARCHAR&#40;45&#41; DEFAULT NULL, `user_tel` VARCHAR&#40;45&#41; DEFAULT NULL, `kind` VARCHAR&#40;45&#41; DEFAULT NULL, `postdate` TIMESTAMP NULL DEFAULT CURRENT_TIMESTAMP, `replydate` TIMESTAMP NULL DEFAULT NULL, PRIMARY KEY &#40;`id`&#41; &#41; ENGINE=MyISAM [...]]]></description>
		<wfw:commentRss>http://blog.yslifes.com/archives/979/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>c3p0 ConnectionPools設置與使用</title>
		<link>http://blog.yslifes.com/archives/975</link>
		<comments>http://blog.yslifes.com/archives/975#comments</comments>
		<pubDate>Mon, 12 Dec 2011 14:44:12 +0000</pubDate>
		<dc:creator>yku</dc:creator>
				<category><![CDATA[database]]></category>
		<category><![CDATA[Exception]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[opensource]]></category>
		<category><![CDATA[程式]]></category>
		<category><![CDATA[jdbc]]></category>
		<category><![CDATA[source]]></category>
		<category><![CDATA[sql server]]></category>

		<guid isPermaLink="false">http://blog.yslifes.com/archives/975</guid>
		<description><![CDATA[c3p0是一個基於JNDI-bindable DataSources(使用DriverManager-based)的很容易使用的JDBC驅動函數庫。 所以在使用c3p0時，還需要一個JDBC的Driver，才能使用，而c3p0的作用只是控制Database的Connection使用，舉個簡單的例子，當Connection被DataBase Server timeout斷線後，c3p0會自動多次去重新連線，避免程式就直接丟出SQLException。 這次剛好遇到Microsoft SQL Server 2005不知為何一直丟出以下訊息，才去找到c3p0來使用的，發生的原因似乎是SQL Server本身對JDBC的Connection TimeOut斷線、或是Connection數不夠。 I/O Error: Connection reset I/O Error: Software caused connection abort: recv failed 下面是一個範例，結果如下圖： package com.yslifes; &#160; import java.beans.PropertyVetoException; import java.sql.SQLException; &#160; import javax.sql.DataSource; &#160; import com.mchange.v2.c3p0.ComboPooledDataSource; &#160; public class DB &#123; private static ComboPooledDataSource ds = null; public static DataSource getPool&#40;&#41; throws java.sql.SQLException &#123; [...]]]></description>
		<wfw:commentRss>http://blog.yslifes.com/archives/975/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Java使用JDBC操作SQLite</title>
		<link>http://blog.yslifes.com/archives/971</link>
		<comments>http://blog.yslifes.com/archives/971#comments</comments>
		<pubDate>Sat, 08 Oct 2011 16:05:34 +0000</pubDate>
		<dc:creator>yku</dc:creator>
				<category><![CDATA[database]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[程式]]></category>
		<category><![CDATA[firefox]]></category>
		<category><![CDATA[jdbc]]></category>
		<category><![CDATA[sql]]></category>
		<category><![CDATA[sqlite]]></category>
		<category><![CDATA[資料庫]]></category>

		<guid isPermaLink="false">http://blog.yslifes.com/archives/971</guid>
		<description><![CDATA[SQLite是一個輕量級的資料庫系統，不需要安裝就可以使用，也可以十分容易的就內嵌於系統內，FireFox就內嵌SQLite，可以在FireFox上直接使用JavaScript來呼叫操作資料庫。 SQLite是由C語言撰寫而已，可以跨Linux及Windows等平台，在Java存取及操作上則可使用JDBC來連線SQLite。 在JDBC連線SQLite上，大概分成二種方式，一種是由Pure-Java來連結資料，另一種則是直接利用Java呼叫C語言撰寫的函式庫，不過在實測上直接呼叫C的函式庫的方式應該是比較快的，不過在無法找到合適C函式庫的平台則可使用Pure-Java版。 SQLiteJDBC目前查到這個版本是比較有在更新，而且在使用上跟一般的JDBC幾乎是一樣的，上手程式十分簡單。 SQLiteJDBC可以由這裡下載，以下範例是由3.5.7版本製作，提供建立Table、移除Table、查詢、新增、刪除及修改等範例。 package com.izero.sqllite; import java.sql.*; &#160; import org.sqlite.SQLiteConfig; import org.sqlite.SQLiteDataSource; public class MyTest &#123; public Connection getConnection&#40;&#41; throws SQLException &#123; SQLiteConfig config = new SQLiteConfig&#40;&#41;; // config.setReadOnly(true); config.setSharedCache&#40;true&#41;; config.enableRecursiveTriggers&#40;true&#41;; &#160; &#160; SQLiteDataSource ds = new SQLiteDataSource&#40;config&#41;; ds.setUrl&#40;&#34;jdbc:sqlite:sample.db&#34;&#41;; return ds.getConnection&#40;&#41;; //ds.setServerName(&#34;sample.db&#34;); &#160; &#160; &#125; //create Table public void createTable&#40;Connection con &#41;throws SQLException&#123; [...]]]></description>
		<wfw:commentRss>http://blog.yslifes.com/archives/971/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>C# HttpWebRequest實作POST來取得網頁內容</title>
		<link>http://blog.yslifes.com/archives/943</link>
		<comments>http://blog.yslifes.com/archives/943#comments</comments>
		<pubDate>Tue, 17 May 2011 23:21:00 +0000</pubDate>
		<dc:creator>yku</dc:creator>
				<category><![CDATA[C#]]></category>
		<category><![CDATA[jsp]]></category>
		<category><![CDATA[程式]]></category>
		<category><![CDATA[c#]]></category>
		<category><![CDATA[csharp]]></category>
		<category><![CDATA[express]]></category>
		<category><![CDATA[Socket]]></category>
		<category><![CDATA[VisualStudio]]></category>

		<guid isPermaLink="false">http://blog.yslifes.com/archives/943</guid>
		<description><![CDATA[CSharp要取得網頁內容可以利用內建的WebBrowser來取用IE Container進行連線與資料的取得，WebBrowser實作了很多內容，像是Javascript、HTML parse等等，功能十分強大。 這個範例不使用WebBrowser，而是使用HttpWebRequest來取得遠端的html內容。 Web Server說穿了也就是一個Socket Server，只是Browser在與其溝通時使用了規定的規則而已，以下範例會模擬此規則傳送header來告知Web Server，假裝自己是Browser，而此也會利用cookieContainer來記錄傳輸過程的Session情況，如此登入後的Session就可以在往後的需求連線中被使用。 程式說明： Server端 取得post的參數test，並在Console及html內容裡輸出 。 當Session裡不存在save這個屬性時，設定此屬性，並在Console及html內容裡輸出Save Session訊息。 當Session的屬性save存在時，代表Session資訊是可被取得的，則會直接把內容輸出在Console及本身的html內容裡。 程式連續二次對Server進行要求，第一次會記錄Session的save屬性，而第二次就會直接輸出save資料內容。 程式碼：(JSP) &#60;%@ page language=&#34;java&#34; contentType=&#34;text/html; charset=utf-8&#34; pageEncoding=&#34;utf-8&#34;%&#62;&#60;%request.setCharacterEncoding&#40;&#34;UTF-8&#34;&#41;; %&#62; &#60;!DOCTYPE html PUBLIC &#34;-//W3C//DTD HTML 4.01 Transitional//EN&#34; &#34;http://www.w3.org/TR/html4/loose.dtd&#34;&#62; &#60;html&#62; &#60;head&#62; &#60;meta http-equiv=&#34;Content-Type&#34; content=&#34;text/html; charset=UTF-8&#34;&#62; &#60;title&#62;測試&#60;/title&#62; &#60;/head&#62; &#60;body&#62; &#60;% String data = request.getParameter&#40;&#34;test&#34;&#41;; System.out.println&#40;data&#41;; out.print&#40;data+&#34;&#60;br/&#62;&#34;&#41;; &#160; if&#40;session.getAttribute&#40;&#34;save&#34;&#41;==null&#41; &#123; session.setAttribute&#40;&#34;save&#34;,&#34;登入資訊&#34;&#41;; System.out.println&#40;&#34;Save Session!&#34;&#41;; out.print&#40;&#34;Save [...]]]></description>
		<wfw:commentRss>http://blog.yslifes.com/archives/943/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>JApplet與Web Server做溝通</title>
		<link>http://blog.yslifes.com/archives/934</link>
		<comments>http://blog.yslifes.com/archives/934#comments</comments>
		<pubDate>Tue, 26 Apr 2011 11:50:00 +0000</pubDate>
		<dc:creator>yku</dc:creator>
				<category><![CDATA[database]]></category>
		<category><![CDATA[eclipse]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[jsp]]></category>
		<category><![CDATA[程式]]></category>
		<category><![CDATA[applet]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[gson]]></category>
		<category><![CDATA[json]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[server]]></category>
		<category><![CDATA[Socket]]></category>
		<category><![CDATA[tomcat]]></category>

		<guid isPermaLink="false">http://blog.yslifes.com/archives/934</guid>
		<description><![CDATA[Applet除非是內部或自己使用時，可以直接使用JDBC來連接資料庫，而一般對外開放的服務如果讓Applet直接連接到資料庫，需要開port讓Clinet 的Applet來使用，在安全性上相對的十分危險。 此時可以利用一個中繼的Sokcet Server或是Web Server來當與資料庫連接的proxy代理服務器，如此Apllet只要連接Web Server，對Server提出需求，而Server會依需求與資料庫做溝通，並回傳Applet要求之資料，如此可以做成多層式的架構來解決Applet資料取得之問題。 範例設計上有一個輸入框JTextField可以輸入要傳給Server的資料內容，而下方的JTextArea是承接從Server回傳的資料內容，按鈕則可進行動作Action。 輸入傳送的字串後，按下”按我”可進行資料的傳送POST。 try &#123; &#160; com.yslifes.connect.WebModule web = new com.yslifes.connect.WebModule&#40;&#41;; //使用post把資料傳送到web server端 web.doPost&#40;&#34;http://localhost:8080/AppletGUIServer/Info.jsp&#34;, &#34;data=&#34;+getJTextField&#40;&#41;.getText&#40;&#41;+&#34;&#38;p=1&#34;, null, &#34;utf-8&#34;&#41;; //取回回傳的json資料 com.google.gson.JsonObject json = web.getJSON&#40;&#41;; getJTextArea&#40;&#41;.setText&#40;json.get&#40;&#34;msg&#34;&#41;.getAsString&#40;&#41;&#41;; &#160; &#160; &#160; &#125;catch&#40;Exception ex&#41; &#123; ex.printStackTrace&#40;&#41;; logger.info&#40;ex&#41;; &#160; &#125; 這裡使用到的WebModule可以參考HttpURLConnection來實作get及post動作。 在Console視窗可以看到傳送出去的資料內容： 而在WebServer方面，則可利用request來取得需要資料做處理，再回傳out.print給Applet。 &#60;%@ page language=&#34;java&#34; contentType=&#34;text/html; charset=UTF-8&#34; pageEncoding=&#34;UTF-8&#34; %&#62;&#60;% request.setCharacterEncoding&#40;&#34;utf-8&#34;&#41;; &#160; //取得傳來的參數 System.out.println&#40;&#34;data=&#34;+request.getParameter&#40;&#34;data&#34;&#41;&#41;; System.out.println&#40;&#34;p=&#34;+request.getParameter&#40;&#34;p&#34;&#41;&#41;; &#160; //回傳json [...]]]></description>
		<wfw:commentRss>http://blog.yslifes.com/archives/934/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Java寄送電子郵件-使用gmail帳號</title>
		<link>http://blog.yslifes.com/archives/930</link>
		<comments>http://blog.yslifes.com/archives/930#comments</comments>
		<pubDate>Tue, 19 Apr 2011 14:19:19 +0000</pubDate>
		<dc:creator>yku</dc:creator>
				<category><![CDATA[google]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[程式]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[board]]></category>
		<category><![CDATA[opensource]]></category>
		<category><![CDATA[thread]]></category>

		<guid isPermaLink="false">http://blog.yslifes.com/archives/930</guid>
		<description><![CDATA[JavaMail是個歷史悠久的寄送電子郵件Email套件，由Sun公司所開發（Oracle），因為電子郵件數年來並沒有多大的改變，所以一直都是十分方便的一個套件，使用方法可參考Java程式Mail、EDM(電子型錄)寄送這篇。 而現在有了另一個framework，是由Apache組職所提供的開放原始碼套件Apache Commons email，使用上更為簡單，而且支援度也很高，像是gmail要使用javamail來寄送，就需要設定繁雜的Sectury項目，而Apache commons email就顯的簡單許多，底下的範例就是使用gmail的smtp.gmail.com來當SMTP服務寄送信件的，我把它應用在之前的留言板，當有人留言時，就可以馬上接到信件的通知。 這範例需要的lib是Apache commons email，寄件的方法，需先建立一個Email主體，可以是SimpleEmail，寄送純文字，也可以是HtmlEmail，寄送html內容，也可以對Email主體進行attach附加文件的功能。 比較特別的是gmail需要使用到TLS或SSL加密，所以需要對Email主體設定setTSL為真及利用setAuthenticator來告知道驗證用的帳號及密碼。 原始碼如下： mail.properties host=smtp.gmail.com port=587 from=tyu@yslifes.com user=tyu@yslifes.com pwd=tyu123 sleep=100 fromName=yslifes Board Sender 這是寄Mail的Thread，寫成線程可以不用等待SMTP回報傳送結果，所以寄送成功與否並不會回傳到前端，如此可以減少前端等待寄Mail的時間。 package yslifes.mail.thread; &#160; import java.util.*; import org.apache.commons.mail.DefaultAuthenticator; import org.apache.commons.mail.EmailException; import org.apache.commons.mail.HtmlEmail; &#160; public class Sender extends java.lang.Thread &#123; private String content; &#160; private org.apache.log4j.Logger log; private String subject; private String to; private static [...]]]></description>
		<wfw:commentRss>http://blog.yslifes.com/archives/930/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>jsp簡單留言板</title>
		<link>http://blog.yslifes.com/archives/925</link>
		<comments>http://blog.yslifes.com/archives/925#comments</comments>
		<pubDate>Sat, 16 Apr 2011 13:34:05 +0000</pubDate>
		<dc:creator>yku</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[jsp]]></category>
		<category><![CDATA[opensource]]></category>
		<category><![CDATA[程式]]></category>
		<category><![CDATA[board]]></category>
		<category><![CDATA[database]]></category>
		<category><![CDATA[jdbc]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[source]]></category>
		<category><![CDATA[tomcat]]></category>

		<guid isPermaLink="false">http://blog.yslifes.com/archives/925</guid>
		<description><![CDATA[這個範例有新增留言、查詢留言及留言分頁顯示等功能，後台的管理還沒有建置完成，留言者需要填入標題、顯示名稱、電話、信箱及留言內容，其中電話與電子信箱不顯示在留言列表中，電話及信箱可以為之後後台回覆寄信連絡使用。 當然這還有需多可以增加的功能，像是留言通知、隱私留言、留言刪除等，之後會再慢慢增加。 資料庫使用MySQL資料庫，使用JDBC來連接資料庫(DataSource方式)，記錄檔則是使用log4j。 在新增留言部份，submit之前會先檢查是否有未填欄位，如果檢查通過則會自動建立IFrame來給這個form的target使用，新增完成後會自動回到留言列表的頁面。 查詢留言會對資料的標題及留言內容進行比對，有相同資料就會顯示查詢的結果，如果想進階做一個Search-Engine則可以參考建立自己的搜尋引擎。 最後也就是最重要的資料顯示功能，這裡包含了一個分頁模組，傳入的參數會有s，查詢條件，及p，目前頁數。 範例檢視 資料表 CREATE TABLE `threads` &#40; `post_id` INT&#40;11&#41; NOT NULL AUTO_INCREMENT, `post_name` VARCHAR&#40;150&#41; NOT NULL, `post_title` VARCHAR&#40;300&#41; DEFAULT NULL, `post_mail` VARCHAR&#40;100&#41; DEFAULT NULL, `post_tel` VARCHAR&#40;100&#41; DEFAULT NULL, `post_desc` text, `post_reply` INT&#40;11&#41; DEFAULT NULL, `post_show` VARCHAR&#40;1&#41; DEFAULT '1', `post_state` VARCHAR&#40;1&#41; DEFAULT '1', `create_time` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, `create_id` INT&#40;11&#41; [...]]]></description>
		<wfw:commentRss>http://blog.yslifes.com/archives/925/feed</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
	</channel>
</rss>

