国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

JBuilder2005 Servlet開發(fā)之開發(fā)必備

2019-11-18 15:44:34
字體:
供稿:網(wǎng)友

  用Servlet可以創(chuàng)建協(xié)議、平臺無關(guān)的Web應(yīng)用程序,Applet運(yùn)行于瀏覽器的JRE中,而Servlet則運(yùn)行于Web應(yīng)用服務(wù)器的Servlet容器中,Servlet沒有用戶圖形界面,Servlet和Web應(yīng)用服務(wù)器的Servlet容器交互以接收請求返回響應(yīng)。
請求最先由Web應(yīng)用服務(wù)器的Servlet容器處理并傳給Servlet,Servlet通過Web應(yīng)用服務(wù)器返回響應(yīng)給客戶端。客戶端程序可以使用任何可向Web應(yīng)用服務(wù)器發(fā)送請求的語言開發(fā)。

  Servlet最大的優(yōu)勢在于它的高性能,Servlet采用了和CGI截然不同的運(yùn)行方式,首先Servlet在第一次初始化時裝載并駐留在內(nèi)存中,以后直接從內(nèi)存中運(yùn)行;其次,在默認(rèn)情況下Servlet以單實(shí)例多線程的方式工作,一個新請求到達(dá)后,Servlet實(shí)例開啟一個新的線程服務(wù)這個請求。

  Servlet 結(jié)構(gòu)和線程安全

  所有的Servlet都直接或間接地實(shí)現(xiàn)javax.servlet.Servlet接口,這些接口規(guī)定了Servlet如何與Servlet容器進(jìn)行通訊的方法,此外還定義了Servlet的生命周期。GenericServlet是和協(xié)議無關(guān)的通用Servlet,HttpServlet是專門針對HTTP協(xié)議開發(fā)的Servlet,Web應(yīng)用程序的Servlet都直接繼續(xù)HttpServlet。其類的繼續(xù)體系如下圖所示:

JBuilder2005 Servlet開發(fā)之開發(fā)必備(圖一)
圖 1 Servlet的類繼續(xù)體系

  javax.servlet.Servlet接口包括了3個控制Servlet生命周期的方法,它們分別是:

  ·init(ServletConfig config)方法

  當(dāng)Servlet初始化時,init()方法被調(diào)用執(zhí)行初始化Servlet的工作,init()方法只被調(diào)用一次。Servlet初始化后就進(jìn)入就緒態(tài),隨時預(yù)備響應(yīng)客戶端的請求。

  ·service(ServletRequest req, ServletResponse resp)方法

  Servlet容器調(diào)用service()方法處理請求并返回響應(yīng)。ServletRequest和ServletResponse作為入?yún)鹘oservice(),ServletRequest封裝了請求的信息而ServletResponse封裝了響應(yīng)的信息。

  ·destroy()方法

  Servlet容器可以在任何時候卸載Servlet,此時destory()被調(diào)用,你可以在這兒釋放Servlet所占用的資源。

  而javax.servlet.http包中的類用于支持HTTP協(xié)議,創(chuàng)建Html網(wǎng)頁。HTTP協(xié)議是基于請求/響應(yīng)工作模式,這些HTTP的請求方式包括:

  GET

  POST

  PUT

  DELETE

  HEAD

  TRACE

  CONNECT

  OPTIONS

  javax.servlet.http.HttpServlet定義了多個服務(wù)HTTP協(xié)議的方法,這些方法名為doXxx()的樣式命名和HTTP請求方式名相呼應(yīng):如HTTP GET請求方式對應(yīng)doGet(),而HTTP POST對應(yīng)doPost()等。HttpServlet最初以service(HttpServletRequest req, HttpServletResponse resp)響應(yīng)客戶端請求,并依據(jù)HTTP的請求方式調(diào)用相應(yīng)的doXxx()方法來處理。

  一般的,你僅需要覆蓋doGet()或doPost()方法,假如希望得到更多的控制,你也可以覆蓋doPut()和doDelete()方法,其他的方法一般很少使用。假如你使用JBuilder的Servlet向?qū)В憧梢跃唧w指定創(chuàng)建哪些方法。

  非凡需要指出的是Servlet是以多線程的方式工作的,Servlet可以同時處理多個請求。作為開發(fā)人員,需要注重Servlet成員變量的線程安全,在doGet()、doPost()中的局部域變量是線程安全的,而Servlet的成員變量則有線程安全的隱患。所以除非你有意需要應(yīng)用這種特性,在一般情況下,不宜將一些可改寫的變量定義成Servlet的成員變量,否則一定要采取線程同步的措施確保線程安全。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 瑞丽市| 宜兰县| 灵璧县| 西藏| 油尖旺区| 建宁县| 饶阳县| 明星| 调兵山市| 南宁市| 凭祥市| 资兴市| 贡嘎县| 涿州市| 喀什市| 荔波县| 雅江县| 望江县| 景德镇市| 阿城市| 巴中市| 齐齐哈尔市| 靖远县| 昆明市| 井研县| 象山县| 平陆县| 宾阳县| 确山县| 新疆| 伊川县| 上饶县| 湘潭市| 临泉县| 客服| 遂宁市| 姜堰市| 镇远县| 秦皇岛市| 林西县| 茌平县|