欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
J2EE企業(yè)級開(kāi)發(fā)學(xué)習筆記(7)

J2EE企業(yè)級開(kāi)發(fā)學(xué)習筆記(7)

Servlet

 

1、Servlet:被設計成在Web服務(wù)器上而非客戶(hù)機上可以處理Web客戶(hù)端傳來(lái)的HTTP請求,并發(fā)回一個(gè)合適的響應的Web組件。它能很好地執行這種功能,并只需要很少的資源就能發(fā)送這種功能。Web服務(wù)器通過(guò)Web容器來(lái)管理這些組件。

 

2、Servlet一般用途:簡(jiǎn)單的用作客戶(hù)和服務(wù)器往返傳遞信息的通道,此外,允許客戶(hù)端控制服務(wù)器添加或刪除Web頁(yè)面或文件(只要客戶(hù)端有足夠的清理權限,少見(jiàn))

 

3、Servlet最利于處理小型任務(wù):收集和驗證用戶(hù)輸入,但幾乎不進(jìn)行實(shí)際處理;協(xié)調輸出,但幾乎不直接生成動(dòng)態(tài)Web頁(yè)面內容;最少量的業(yè)務(wù)邏輯。

 

4、Servlet生命周期:

HTTP工作方式:請求-響應型模型。

Servlet擴展了兩個(gè)基本Servlet實(shí)現類(lèi)中的一個(gè):HttpServlet(常用)和GenericServlet.此2種Servlet都具有相同的生命周期。

生命周期使用了三種基本請求處理程序方法:init(初始化Servlet)、Service(為客戶(hù)端請求服務(wù))、destroy(銷(xiāo)毀servlet)。Service是GenericServlet的核心,但永遠不可以被重寫(xiě),而init和destroy方法總是可以被重寫(xiě),但很多情況下,Servlet不需要初始化或終止的特定對象或鏈接時(shí),可能不會(huì )用到這兩種方法。


 Servlet生命周期是順序圖:


5、多個(gè)線(xiàn)程可能同時(shí)調用通用的Servlet實(shí)例的Service方法,為避免這種情況可以執行SingleThreadModel接口,用于指示W(wǎng)eb容器在任意給定時(shí)間內只允許一個(gè)線(xiàn)程調用服務(wù)方法。缺點(diǎn):在Web服務(wù)器上部署Servlet時(shí),對服務(wù)器上同一時(shí)間段內允許存在的Servlet實(shí)例的總數量有顯著(zhù)影響,因此在執行SingleThreadModel接口會(huì )對容器分配資源的方式產(chǎn)生重大影響。優(yōu)點(diǎn):在Servlet可能需要改變非線(xiàn)程安全的信息或訪(fǎng)問(wèn)資源時(shí),執行該接口是合適的。最好不要試圖連接任意數量的Servlet方法的做法。


6、處理請求:Web容器接收Servlet請求->封裝接收數據到ServletRequest(javax.Servlet.ServletRequest)接口對象中->使用ServletRequest接口中的方法來(lái)查詢(xún)請求的對象。

  ServletRequest接口方法(常用):

  •      getCharactorEncoding:獲取請求的編碼格式信息
  •      isSecure:確定請求是否是通過(guò)安全通過(guò)發(fā)出的
  •      getParameter:用于檢索與命名參數類(lèi)型關(guān)聯(lián)的第一個(gè)參數的值。
  •      getParameterValues:用于檢索與命名參數類(lèi)型關(guān)聯(lián)的多個(gè)參數的值。
  •      httpServletRequest:基于Servlet請求的http方法

用法:

    HttpSession session=request.getSession(true);

    ...

    String loginID=request.getparameter("USERID");

    String loginPassword=request.getparameter("PASSWORD");

 

7、產(chǎn)生響應:一個(gè)請求引發(fā)一條響應。Servlet請求用ServletResponse響應對象被提供給一個(gè)Servlet,同時(shí)請求對象被作為一個(gè)參數傳遞給服務(wù)方法。在分別獲取了ServletOutputStream對象或PrintWriter對象的句柄后,可以分別采用二進(jìn)制格式或字符編碼格式編寫(xiě)輸出的內容。其他生成響應的方法:在任何可能的地方使用JSP和JavaBeans技術(shù),Servlet只負責轉請求到JSP頁(yè)面,為JSP頁(yè)面成功完成頁(yè)面動(dòng)態(tài)數據加載而協(xié)調必要的項目。

   ServletResponse接口方法(常用):

  •    getOutputStream:獲取ServletOutputStream對象用于二進(jìn)制數據的句柄
  •    getWriter:獲取PrintWriter對象用于字符數據的句柄。
  •    setBufferSize:為響應建立內存緩沖區的尺寸,以便更好地調整服務(wù)器的性能。
  •    flushBuffer:更新當前緩沖區中的內容。
  •    httpServletResponse:基于Servlet響應的HTTP方法。

用法:

    PrintWriter out;

    ...

    response.setContentType("text/html");

    ...

    out=response.getWriter();

    out.println("<HTML><HEAD><TITLE>");

    ...

    out.println("Login Unsuccessful");

    out.flush();

    out.close();

 

