Java Drp項目實戰——Servlet,drpservlet

來源:互聯網
上載者:User

Java Drp項目實戰——Servlet,drpservlet
由來

 

在講解Servlet之前需要先介紹一個詞語CGI即Common GatewayInterface是通用閘道介面的意思,它提供一個電腦程式同HTTP協議或者WWW服務的介面,也就是人機互動介面的意思。Web應用運行在伺服器上,用戶端的請求,剛開始,是通過CGI程式實現資料在Web上的傳輸,但是對於用戶端做出的每個請求,必須建立CGI程式的一個新執行個體,這將佔用大量的記憶體,正是為瞭解決這個問題,我們的Servlet應運而生。

 

 

Servlet是java編寫的一個應用程式,在伺服器上運行,處理請求的資訊並將其發送到用戶端,所以它的名字的由來是Server+Applet。對於用戶端的多次請求,Servlet的執行個體只需要建立一次,因此節省了大量的記憶體,Servlet在初始化後即駐留在記憶體中,因此每次作用請求時無需再執行個體了。

 

 

 

 

應用體繫結構

 

Servlet容器將Servlet動態載入到伺服器上,HTTPServlet使用HTTP請求和HTTP響應與用戶端進行互動。因此Servlet容器支援要求和相應所用的HTTP協議。Servlet應用程式體繫結構:


 

說明用戶端對Servlet的請求首先會被HTTP伺服器接收,HTTP伺服器將客戶的HTTP請求提交Servlet容器,Servlet容器調用相應的Servlet,Servlet作出的響應傳遞到Servlet容器,並進而由HTTP伺服器將響應傳輸給用戶端。HTTP伺服器提供靜態內容並將所有用戶端對Servlet作出的請求傳遞到Servlet容器。

 

在上一篇文章中我們瞭解過omcat,它是一個小型的輕量級應用伺服器,在中小型系統和並發使用者不是很多的情況下被廣泛應用,和IIS、Apache一樣,具有處理HTML的功能,同時我們也學過,它還是一個Servlet和JSP的容器,對於中,Tomcat就是HTTP伺服器和Servlet容器兩個部分的組合。

 

 

生命週期

 

Servlet的生命週期如:

 


 

 

Servlet運行在Servlet容器中,其生命週期由容器來管理。Servlet的生命週期通過javax.servlet.Servlet介面中的init()、service()和destroy()方法來表示。

 

載入和執行個體化

 

Servlet容器負責載入和執行個體化Servlet,這項操作一般是動態執行的。。當Servlet容器啟動時,或者在容器檢測到需要這個Servlet來響應第一個請求時,建立Servlet執行個體。下面我們介紹下,容器是如何動態執行個體化Servlet的,當Servlet容器啟動後,它必須要知道所需的Servlet類在什麼位置,Servlet容器通過類載入器載入Servlet類,成功載入後,容器建立Servlet的執行個體。因為容器是通過Java的反射API來建立Servlet執行個體,調用的是Servlet的預設構造方法(即不帶參數的構造方法),所以我們在編寫Servlet類的時候,不應該提供帶參數的構造方法。

 

 

 

初始化

 

容器將調用Servlet的init()方法初始化這個對象(在web.xml中<servlet>標籤下配置)。初始化的目的是為了讓Servlet對象在處理用戶端請求前完成一些初始化的工作,如建立資料庫的串連,擷取配置資訊等。對於每一個Servlet執行個體,init()方法只被調用一次。

 

 

請求處理

 

Servlet容器調用Servlet的service()方法對請求進行處理,傳遞請求和響應對象作為參數,service()方法獲得關於請求對象的資訊,處理請求,訪問其他資源,獲得需要的資訊,service()方法使用響應對象的方法,將響應傳回Server,最終到達用戶端。service()方法可能啟用其它方法以處理請求,如doGet()或doPost()或程式員自己開發的新的方法。

 

服務終止

 

當容器檢測到一個Servlet執行個體應該從服務中被移除的時候(一般當Server關閉時),容器就會調用執行個體的destroy()方法,以便讓該執行個體可以釋放它所使用的資源。在destroy()方法調用之後,容器會釋放這個Servlet執行個體,該執行個體隨後會被Java的垃圾收集器所回收。如果再次需要這個Servlet處理請求,Servlet容器會建立一個新的Servlet執行個體。

 

 

 

注意

 

在整個Servlet的生命週期過程中,建立Servlet執行個體、調用執行個體的init()和destroy()方法都只進行一次,當初始化完成後,Servlet容器會將該執行個體儲存在記憶體中,通過調用它的service()方法,為接收到的請求服務。

 

 

總結

 

使用Servlet會使我們開發出的系統可移植性更好、使我們的系統效能更加優越、也有效保障了安全性的問題,關於Servlet在項目中的使用,在後續的文章中我們會繼續介紹。


一本Java Web技術整合應用與項目實戰(JSP+Servlet+Struts2+Hibernate+Spring3)的完整版pdf電子書

pan.baidu.com/s/1gd62Ux9,自己去下吧,有點大
 
用JAVA開發DRP項目


中文有叫分銷系統的,就是說一個大型的生產加工企業,生產了很多東西,要賣出去,就需要記錄庫存,銷量,廢品等資訊。 此外需要記錄一下各地分銷商的資訊,做出這個產品需要哪些原料,原料還有多少,要買多少,去哪買等等。

當然,這隻是大概說一下,具體的藥根據不同的需求來盡興功能的擴充或減少
 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.