JSP是一個B/S結構的web應用程序。這里我們先來解釋一下什么是B/S結構,B/S 既瀏覽器(Browser)/服務器(Server)。
下面我們來編寫一個JSP的web應用程序:
我們先打開Myeclipse,點擊 File ----> New ----> Web Project

在 Project Name 處為我們創建的jsp web工程起個名字,可以自己定,這里我們起: fristJSP
同時將下面的 Java EE 5.0 選中,用最新的JDK版本 點擊 Finish 按鈕。

在創建一個JSP頁面,對準 WebRoot右鍵 ---> NEW --->JSP(Advanced Templates)

在File Name 處為 新建的JSP頁面起個名字,我們這里叫 showMes.jsp 點擊 Finish 按鈕。

雙擊 WebRoot ---> index.jsp 頁面

我們需要在 index.jsp 上顯示“這是我的第一個JSP Web 應用程序”的字樣,所以需要將 index.jsp頁面的代碼修改改成如下形式:

2

3

4

5

6

7

8

9

10

11

注意別忘了保存或者按下 ctrl + s 鍵進行保存。^_^
接下來我們可以在工具欄中找到這樣 一個按鈕,我們點擊一下。這個按鈕是用來部署web應用程序的以后我們會經常用到它。
我們可以通過下圖中的 Project 選擇所需要部署的項目,并點擊 Add 按鈕。
在彈出的界面中的Server 選擇 Tomcat6.x 并點擊 Finish按鈕。
這時我們會看到下面的界面 ,顯示部署成功:Successfully deployed 點擊 OK 按鈕。
在工具欄中找到如下的圖標,并在點擊后面的小黑色箭頭,在彈出的菜單中選擇 Tomcat6.x ---> start
這時我們會發現 Tomcat 啟動了。
接下來打開 IE 瀏覽器 輸入 http://localhost:8080/fristJSP 回車,會看到如下的界面:
我們現在可以通過點擊下圖中的紅色方框按鈕停止Tomcat服務器
先看看在我們訪問http://localhost:8080/fristJSP的時候究竟發生了什么:
1、咱們這里使用了http://localhost:8080/,瀏覽器就會以http協議,去訪問localhost的8080端口,localhost是本機的別名,8080是tomcat的默認端口,即使現在不太理解也沒有關系,只要知道http://localhost:8080/是你這臺機器上運行的tomcat就可以了。
2、到了服務器的位置,瀏覽器會向服務器發送一個請求(request)。這個請求包含著http協議規定格式的數據,現在咱們不需要去計較細節,先把注意力集中在流程上。
3、接下來,服務器接收請求,分析請求中包含的數據。這個分析過程也是定義在http協議中的,像我們這里請求的是/index.jsp這個jsp頁面,服務器就會去webapp/ROOT目錄下去查找這個index.jsp,然后對它進行解析,運行。
也許你會在這很困擾,會問我沒有運行 index.jsp頁面呀,我只是在地址欄中輸入了 http://localhost:8080/fristJSP 。當我們在地址欄中輸入地址
http://localhost:8080/fristJSP 時Tomcat服務器會自動的去尋找 index.jsp 這個首頁(打開網頁自動運行顯示的頁面成為首頁)。這個默認首頁是可以修改的,我們可以打開 WebRoot ---> WEB-INF---->web.xml 文件 會發現有下面這段代碼:



我們可以將index.jsp改成showMes.jsp頁面,此處要注意需要改得頁面必須是在你工程中存在的,我們再次啟動Tomcat服務器,在IE地址欄中輸入 http://localhost:8080/fristJSP 時就會發現現在默認顯示的是showMes.jsp頁面的內容了。
4、在服務器的操作結束后,會生成一個響應(response),并把這個響應發送回客戶機器的瀏覽器。
5、現在瀏覽器接收了響應,開始進行解析與運行,最后把結果顯示給用戶,這就成為我們最后看到的結果。
這就是http協議的基本流程了,像我們看到的一樣,瀏覽器與服務器之間完全是依靠請求和響應聯系起來的。這就像是在打乒乓球,瀏覽器發過一個球來,服務器接到球,反手再打回去。雙方隊員之間不會有其他接觸,所有的交流就是那顆小球。
這也暗示了http中另一個重要的特性:短連接,無狀態。
短連接是指:請求響應一次,服務器就關閉與瀏覽器之間的網絡連接。
無狀態是指,任意兩次請求響應之間,沒有直接的聯系。
瀏覽器發出一個請求,服務器才能返回一個響應。一個請求對應一個響應,每個過程都是完全獨立的。并且服務器端是被動的,只能接收請求,然后向請求的原發地發送響應,如果沒有請求,服務器沒辦法憑空發一個響應出去,因為它不知道客戶的機器在什么地方。瀏覽器和服務器之間也不會拉一根電話線,隨時保證暢通,每次請求處理完之后,服務器就會立刻忘掉上次請求的信息。這樣做的好處是處理簡單,連接用完就斷,不會浪費資源,壞處是在進行復雜操作的時候,因為沒法保證用戶當前的狀態,只好把表示狀態的信息不斷的在瀏覽器和服務器之前傳來傳去,造成了操作的復雜。
其實一切都是這么簡單,只要能了解它的運行原理,我們就可以很容易的掌握JSP的編程了。