8、HTTP請求處理程序:

   HttpServlet類(lèi)擴展了GernericServlet類(lèi),因此繼承了所有標準的Servlet功能。除了基本的Servlet生命周期方法和便利方法外,還有最常用的兩個(gè)處理程序:doGet()、doPost().

   doGet():處理HTTP Get(接收)請求

   doPost():處理HTTP Post(發(fā)送)請求

getLastModified()與HTTP GET 方法很像,但他只有在一段指定的時(shí)間內發(fā)生改變后才能返回內容。即只有doGet()方法被重寫(xiě),并將要用于處理從請求到請求的變化不大的內容時(shí)才能使用getLastModified()方法。

此外,HttpServlet還包含兩個(gè)方法:

· init(ServletConfig config): 創(chuàng )建Servlet 實(shí)例時(shí),調用的初始化方法。
· destroy(): 銷(xiāo)毀Servlet 實(shí)例時(shí),自動(dòng)調用的資源回收方法。

通常無(wú)須重寫(xiě)initO和destroyO兩個(gè)方法,除非需要在初始化Servlet時(shí),完成某些資源初始化的方法,才考慮重寫(xiě)init 方法。如果需要在銷(xiāo)毀Servlet 之前,先完成某些資源的回收,比如關(guān)閉數據庫連接等,才需要重寫(xiě)destroy 方法。

【注意】如果重寫(xiě)了init(ServletConfig config)方法,則應在重寫(xiě)該方法第一行調用super.init(config)。該方法將調用HttpServlet的init方法。

 

9、高級處理程序方法:

   doPut():處理HTTP PUT(提交)請求。

   doDelete():處理HTTP DELETE(刪除)請求。

   doTrace():處理HTTP TRACE(跟蹤)請求。

HttpServlet類(lèi)區別與GenericServlet類(lèi),它不可以重寫(xiě)Service方法,卻可以重寫(xiě)這些請求處理程序。HttpServlet方法必須被重寫(xiě)成至少一種方法(即指某個(gè)生命周期方法或請求處理程序)。

 

10、HTTP請求指南:

    GET調用:用于獲取服務(wù)器信息,并將其作為響應返回給客戶(hù)端,沒(méi)有副作用,可以安全地反復調用此方法。離開(kāi)HTML頁(yè)面或表單時(shí)直接訪(fǎng)問(wèn)Servlet的URL,但這樣做并不安全。

    POST調用:允許客戶(hù)端傳送數據給服務(wù)器端,會(huì )引發(fā)副作用,如更新服務(wù)器上數據。但轉發(fā)html或JSP頁(yè)面上的表單時(shí),可以使用POST來(lái)代替GET調用,POST調用會(huì )隱藏傳送給Servlet的任何數據。開(kāi)發(fā)人員不想支持特定的調用時(shí),可以忽略其中的一個(gè)。

    PUT調用:與POST調用類(lèi)似,但允許客戶(hù)端把真正的文件存放在服務(wù)器上,而不僅限于傳輸數據。不常用。

    DELETE調用:與PUT調用類(lèi)似,允許客戶(hù)端刪除服務(wù)器端文件或Web頁(yè)面。不常用。

    HTTP HEAD調用:doGet()被重寫(xiě),在調用doGet()時(shí)內部處理,只返回處理doGet()方法時(shí)產(chǎn)生的響應的標題,而不返回任何實(shí)際的響應數據。

 

11、RequestDispatcher(接口) 重定向轉移 和 包含:

  forward()方法:允許Servlet把一個(gè)請求轉移到另一個(gè)Web組件上。在轉移請求時(shí),會(huì )在轉移之前對該請求做某些方面的處理。轉移可以有效完成Servlet鏈式輸出輸入(即與原始請求數據合并起來(lái)輸入到下一個(gè)Servlet中)?!咀⒁狻颗csendRedirect()區分:sendRedirect()在轉到一個(gè)新頁(yè)面時(shí)不能保證一定會(huì )保存請求的數據。

  include()方法:允許在調用Servlet的響應中包含另一個(gè)Web組件的內容。這與服務(wù)器端包含SSI的概念相似。

 

12、關(guān)于Servlet的建模:

轉移<<forward>>:



包含<<include>>:

 

13、ServletContext:

    提供了Servlet所運行環(huán)境的信息。一種Servlet可以屬于由管理員確定的唯一的ServletContext。一種ServletContext是與容器中部署的每一種Web應用相關(guān)聯(lián)。對于分布式容器,則是與每臺虛擬機上的一種Web應用相關(guān)聯(lián)。Servlet可以用ServletContext接口來(lái)存儲和檢索信息,以及與其他Servlet共享信息。Servelt還可以使用getServletContext()方法來(lái)獲取它所運行的ServletContext.

    ServletContext接口所提供的一些基本的服務(wù):

  •    setAttribute:在環(huán)境中存儲信息。
  •    getAttribute:檢索存儲在ServletContext中的信息。
  •    getAttributeName:獲取環(huán)境中屬性的名字。
  •    removeAttribute:刪除環(huán)境中的一個(gè)屬性。

 

