3 回答

TA貢獻(xiàn)1946條經(jīng)驗(yàn) 獲得超3個贊
JavaWeb中servlet主要功能是承載網(wǎng)絡(luò)連接,業(yè)務(wù)邏輯處理,比如一些編碼格式的轉(zhuǎn)換、登錄攔截等,如下是詳細(xì)解釋:1.servlet是一個類。最初沒有jsp,只有servlet,也就是說最初的開發(fā)過程是.java->.class后來因?yàn)?a >html代碼在servlet里寫入太繁瑣,加入了jsp類型。servlet單純的處理后臺程序。在WEB-INF下的web.xml文件下:
1 2 3 4 5 6 7 8 | <servlet> <servlet-name>hello</servlet-name> <servlet-class>org.lxh.servlet.HelloServlet</servlet-class>///HelloServlet是類名 </servlet> <servlet-mapping> <servlet-name>hello</servlet-name> <url-pattern>/servletdemo</url-pattern>///當(dāng)敲入本機(jī)地址后,/demo后/servletdemo會找到編譯后的HelloServlet文件。 </servlet-mapping> |
具體例子如下:1.先編寫一個表單,建在D:/java/tomcat jsp/webdemo/servletdemo(新建一個文件夾)-
1 2 3 4 5 | input.html <form action="input" method="get">//"post"也行 <input type="text" name="ref"> <input type="submit" value="提交"> </from> |
2.在編寫InputServlet類
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | package org.lxh.servlet ; import java.io.* ; import javax.servlet.* ; import javax.servlet.http.* ; public class InputServlet extends HttpServlet{ public void doGet(HttpServletRequest req,HttpServletResponse resp) throws ServletException,java.io.IOException{ String param = req.getParameter("ref") ; System.out.println("*************"+param) ; } public void doPost(HttpServletRequest req,HttpServletResponse resp) throws ServletException,java.io.IOException{ this.doGet(req,resp) ; } }; |
3.然后編譯。4.再在web.xml中加入這些話
1 2 3 4 5 6 7 8 | <servlet> <servlet-name>input</servlet-name> <servlet-class>org.lxh.servlet.InputServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>input</servlet-name> <url-pattern>/servletdemo/input</url-pattern> </servlet-mapping> |
5.這時運(yùn)行tomcat http://localhost:90/demo能找到servletdemo文件夾中的input.html,點(diǎn)擊提交按鈕。
jsp技術(shù)中servlet,可以承載很多的功能,但后期如果項目業(yè)務(wù)邏輯很復(fù)雜,會導(dǎo)致servlet的急劇增多,不易維護(hù),所以又發(fā)明了javaweb,將每一層的功能和邏輯都獨(dú)立出來,以便于更好的維護(hù)管理。

TA貢獻(xiàn)1802條經(jīng)驗(yàn) 獲得超10個贊
Servlet是使用Java Servlet 應(yīng)用程序設(shè)計接口(API)及相關(guān)類和方法的 Java 程序。除了 Java Servlet API,Servlet 還可以使用用以擴(kuò)展和添加到 API 的 Java 類軟件包。Servlet 在啟用 Java 的 Web 服務(wù)器上或應(yīng)用服務(wù)器上運(yùn)行并擴(kuò)展了該服務(wù)器的能力。Java servlet對于Web服務(wù)器就好象Java applet對于Web瀏覽器。Servlet裝入Web服務(wù)器并在Web服務(wù)器內(nèi)執(zhí)行,而applet裝入Web瀏覽器并在Web瀏覽器內(nèi)執(zhí)行。Java Servlet API 定義了一個servlet 和Java使能的服務(wù)器之間的一個標(biāo)準(zhǔn)接口,這使得Servlets具有跨服務(wù)器平臺的特性。
Servlet 通過創(chuàng)建一個框架來擴(kuò)展服務(wù)器的能力,以提供在 Web 上進(jìn)行請求和響應(yīng)服務(wù)。當(dāng)客戶機(jī)發(fā)送請求至服務(wù)器時,服務(wù)器可以將請求信息發(fā)送給 Servlet,并讓 Servlet 建立起服務(wù)器返回給客戶機(jī)的響應(yīng)。 當(dāng)啟動 Web 服務(wù)器或客戶機(jī)第一次請求服務(wù)時,可以自動裝入 Servlet。裝入后, Servlet 繼續(xù)運(yùn)行直到其它客戶機(jī)發(fā)出請求。Servlet 的功能涉及范圍很廣。例如,Servlet 可完成如下功能:
(1) 創(chuàng)建并返回一個包含基于客戶請求性質(zhì)的動態(tài)內(nèi)容的完整的 HTML頁面。
(2) 創(chuàng)建可嵌入到現(xiàn)有 HTML 頁面中的一部分 HTML 頁面(HTML 片段)。
(3) 與其它服務(wù)器資源(包括數(shù)據(jù)庫和基于 Java 的應(yīng)用程序)進(jìn)行通信。
(4) 用多個客戶機(jī)處理連接,接收多個客戶機(jī)的輸入,并將結(jié)果廣播到多個客戶機(jī)上。例如,Servlet 可
以是多參與者的游戲服務(wù)器。
(5) 當(dāng)允許在單連接方式下傳送數(shù)據(jù)的情況下,在瀏覽器上打開服務(wù)器至applet的新連接,并將該連
接保持在打開狀態(tài)。當(dāng)允許客戶機(jī)和服務(wù)器簡單、高效地執(zhí)行會話的情況下,applet也可以啟動客戶瀏覽器和服務(wù)器之間的連接??梢酝ㄟ^定制協(xié)議或標(biāo)準(zhǔn)(如 IIOP)進(jìn)行通信。
(6) 對特殊的處理采用 MIME 類型過濾數(shù)據(jù),例如圖像轉(zhuǎn)換和服務(wù)器端包括(SSI)。
(7) 將定制的處理提供給所有服務(wù)器的標(biāo)準(zhǔn)例行程序。例如,Servlet 可以修改如何認(rèn)證用戶。
2.Servlet 的生命周期:
Servlet 的生命周期始于將它裝入 Web 服務(wù)器的內(nèi)存時,并在終止或重新裝入 Servlet 時結(jié)束。
(1) 初始化
在下列時刻裝入 Servlet:
=如果已配置自動裝入選項,則在啟動服務(wù)器時自動裝入
=在服務(wù)器啟動后,客戶機(jī)首次向 Servlet 發(fā)出請求時
=重新裝入 Servlet 時
裝入 Servlet 后,服務(wù)器創(chuàng)建一個 Servlet 實(shí)例并且調(diào)用 Servlet 的 init() 方法。在初始化階段,Servlet 初始化參數(shù)被傳遞給 Servlet 配置對象。
(2) 請求處理
對于到達(dá)服務(wù)器的客戶機(jī)請求,服務(wù)器創(chuàng)建特定于請求的一個"請求"對象和一個"響應(yīng)"對象。服務(wù)器調(diào)用 Servlet 的 service() 方法,該方法用于傳遞"請求"和"響應(yīng)"對象。service() 方法從"請求"對象獲得請求信息、處理該請求并用"響應(yīng)"對象的方法以將響應(yīng)傳回客戶機(jī)。service() 方法可以調(diào)用其它方法來處理請求,例如 doGet()、doPost() 或其它的方法。
(3) 終止
當(dāng)服務(wù)器不再需要 Servlet, 或重新裝入 Servlet 的新實(shí)例時,服務(wù)器會調(diào)用 Servlet 的 destroy() 方法。
添加回答
舉報