導航:首頁 > 研究方法 > servlet有什麼方法

servlet有什麼方法

發布時間:2022-11-06 04:46:09

① Servlet執行時一般實現哪幾個方法

Servlet執行時要先編譯成xx.class源文件,然後由jvm的類載入器載入進運行時容器,如tomcat,
當有人訪問你的Servlet時,Servlet首先運行自己的構造方法,然後運行init()方法,進行Servlet的初始化,之後運行service()方法,在service()方法中,根據你請求的類型,如直接通過url地址打開這個Servlet為get方式,如通過表單並且表單的method屬性為post,打開Servlet才為post方式;
service()方法根據你訪問這個Servlet用的是get還是post方式,分別調用doGet,和doPost方法。
然後當Servlet容器,web伺服器關閉時,調用此Destroy()方法銷毀此Servlet對象.

執行的方法按順序為:構造方法,init(),doGet()或者doPost(),Destroy();

② Servlet主要有哪些方法

init(), service(),destroy()
這個可以認為是一個 servlet的生命周期
1.建立初始化servlet ---init(),

2.處理從客戶端的零個或多個請求 ---service()(當然此方法包含 post,get方法)

3.銷毀servlet,gc回收佔用內存 ---destroy();

每個server可能在如何支持servlet上有不同的方法,但是生命周期卻是每個servlet 引擎必須遵守的規則。
所以這三個方法是最重要的,當然還有其他方法,只是沒有這三個方法最常用!

③ 調用servlet的方法是什麼

如果是web項目,寫完servlet時在webroot下的web-inf文件夾下的web.xml文件進行配置,
配置方法:

<!--定義一個Servlet實例-->
<servlet>
<servlet-name>Servlet的實例名</servlet-name>
<servlet-class>Servlet類的全限定名(包名.類名)</servlet-class>
</servlet>
<!--配置訪問指定Servlet的URL模式-->
<servlet-mapping>
<servlet-name>Servlet的實例名</servlet-name>
<url-pattern>URL匹配模式</url-pattern>
</servlet-mapping>

例如:
<servlet>
<servlet-name>first</servlet-name>
<servlet-class>com.servlet.FirstServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>first</servlet-name>
<url-pattern>/first.do</url-pattern>
</servlet-mapping>
通過servlet方法中的指定跳轉就可以去相應的jsp文件,這樣就能在jsp中獲取到servlet中要傳輸的數據

④ Servlet執行時一般實現哪幾個方法

Servlet執行時要先編譯成xx.class源文件,然後由jvm的類載入器載入進運行時容器,如tomcat,
當有人訪問你的Servlet時,Servlet首先運行自己的構造方法,然後運行init()方法,進行Servlet的初始化,之後運行service()方法,在service()方法中,根據你請求的類型,如直接通過url地址打開這個Servlet為get方式,如通過表單並且表單的method屬性為post,打開Servlet才為post方式;
service()方法根據你訪問這個Servlet用的是get還是post方式,分別調用doGet,和doPost方法。
然後當Servlet容器,web伺服器關閉時,調用此Destroy()方法銷毀此Servlet對象.

執行的方法按順序為:構造方法,init(),doGet()或者doPost(),Destroy();

⑤ 三種實現servlet的方式有什麼區別

開發Servlet有三種方式:
1、實現Servlet介面
2、通過繼承GenericServlet
3、通過繼承HttpServlet
區別如下:
首先明確,Servlet並不是專門用於處理Http請求的。

1)原生Servlet介面

package javax.servlet;
import java.io.IOException;
public interface Servlet {
public void init(ServletConfig config) throws ServletException;
public ServletConfig getServletConfig();
public void service(ServletRequest req, ServletResponse res)
throws ServletException, IOException;
public String getServletInfo();
public void destroy();
}

可以看到Servlet介面是定義在javax.servlet包中,該介面定義了5個方法。
init() :在Servlet實例化之後,Servlet容器會調用init()方法,來初始化該對象,主要是為了讓Servlet對象在處理客戶請求之前可以完成一些初始化工作,比如:建立資料庫的連接,獲取配置信息。

service():容器調用service()方法來處理客戶端的請求。

