一,Servlet開發
用戶在瀏覽器中輸入一個網址并回車,瀏覽器會向服務器發送一個HTTP請求。服務器端程序接受這個請求,并對請求進行處理,然后發送一個回應。瀏覽器收到回應,再把回應的內容顯示出來。這種請求—響應模式就是典型的Web應用程序訪問過程。
? ? ???JavaWeb應用程序中所有的請求—響應都是由Servlet完成的。Servlet是JavaWeb的核心程序,所有的網址最終都交給Servlet處理。Servlet并沒有main之類的執行方法。當用戶訪問服務器的時候,Tomcat是通過調用Servlet的某些方法來完成整個處理過程的。?
?Servlet是什么
? ?一個Servlet程序就是一個實現了特殊接口的Java類,它由支持Servlet的Web服務器調用和啟動運行。一個Servlet程序負責處理它所對應的一個或一組URL地址的訪問請求,并接收客戶端發出的訪問請求信息和產生響應內容。
Servlet程序可以完成普通Java程序所能完成的大多數任務:,
1,獲取客戶端通過HTML的FORM表單提交的數據和URL后面的參數信息
2,創建對客戶端的響應信息內容,
3,訪問服務器端的文件系統
4,連接數據庫并開發基于數據庫的應用,
5,調用其它的Java類
Servlet工作流程
瀏覽器提交的請求是遵循HTTP協議的文本。這段文本由服務器也就是Tomcat接收并解析,封裝成了HttpServletRequest類型的request對象。所有的HTTP頭數據都可以通過request相應的方法查詢到。Tomcat同時把輸出流封裝成為HttpServletResponse類型的response對象,通過設置response對象可以控制輸出的內容。在請求—響應的這個過程中,Tomcat把request對象、response對象作為參數,調用Servlet的相應方法,例如doPost(request,response)、doGet(request,response)等。
Servlet接口
Servlet是一種實現了javax.servlet.Servlet接口的類。Servlet接口規定了特定的方法來處理特定的請求。Servlet規范是建立在HTTP規范基礎上的。HTTP 1.1 規范支持OPTIONS、GET、POST、HEAD、PUT、DELETE、TRACE等7中訪問方式,其中最常用的就是GET和POST了。
GET:表示查詢信息,URL中可以附帶少量的參數信息,但是URL總長度不能超過255個字符,并且參數會顯示在瀏覽器地址欄。
POST:表示提交信息,一般用于提交大數據信息或者文件,提交的內容不受長度限制,并且不會顯示在瀏覽器地址欄中。
?
Servlet工作流程
利用Servlet完成的Web應用的實際工作流程是通過Tomcat服務器發布服務,客戶端與服務器端之間的交互遵循Http協議完成的。具體工作流程如下:
客戶端瀏覽器向服務器端發送請求。
1,服務器端由Tomcat服務器提供的Servlet容器解析接收到的請求。
2,通過Web應用程序的配置文件web.xml,解析到對應執行的Servlet。
3,Servlet完成客戶端發送的請求邏輯,并完成向客戶端發送的響應內容。
4,由Tomcat服務器提供的Servlet容器向客戶端瀏覽器進行響應。
一,Java Web應用設計模式:
?
1)采用JSP+JavaBean的技術
JSP獨自響應請求并發送處理結果給用戶,數據通過JavaBean來處理,是JSP技術發展初期經常采用模式1,適用于一些小型開發項目。
?
2)采用JSP+JavaBean+Servlet技術(MVC模型)
MVC(Model-View-Controller)模型,適用于中型以上開發項目
“模型-視圖-控制器”關系圖:
?
MVC構架設計圖:
?
?
二,Servlet中的請求轉發機制
Web應用中,常由Servlet來充當調度員的角色,把這樣的Servlet叫控制器,可以將請求轉發給另一個Servlet或JSP頁面,由它們對請求作進一步處理,并產生對請求的響應。Servlet中實現請求轉發方式:
1)共享一個request:request.getRequestDispacher(“xxx.jsp/xxxservlet”).forword(requet,response);
2)重定向:
Request.sendRedict(“xxx.jsp/xxxservlet””);
?
三,運用MVC模式開發WEB應用的步驟
1)定義bean來表示數據和封裝業務邏輯
a)定義數據Bean來表示需要顯示給用戶的結果
b)定義業務Bean來封裝業務邏輯,BeanDao.
2)使用Servlet處理用戶請求
a)根據用戶請求,將數據的處理結果寫入bean,并將其存于請求或會話的上下文中
b)通過請求轉發的形式,將請求轉發到合適的頁面,servlet不需要創建任何輸出,輸出由JSP頁面完成
2)JSP頁面輸出結果: 從bean中獲取數據輸出
?
總之:
① JSP作界面
② Servlet接受用戶請求,并作初步處理,然后將請求進行轉發
③業務處理借助Bean