14、Servlet會(huì )話(huà)管理:

隱藏字段:隱藏的字段嵌入到要顯示給客戶(hù)端的頁(yè)面中。每發(fā)出一次新的請求,就會(huì )把這些字段發(fā)回給客戶(hù)端。

動(dòng)態(tài)URL重寫(xiě):對客戶(hù)端點(diǎn)擊的每一個(gè)URL,都會(huì )添加一些額外的信息(在會(huì )話(huà)期間獨特地標識每一個(gè)客戶(hù),如:URL?session=97859,即發(fā)出請求的客戶(hù)端會(huì )話(huà)編號是97859)。

cookies:已存儲的信息可能會(huì )在往后重復傳送回客戶(hù)端。Web服務(wù)器為瀏覽器提供了Cookie.

服務(wù)器端會(huì )話(huà)對象:cookies和URL編碼受到對每一次請求而發(fā)送回客戶(hù)端信息量多少的限制,在服務(wù)器會(huì )話(huà)管理中,會(huì )話(huà)信息是在服務(wù)器上的會(huì )話(huà)對象中進(jìn)行維護的,能根據需要進(jìn)行訪(fǎng)問(wèn)。注意:使用服務(wù)器對象很昂貴盡量少使用它們。

http會(huì )話(huà)(Servlet API): HttpSession更容易的處理來(lái)自同一個(gè)用戶(hù)的多個(gè)請求。
 HttpSession theSession=request.getSession(true);

 theSession.putValue("Session.id","98579");

 sessionId=theSession.getValue("Session.ID");

 

15、Servlet部署和Web歸檔文件(*.war):

 



16、企業(yè)級應用中標識Servlet:

  將控制對象一分為二:外部交互和內部交互。一般來(lái)說(shuō):Servlet的作用是作為一個(gè)邊界對象和系統的其余部分之間的協(xié)調器(只承擔很小的職責,可能包含啟動(dòng)某些業(yè)務(wù)邏輯)。邊界對象和復合控制類(lèi)之間的所有交互都屬于新的Servlet。而分割顯示在控制對象和實(shí)體對象之間的交互關(guān)系就有些棘手了。


該圖中有一小部分是由若干個(gè)動(dòng)作組成的一個(gè)完整的交易。我們決定把這一部分分割開(kāi),由內部關(guān)注他的控制對象對它進(jìn)行處理,其余部分則由Servlet負責。下圖則顯示了這種職責劃分后的結果:



HttpServlet 理想地適合執行外部交互作用。





17、Servlet 和JSP的區別在于:
a. Servlet中沒(méi)有內置對象,原來(lái)JSP中的內置對象都必須通過(guò)HttpServletRequest對象,或由HttpServletResponse 對象生成:
b. 對于靜態(tài)的HTML標簽, Servlet 都必須使用頁(yè)面輸出流逐行輸出。即“JSP是Servlet的一種簡(jiǎn)化”,使用JSP只需要完成程序員需要輸出到客戶(hù)端的內容,至于JSP中的Java 腳本如何鑲嵌到一個(gè)類(lèi)中,由JSP 容器
完成。而Servlet則是個(gè)完整的Java 類(lèi),這個(gè)類(lèi)的service方法用于生成對客戶(hù)端的響應。

 

18、為了讓Servlet 能響應用戶(hù)請求,還必須將Servlet 配置在Web 應用中。配置Servlet
時(shí),需要修改web.xrnl 文件。
配置Servlet 需要配置兩個(gè)部分:
·配置Servlet 的名字:對應web.xml 文件中的<servlet/>元素。
·配置Servlet 的URL: 對應web.xml 文件中的<servlet-mapping/>元素。
因此,配置一個(gè)能響應客戶(hù)請求的Servlet ,至少需要配置兩個(gè)元素,關(guān)于上面FirstServlet 的配置如下:
<!--配置Servlet 的名字-->
<servlet>
<!-- 指定Servlet 的名字-->
<servlet-name>firstServlet</servlet-name>
<!-- 指定Servlet 的實(shí)現類(lèi)--〉
<servlet-class>lee.FirstServlet</servlet-class>
</servlet>
<!-- 配置Servlet 的URL-->
<servlet-mapping>

<!--指定Servlet 的名字-->
<servlet-name>firstServlet</servlet-name>
<!--指定Servlet 映射的URL地址>
<url-pattern>/firstServlet</url-pattern>
</servlet-rnapping>

 


本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
Java編程中Servlet簡(jiǎn)介與常用方法_Servlet_Java中文網(wǎng)
花了20天的時(shí)間給粉絲整理的一套"最全"的Java求職筆記(二)
Servlet技術(shù)(上)
通過(guò)源碼詳解 Servlet
Servlet請求轉發(fā) RequestDispatcher與sendRedirect - ...
J2EE 探索者: 隱式對象的多種用法
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久