destroy():當容器檢測到一個Servlet對象應該從伺服器中被移除的時候,容器會調用該對象的destroy方法,以便讓Servlet對象可以釋放它所使用的資源,保存數據到持久化存儲設備中,例如:將內存中的數據保存到資料庫中,關閉資料庫的連接。

2)GenericServlet
直接通過實現Servlet介面來編寫一個Servlet類,就需要實現Servlet介面中定義的5種方法,為了簡化Servlet的編寫,在javax.servlet包中,給我們提供了一個抽象的類GenericServlet,它提供了除service()方法外的其他4種方法的簡單實現。GenericServlet類定義了一個通用的,不依賴具體協議的Servlet

package javax.servlet;

import java.io.IOException;
import java.util.Enumeration;
import java.util.ResourceBundle;

public abstract class GenericServlet
implements Servlet, ServletConfig, java.io.Serializable
{
private static final String LSTRING_FILE = "javax.servlet.LocalStrings";
private static ResourceBundle lStrings =
ResourceBundle.getBundle(LSTRING_FILE);

private transient ServletConfig config;

public GenericServlet() { }

public void destroy() {
}

public String getInitParameter(String name) {
ServletConfig sc = getServletConfig();
if (sc == null) {
throw new IllegalStateException(
lStrings.getString("err.servlet_config_not_initialized"));
}

return sc.getInitParameter(name);
}

public Enumeration<String> getInitParameterNames() {
ServletConfig sc = getServletConfig();
if (sc == null) {
throw new IllegalStateException(
lStrings.getString("err.servlet_config_not_initialized"));
}

return sc.getInitParameterNames();
}

public ServletConfig getServletConfig() {
return config;
}

public ServletContext getServletContext() {
ServletConfig sc = getServletConfig();
if (sc == null) {
throw new IllegalStateException(
lStrings.getString("err.servlet_config_not_initialized"));
}

return sc.getServletContext();
}

public String getServletInfo() {
return "";
}

public void init(ServletConfig config) throws ServletException {
this.config = config;
this.init();
}

public void init() throws ServletException {

}

public void log(String msg) {
getServletContext().log(getServletName() + ": "+ msg);
}
public void log(String message, Throwable t) {
getServletContext().log(getServletName() + ": " + message, t);
}

public abstract void service(ServletRequest req, ServletResponse res)
throws ServletException, IOException;

public String getServletName() {
ServletConfig sc = getServletConfig();
if (sc == null) {
throw new IllegalStateException(
lStrings.getString("err.servlet_config_not_initialized"));
}

return sc.getServletName();
}
}

3)HttpServlet

由於大多數網路應用中,都是瀏覽器通過HTTP協議去訪問伺服器資源,而通常編寫的Servlet也主要是應用於HTTP協議的請求和響應,為了快速開發應用於HTTP協議的Servlet,Sun公司在javax.servlet.http包中給我們提供了一個抽象的類HttpServlet,他繼承自GenericServlet類,用於創建適合Web站點的HTTP Servlet。

比如,doPost doGet這些方法,從request解析請求信息開始,將根據http協議的格式進行解析,分發到不同的請求方法處理中,doPost doGet也肯定是被service方法調用的。

⑥ 談談servlet中可以寫哪些方法,以及servlet中一般要做哪些工作

