top
Loading...
JSP與Servlet
綜述:Java Servlet是JSP技術的基礎,而且大型的Web應用程序的開發需要Java Servlet和JSP配合才能完成。現在許多Web服務器都支持Servlet,即使不直接支持Servlet的Web服務器,也可以通過附件的應用服務器和模塊來支持Servlet,這得益于Java的跨平臺特性。另外,由于Servlet內部以線程方式提供提供服務,不必對于每個請求都啟動一個進程,并且利用多線程機制可以同時為多個請求服務,因此Servlet的效率非常高。

但它并不是沒有缺點,和傳統的CGI、ISAPI、NSAPI方式相同,Java Servlet也是利用輸出HTML語句來實現動態網頁的,如果用它來開發整個網站,動態部分和靜態頁面的整合過程將變得無法想象。這就是SUN還要推出JSP的原因。

如何正確理解servlet?

servlet的基本概念

一、Servlet的結構


在具體掌握servlet之前,須對Java語言有所了解。我們假設讀者已經具備一定的Java基礎。在Servlet API中最重要的是Servlet接口(interface),所有的servlets都必須實現該接口,途徑有很多:一是直接實現該接口,二是通過擴展類(class)來實現,如 HttpServlet。 這個Servlet接口提供了servlet與客戶端聯系的方法。Servlet編寫者可以在他們開發 servlet程序時提供更多一些或所有的這樣方法。

當一個servlet接收來自客戶端的調用請求, 它接收兩個對象:一個是ServletRequest,另外一個是ServletResponse。這個ServletRequest類概括從客戶端到服務器之間的聯系,而 ServletResponse類概括從servlet返回客戶端的聯系。

ServletRequest接口可以獲取到這樣一些信息,如由客戶端傳送的闡述名稱,客戶端正在使用的協議,產生請求并且接收請求的服務器遠端主機名。它也提供獲取數據流的ServletInputStream, 這些數據是客戶端引用中使用HTTP POST 和 PUT 方法遞交的。一個ServletRequest的子類可以讓servlet獲取更多的協議特性數據。例如:HttpServletRequest 包含獲取 HTTP-specific頭部信息的方法。

ServletResponse接口給出相應客戶端的servlet方法。它允許servlet設置內容長度和回應的mime類型,并且提供輸出流ServletOutputStream,通過編寫者可以發回相應的數據。ServletResponse子類可以給出更多protocol-specific內容的信息。 例如:HttpServletResponse 包含允許servlet 操作HTTP-specific頭部信息的方法。

上面有關類和接口的描述,構成了一個基本的Servlet框架。HTTP servlets有一些附加的可以提供session-tracking capabilities的方法。servlet編寫者可以利用這些API,在有他人操作時維護servlet與客戶端之間的狀態。
作者:http://www.zhujiangroad.com
來源:http://www.zhujiangroad.com
北斗有巢氏 有巢氏北斗