溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

如何理解J2EE以及Servlet的生命周期

發(fā)布時(shí)間:2021-11-22 18:25:04 來源:億速云 閱讀:149 作者:柒染 欄目:編程語言

這篇文章給大家介紹如何理解J2EE以及Servlet的生命周期,內(nèi)容非常詳細(xì),感興趣的小伙伴們可以參考借鑒,希望對(duì)大家能有所幫助。

J2EE是一個(gè)標(biāo)準(zhǔn)中間件體系結(jié)構(gòu),目的在于簡(jiǎn)化和規(guī)范分布式多層企業(yè)應(yīng)用系統(tǒng)的開發(fā)和部署.

典型的J2EE結(jié)構(gòu)的應(yīng)用程序有:客戶層,表示邏輯層,業(yè)務(wù)邏輯層,企業(yè)信息系統(tǒng)層。

如何理解J2EE以及Servlet的生命周期

servlet是一種獨(dú)立于操作系統(tǒng)平臺(tái)和網(wǎng)絡(luò)傳輸協(xié)議的服務(wù)器端的Java應(yīng)用程序,它用于擴(kuò)展服務(wù)器的功能,可以生成動(dòng)態(tài)的web頁面。

如何理解J2EE以及Servlet的生命周期

Servlet 的生命周期

Servlet 的生命周期始于將它裝入 Web 服務(wù)器的內(nèi)存時(shí),并在終止或重新裝入 Servlet 時(shí)結(jié)束。

(1) 初始化

在下列時(shí)刻裝入 Servlet:

如果已配置自動(dòng)裝入選項(xiàng),則在啟動(dòng)服務(wù)器時(shí)自動(dòng)裝入

在服務(wù)器啟動(dòng)后,客戶機(jī)***向 Servlet 發(fā)出請(qǐng)求時(shí)

重新裝入 Servlet 時(shí)裝入 Servlet 后,服務(wù)器創(chuàng)建一個(gè) Servlet 實(shí)例并且調(diào)用 Servlet 的 init() 方法。在初始化階段,Servlet 初始化參數(shù)被傳遞給 Servlet 配置對(duì)象。

(2) 請(qǐng)求處理

對(duì)于到達(dá)服務(wù)器的客戶機(jī)請(qǐng)求,服務(wù)器創(chuàng)建特定于請(qǐng)求的一個(gè)“請(qǐng)求”對(duì)象和一個(gè)“響應(yīng)”對(duì)象。服務(wù)器調(diào)用 Servlet 的 service() 方法,該方法用于傳遞“請(qǐng)求”和“響應(yīng)”對(duì)象。service() 方法從“請(qǐng)求”對(duì)象獲得請(qǐng)求信息、處理該請(qǐng)求并用“響應(yīng)”對(duì)象的方法以將響應(yīng)傳回客戶機(jī)。service() 方法可以調(diào)用其它方法來處理請(qǐng)求,例如 doGet()、doPost() 或其它的方法。

(3) 終止

當(dāng)服務(wù)器不再需要 Servlet, 或重新裝入 Servlet 的新實(shí)例時(shí),服務(wù)器會(huì)調(diào)用 Servlet 的 destroy() 方法。

一個(gè)servlet樣例(ServletSample.java)如下:

import java.io.*;  import java.util.*;  import javax.servlet.*;  import javax.servlet.http.*;    public class ServletSample extends HttpServlet { // ***步: 擴(kuò)展 HttpServlet 抽象類。   public void doGet (HttpServletRequest request, HttpServletResponse response)   throws ServletException, IOException { // 第二步:重寫doGet()方法   String myName = ""; // 第三步:獲取HTTP 請(qǐng)求信息  java.util.Enumeration keys = request.getParameterNames();  while (keys.hasMoreElements());  {  key = (String) keys.nextElement();  if (key.equalsIgnoreCase("myName"))  myName = request.getParameter(key);   }  if (myName == "")  myName = "Hello";  // 第四步:生成 HTTP 響應(yīng)。  response.setContentType("text/html");   response.setHeader("Pragma", "No-cache");  response.setDateHeader("Expires", 0);  response.setHeader("Cache-Control", "no-cache");   out.println("");  out.println("");  out.println("    Just a basic servlet  ");  out.println ("   " + myName + ", this is a very basic servlet that writes an HTML   page.");  out.println ("    For instructions on running those samples on your WebSphere應(yīng)用服務(wù)器, "+  "open the page:");  out.println("   http://your.server.name/IBMWebAs/samples/index.aspl  ");  out.println("where your.server.name is the hostname of your WebSphere應(yīng)用服  務(wù)器.");   out.println("");   out.flush();   }  }

Cookie的格式實(shí)際上是一段純文本信息, 由服務(wù)器隨著網(wǎng)頁一起發(fā)送到客戶端, 并保存在客戶端硬盤中指定的目錄的.

一個(gè)簡(jiǎn)單的例子
1. 寫入Cookie --- writecookie.jsp
-------------------------------------------------------------

<%@ page contentType="text/html; charset=ISO8859_1" %> <%  Cookie _cookie=new Cookie("user_delfancom", "delfan");  _cookie.setMaxAge(30*60); // 設(shè)置Cookie的存活時(shí)間為30分鐘  response.addCookie(_cookie); // 寫入客戶端硬盤  out.print("寫Cookie完成");  %>

2. 讀取Cookie.jsp --- readcookie.jsp
-------------------------------------------------------------

<%  Cookie cookies[]=request.getCookies(); // 將適用目錄下所有Cookie讀入并存入cookies數(shù)組中  Cookie sCookie=null;  String sname=null;  String name=null;  if(cookies==null) // 如果沒有任何cookie   out.print("none any cookie");  else  {   out.print(cookies.length + "  ");   for(int i=0;i{   sCookie=cookies[i];  sname=sCookie.getName();  name = sCookie.getValue();   out.println(sname + "->" + name + "  ");   }  }  %>

以上介紹了Servlet的生命周期。

關(guān)于如何理解J2EE以及Servlet的生命周期就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI