2011年1月22日 星期六

JSP 教學 - 動態輸出 HTML 樹狀結構

HTML 的樹狀結構東常有很多做法,在很多網站上譬如說部落格裡以時間來顯示文章的部份

即是一種樹狀結構,一般在 HTML裡能讓使用者點及某標籤及展開內容的作法

通常都是透過 CSS 中的 display:none; 來達成,以下範例以 span 標籤為例

以下的水藍色地假設很重要喔 等等 JSP 程式會用到

<span id="spanID" onClick='showhide('show')' >//假設這邊叫標頭
    <p>點我展開</p>
<span>
<span id="show" style="display:none;">  //假設這邊叫內容

<ul>
        <li><a href="http://tw.yahoo.com/">YAHOO</li>
        <li><a href="http://www.google.com.tw/">Google</li>
        <li><a href="http://www.youtube.com/">Youtube</li>

</ul>
</span>

2011年1月19日 星期三

Struts 教學 - Eclipse 環境配置

來介紹一下如何在 Eclipse 中建置 J2EE 的 Struts 框架,

拿來和 Netbeans 比較,Eclipse 在針對眾多的 Framework 的開發比較麻煩點   之前用 Netbeans 開發時

在建置 WEB 專案就可以選擇要使用的框架,並且將其配置完成連開發過程都幫你用好

Eclipse 也可以達到這樣的情形,但需要一些 plug-in  但如果對於一個初學者來說

我是建議先暫時不要用 Plug-in,沒用還是可以開發的只是麻煩點而已

但你可以學到更多東西,應該說你會更熟悉程式碼,本篇就不用 Plug-in 來配置

如果要用的話可以去 google 上找一下  "easystrut"

首先先到 http://struts.apache.org/download.cgi 下載最新版  Struts 1.3.10

2011年1月16日 星期日

JSP 教學 - JFreeChart 製作及中文亂碼問題

JFreeChart 唯一個能運用 JAVA 程式來繪製出各種多樣化的報表圖型,如圓餅圖,長條圖等

此為它的官網,http://www.jfree.org/jfreechart/ 先將壓縮檔下載下來後解壓縮

我是下載 jfreechart-1.0.13 版的,解壓縮後在目錄下的 lib 目錄中的所有JAR複製到WEB專案

路徑下的 /WEB-INF/lib 中,其實只要兩個就夠用啦 jcommon-1.0.16.jar jfreechart-1.0.13.jar


佈置完成後先可以用個 JSP 來測試一下,在 JSP  中寫入 img 標籤

<img src='/vote/showJFreeChart' alt='投票統計'/>  //vote為我的 WEB 專案的名稱
接著可以建置一個 Servlet 來動態產生圖形  showJFreeChart.java

以下來介紹一下最常見的圓餅圖:

2011年1月14日 星期五

JSP 教學 - 檔案讀取與寫入

測試目標:能在網頁上讀取檔案,並且能修改檔案內容,

注意  以下範例是針對一個放在根目錄下的檔案進行測試

首先先來看看網頁如何呈現,那以下我分兩種來說明ㄧ個是針對字串依個是針對二元碼作處理

在JSP中寫入一些 scriptlets

