一、JSP的演變過程
早期JSP出現之前,所有網頁都是基于HTML所編寫出來,用戶訪問一個站點流程:
由于WEB服務器的功能限制,其存儲器中只能存儲數量有限的靜態HTML頁面,維護及其不便,CGI(Common Gateway Interface 公共網關接口)誕生:
到此表面上似乎CGI已經很完美,但是當多個用戶同時訪問該CGI的時候,其缺陷就會暴露無遺:每個用戶的請求,操作系統都會開辟一個進程,帶來很大開銷,基于Java平臺可以在運行時動態加載類,servlet誕生:

從上圖可以很容易的看出servlet的缺點--繁瑣,程序員每次要維護網站,都必須對sevlet源碼進行修改,然后編譯,部署,測試,JSP誕生:
JSP優點:
1. 提供模板機制,事實上JSP就是帶有一些特殊標記(稱為:模板)的HTML頁面;
2. 只要JSP有修改,JSP容器會自動檢測和重新編譯。
一、第一個JSP
1. 安裝環境:
安裝前先確保已經安裝JDK(下載),進行簡單的配置后便可安裝Tomcat,配置方法網上有很多介紹,在此不再贅述。Tomcat安裝完成后安裝開發工具,在這我選擇Myeclipse AllInOne版(下載),安裝Myeclipse有一個過程很漫長,耐心等待.(本人非常支持正版,但網上有很多注冊碼),安裝完在Myeclipse中對Tomcat進行配置,同樣配置教程網上有很多,不再贅述。
2. 創建一個JSP看看效果:
運行Myeclipse->File->New->Web Project起名HelloProject,展開項目看看都有些什么:
其中有個index.jsp這就是我們這個項目的入口,雙擊index.jsp打開將原來的程序替換為下面的程序(看不懂沒關系,復制粘貼就可以):
<%@taglib prefix="CoffeeTree" tagdir="/WEB-INF/tags"%>
<html>
<head>
<title>My first jsp</title>
</head>
<body>
<h1>This is my first jsp page</h1><hr>
I want to say:<CoffeeTree:hello/>
</body>
</html>
在WEB-INF目錄下新建文件夾tasgs,在tags目錄下新建文本文件hello.tag,在hello.tag中寫入:<b>hello everyone!</b>
啟動Tomcat,通過剛才配置的Tomcat發布該項目(如何發布網上介紹很多),打開瀏覽器,在地址欄輸入:http://localhost:8080/HelloProject如果顯示如下,那么恭喜你的第一個JSP創建成功了!

3. 上面程序的解釋:
前面提過其實JSP就是一個帶有特殊標簽的HTML頁面,特殊標簽什么意思呢?就是指不是HTML定義的標簽,JSP將這些特殊標簽放在一個叫“標簽庫”的地方:
<%@taglib prefix="CoffeeTree" tagdir="/WEB-INF/tags"%>
上面這句話就是告訴JSP解釋器,這張JSP中要用到些標簽的定義所在,并且告訴JSP解釋器,這些標簽有個標記CoffeeTree,即所有標簽前面都有個標記,如:<CoffeeTree:hello/>,tagdir告訴標簽放在什么地方,即WEB-INF下tags目錄下。當JSP解釋器遇到該標簽的時候就通過該路徑找到標簽的定義,并按照定義的約定去解釋。