HttpServlet 類包含 init() 、 destroy() 、 service() 等方法。其中 init() 和 destroy() 方法是繼承的。
(1) init() 方法
在 Servlet 的生命期中,僅執行一次 init() 方法。它是在伺服器裝入 Servlet 時執行的。 可以配置伺服器,以在啟動伺服器或客戶機首次訪問 Servlet 時裝入 Servlet 。 無論有多少客戶機訪問 Servlet ,都不會重復執行 init() 。
預設的 init() 方法通常是符合要求的,但也可以用定製 init() 方法來覆蓋它,典型的是管理伺服器端資源。 例如,可能編寫一個定製 init() 來只用於一次裝入 GIF 圖像,改進 Servlet 返回 GIF 圖像和含有多個客戶機請求的性能。另一個示例是初始化資料庫連接。預設的 init() 方法設置了 Servlet 的初始化參數,並用它的 ServletConfig 對象參數來啟動配置, 因此所有覆蓋 init() 方法的 Servlet 應調用 super.init() 以確保仍然執行這些任務。在調用 service() 方法之前,應確保已完成了 init() 方法。
(2) service() 方法
service() 方法是 Servlet 的核心。每當一個客戶請求一個 HttpServlet 對象,該對象的 service() 方法就要被調用,而且傳遞給這個方法一個「請求」( ServletRequest )對象和一個「響應」( ServletResponse )對象作為參數。 在 HttpServlet 中已存在 service() 方法。預設的服務功能是調用與 HTTP 請求的方法相應的 do 功能。例如, 如果 HTTP 請求方法為 GET ,則預設情況下就調用 doGet() 。 Servlet 應該為 Servlet 支持的 HTTP 方法覆蓋 do 功能。因為 HttpServlet.service() 方法會檢查請求方法是否調用了適當的處理方法,不必要覆蓋 service() 方法。只需覆蓋相應的 do 方法就可以了。
= 當一個客戶通過 HTML 表單發出一個 HTTP POST 請求時, doPost ()方法被調用。 與 POST 請求相關的參數作為一個單獨的 HTTP 請求從瀏覽器發送到伺服器。當需要修改伺服器端的數據時,應該使用 doPost() 方法。
= 當一個客戶通過 HTML 表單發出一個 HTTP GET 請求或直接請求一個 URL 時, doGet() 方法被調用。 與 GET 請求相關的參數添加到 URL 的後面,並與這個請求一起發送。當不會修改伺服器端的數據時,應該使用 doGet() 方法。
Servlet 的響應可以是下列幾種類型:
一個輸出流,瀏覽器根據它的內容類型(如 text/HTML )進行解釋。
一個 HTTP 錯誤響應 , 重定向到另一個 URL 、 servlet 、 JSP 。
(3) destroy() 方法
destroy() 方法僅執行一次,即在伺服器停止且卸裝 Servlet 時執行該方法。典型的,將 Servlet 作為伺服器進程的一部分來關閉。預設的 destroy() 方法通常是符合要求的,但也可以覆蓋它,典型的是管理伺服器端資源。例如,如果 Servlet 在運行時會累計統計數據,則可以編寫一個 destroy() 方法,該方法用於在未裝入 Servlet 時將統計數字保存在文件中。另一個示例是關閉資料庫連接。
當伺服器卸裝 Servlet 時,將在所有 service() 方法調用完成後,或在指定的時間間隔過後調用 destroy() 方法。一個 Servlet 在運行 service() 方法時可能會產生其它的線程,因此請確認在調用 destroy() 方法時,這些線程已終止或完成。
(4) GetServletConfig()方法
GetServletConfig ()方法返回一個 ServletConfig 對象,該對象用來返回初始化參數和 ServletContext 。 ServletContext 介面提供有關 servlet 的環境信息。
(5) GetServletInfo()方法
GetServletInfo ()方法是一個可選的方法,它提供有關 servlet 的信息,如作者、版本、版權。
當伺服器調用 sevlet 的 Service ()、 doGet ()和 doPost ()這三個方法時,均需要 「請求」和「響應」對象作為參數。「請求」對象提供有關請求的信息,而「響應」對象提供了一個將響應信息返回給瀏覽器的一個通信途徑。 javax.servlet 軟體包中的相關類為 ServletResponse 和 ServletRequest ,而 javax.servlet.http 軟體包中的相關類為 HttpServletRequest 和 HttpServletResponse 。 Servlet 通過這些對象與伺服器通信並最終與客戶機通信。 Servlet 能通過調用「請求」對象的方法獲知客戶機環境,伺服器環境的信息和所有由客戶機提供的信息。 Servlet 可以調用「響應」對象的方法發送響應,該響應是准備發回客戶機的。

⑦ HttpServlet類中的主要方法都有哪些

首先我們來看看HttpServlet的繼承關系。它是一個抽象類。
繼承了上層抽象類GenericServlet,再向上實現了Servlet介面。
根據API文檔,HttpHervlet一共含有10各方法:

init()初始化時使用。
service()提供服務,一般不需要覆蓋。不對,是大多數時候不需要

destroy()銷毀時使用
以上為生命周期方法。另外還有可重寫的服務方法:

doDelete;doHead;doGet;doPost;doOptions;doPut;doTrace
特別注意!service方法一般不重寫,但是還是有可能重寫。
這里有兩個service方法的重載:
service(HttpServletRequest req, HttpServletResponse
resp):
service(ServletRequest req, ServletResponse
res)
再多廢話一點!HttpServlet開始說了。只是一個抽象類,
真正使用時我們要定義自己的Servlet 如MyServlet去繼承HttpServlet哦~
純手打~

⑧ Servlet執行時一般實現哪幾個方法

Servlet執行時要先編譯成xx.class源文件,然後由jvm的類載入器載入進運行時容器,如tomcat,

當有人訪問你的Servlet時,Servlet首先運行自己的構造方法,然後運行init()方法,進行Servlet的初始化,之後運行service()方法,在service()方法中,根據你請求的類型,如直接通過url地址打開這個Servlet為get方式,如通過表單並且表單的method屬性為post,打開Servlet才為post方式;

service()方法根據你訪問這個Servlet用的是get還是post方式,分別調用doGet,和doPost方法。

然後當Servlet容器,web伺服器關閉時,調用此Destroy()方法銷毀此Servlet對象.

執行的方法按順序為:構造方法,init(),doGet()或者doPost(),Destroy();

⑨ Servlet包含哪些主要方法,這些方法主要起什麼作用

HttpServlet 類包含 init() 、 destroy() 、 service() 等方法。其中 init() 和 destroy() 方法是繼承的。
(1) init() 方法
在 Servlet 的生命期中,僅執行一次 init() 方法。它是在伺服器裝入 Servlet 時執行的。 可以配置伺服器,以在啟動伺服器或客戶機首次訪問 Servlet 時裝入 Servlet 。 無論有多少客戶機訪問 Servlet ,都不會重復執行 init() 。
(2) service() 方法
service() 方法是 Servlet 的核心。每當一個客戶請求一個 HttpServlet 對象,該對象的 service() 方法就要被調用,而且傳遞給這個方法一個「請求」( ServletRequest )對象和一個「響應」( ServletResponse )對象作為參數。 在 HttpServlet 中已存在 service() 方法。預設的服務功能是調用與 HTTP 請求的方法相應的 do 功能。例如, 如果 HTTP 請求方法為 GET ,則預設情況下就調用 doGet() 。 Servlet 應該為 Servlet 支持的 HTTP 方法覆蓋 do 功能。因為 HttpServlet.service() 方法會檢查請求方法是否調用了適當的處理方法,不必要覆蓋 service() 方法。只需覆蓋相應的 do 方法就可以了。
(3) destroy() 方法
destroy() 方法僅執行一次,即在伺服器停止且卸裝 Servlet 時執行該方法。典型的,將 Servlet 作為伺服器進程的一部分來關閉。預設的 destroy() 方法通常是符合要求的,但也可以覆蓋它,典型的是管理伺服器端資源。例如,如果 Servlet 在運行時會累計統計數據,則可以編寫一個 destroy() 方法,該方法用於在未裝入 Servlet 時將統計數字保存在文件中。另一個示例是關閉資料庫連接。

閱讀全文

與servlet有什麼方法相關的資料

熱點內容
中式棉襖製作方法圖片 瀏覽:65
五菱p1171故障碼解決方法 瀏覽:860
男士修護膏使用方法 瀏覽:548
電腦圖標修改方法 瀏覽:609
濕氣怎麼用科學的方法解釋 瀏覽:539
910除以26的簡便計算方法 瀏覽:807
吹東契奇最簡單的方法 瀏覽:706
對腎臟有好處的食用方法 瀏覽:100
電腦四線程內存設置方法 瀏覽:514
數字電路通常用哪三種方法分析 瀏覽:17
實訓課程的教學方法是什麼 瀏覽:527
苯甲醇乙醚鑒別方法 瀏覽:84
蘋果手機微信視頻聲音小解決方法 瀏覽:702
控制箱的連接方法 瀏覽:77
用什麼簡單的方法可以去痘 瀏覽:791
快速去除甲醛的小方法你知道幾個 瀏覽:805
自行車架尺寸測量方法 瀏覽:126
石磨子的製作方法視頻 瀏覽:154
行善修心的正確方法 瀏覽:405
土豆燉雞湯的正確方法和步驟 瀏覽:278