<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="UTF-8"%>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
//省略 HTML....
<%
     //透過 application 隱含物件 取得真實路徑
  String path = application.getRealPath("simple.txt");  
  java.io.BufferedInputStream bi = new java.io.BufferedInputStream(new java.io.FileInputStream(path));
  byte[] b = new byte[1024];  //1KB
  int num = 0;
  while((num = bi.read(b)) != -1){

2011年1月7日 星期五

【Java Web】Tomcat 及 Eclipse 開發環境

最近開始學 Eclipse,因為 Netbeans 實在是有點慢.... 但是兩個比起來的話

還是互有優缺點 Eclipse 主要是採用依個外掛的結構方式,並提供依個基礎的開發平台

而使用者可以依照不同的開發任務去安裝不同的開發套件 (Plug-in)

先介紹一下如何使用 Eclipse 搭配 Tomcat 6.0 來開發 Java WEB 的應用程式
首先先下載 Tomcat 的安裝程式,下載網址 http://tomcat.apache.org/download-60.cgi

基本上選擇下載 ZIP 檔即可,在該網頁的 Core 的下一行  下載完並解壓縮後選擇一個目錄放置即可,例如 C://

完成後進入 bin 目錄下找到 startup.bat 這個批次檔,雙擊後即可啟動 Tomcat


2011年1月3日 星期一

JSP 教學 - kindeditor 介紹

kindeditor 也是類似於 fckeditor 的套件,為 google 的產品。


兩著比起來,kindeditor 的文字編輯樣板比較精簡好看,也提供各式各樣的樣板

其官網以及所有樣板如下:

http://www.kindsoft.net/ 和 http://www.kindsoft.net/ke/examples/




接下來介紹如何使用 kindeditor  ,首先先去下載最新版的主程式 kindeditor-3.5.2.zip

2011年1月1日 星期六

JSP 教學 - fckeditor 介紹

fckeditor 是提供文字編輯的模組,譬如一般在寫部落格文章或是論壇等

以下為他們的官方網站,可以上去學習一下 

http://ckeditor.com/

先來介紹一下如何在 Java Web 的環境中(以Netbeans 為例)使用 fckeditor

首先要下載兩個東西,先進入以下網址,並下載 2.3 版以及主文件  2.4.2

http://sourceforge.net/projects/fckeditor/files/FCKeditor.Java/

下載完畢並解壓縮後先來看看 2.3 的內容,最重要的是目錄底下的


web\WEB-INF\  這應該很熟西吧,先將這目錄下的 lib 複製到你專案下的 WEB-INF 中

2010年12月26日 星期日

JSP 教學 - 讀取HTML並輸出至網頁及亂碼處理

問題描述:
在部落格的自動建站中,如果使用者需要申請並建立部落格,可以將已經寫好的HTML
進行讀取並替換標籤的元素或是樣式等,並寫成一個 JSP 檔案,供使用者在網頁上瀏覽

首先先必須準備好你的HTML樣板並建立一個專們處理上述問題的類別

在使用者建立之後在後台進行呼叫,以下為 HomePageReplace.java
//import the class that you need...
public class HomePageReplace
{
    private HttpSession sess;
    private HttpServletRequest request;

    public HomePageReplace(){}
    //傳入HttpServletRequest及HttpSession 以便取得相關參數或路徑....等
    public HomePageReplace(HttpSession sess, HttpServletRequest request){
        //this.realPath = realPath;
        this.sess = sess;
        this.request = request;
    }
    //......some method

2010年12月24日 星期五

JSP 教學 - 文字段行

最近在寫部落格的模組,能讓使用者建立屬於自己的部落格

其中遇到一個問題就是如果使用者在撰寫文章時按下 Enter 鍵時,代表換行的意思

只是從後台的程式並無直接能夠知道使用者在哪邊有斷行

造成整篇文章幾乎都連在一起,以下介紹一下如何解決斷行已及偵測按下 Enter 的方法

斷行的問題在後台(例如: servlet) 可以先透過

String content = request.getParameter("參數");


content = content.replaceAll("\n", "<br />");

2010年12月22日 星期三

【C語言】Stack 堆疊實做

堆疊 .... 具有先進後出的特性,通常將資料放入推疊叫做 PUSH而將資料由堆疊中取出叫做 POP
在這邊分享一下我實做堆疊的程式


程式的實做有分三種,最簡單的是直接使用陣列製作,另一種是使用鏈結串列


而我以下的程式是以實做出 Stack (透過 struct )的方法實做堆疊的操作,如下

#define MAX_STACK_SIZE 10

typedef struct {
    int element[MAX_STACK_SIZE];
    int top;
}Stack;
//宣告 : Stack s;


以下為程式實做部份: