日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢(xún)
選擇下列產(chǎn)品馬上在線(xiàn)溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷(xiāo)解決方案
調(diào)用Servlet的多種方法淺析

要調(diào)用Servlet或Web應(yīng)用程序,請(qǐng)使用下列任一種方法:由URL調(diào)用Servlet、在﹤FORM﹥標(biāo)記中調(diào)用Servlet、在﹤SERVLET﹥標(biāo)記中調(diào)用Servlet、在JSP文件中調(diào)用Servlet、在A(yíng)SP文件中調(diào)用Servlet。

創(chuàng)新互聯(lián)建站專(zhuān)注于長(zhǎng)安網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗(yàn)。 熱誠(chéng)為您提供長(zhǎng)安營(yíng)銷(xiāo)型網(wǎng)站建設(shè),長(zhǎng)安網(wǎng)站制作、長(zhǎng)安網(wǎng)頁(yè)設(shè)計(jì)、長(zhǎng)安網(wǎng)站官網(wǎng)定制、微信平臺(tái)小程序開(kāi)發(fā)服務(wù),打造長(zhǎng)安網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供長(zhǎng)安網(wǎng)站排名全網(wǎng)營(yíng)銷(xiāo)落地服務(wù)。

1.由URL調(diào)用Servlet

這里有兩種用Servlet的URL從瀏覽器中調(diào)用該Servlet的方法:

(1)指定Servlet名稱(chēng):當(dāng)用WebSphere應(yīng)用服務(wù)器管理器來(lái)將一個(gè)Servlet實(shí)例添加(注冊(cè))到服務(wù)器配置中時(shí),必須指定“Servlet名稱(chēng)”參數(shù)的值。例如,可以指定將hi作為HelloWorldServlet的Servlet名稱(chēng)。要調(diào)用該Servlet,需打開(kāi)http://your.server.name/servlet/hi。也可以指定Servlet和類(lèi)使用同一名稱(chēng)(HelloWorldServlet)。在這種情況下,將由http://your.server.name/servlet/HelloWorldServlet來(lái)調(diào)用Servlet的實(shí)例。

(2)指定Servlet別名:用WebSphere應(yīng)用服務(wù)器管理器來(lái)配置Servlet別名,該別名是用于調(diào)用Servlet的快捷URL??旖軺RL中不包括Servlet名稱(chēng)。

2.在﹤FORM﹥標(biāo)記中指定調(diào)用Servlet

可以在﹤FORM﹥標(biāo)記中調(diào)用Servlet。HTML格式使用戶(hù)能在Web頁(yè)面(即從瀏覽器)上輸入數(shù)據(jù),并向Servlet提交數(shù)據(jù)。例如:

 
 
 
  1. ﹤FORMMETHOD="GET"ACTION="/servlet/myservlet"﹥  
  2. ﹤OL﹥  
  3. ﹤INPUTTYPE="radio"NAME="broadcast"VALUE="am"﹥AM﹤BR﹥  
  4. ﹤INPUTTYPE="radio"NAME="broadcast"VALUE="fm"﹥FM﹤BR﹥  
  5. ﹤/OL﹥  
  6. (用于放置文本輸入?yún)^(qū)域的標(biāo)記、按鈕和其它的提示符。)  
  7. ﹤/FORM﹥ 

ACTION特性表明了用于調(diào)用Servlet的URL。關(guān)于METHOD的特性,如果用戶(hù)輸入的信息是通過(guò)GET方法向Servlet提交的,則Servlet必須優(yōu)先使用doGet()方法。反之,如果用戶(hù)輸入的信息是通過(guò)POST方法向Servlet提交的,則Servlet必須優(yōu)先使用doPost()方法。使用GET方法時(shí),用戶(hù)提供的信息是查詢(xún)字符串表示的URL編碼。無(wú)需對(duì)URL進(jìn)行編碼,因?yàn)檫@是由表單完成的。然后URL編碼的查詢(xún)字符串被附加到ServletURL中,則整個(gè)URL提交完成。URL編碼的查詢(xún)字符串將根據(jù)用戶(hù)同可視部件之間的交互操作,將用戶(hù)所選的值同可視部件的名稱(chēng)進(jìn)行配對(duì)。例如,考慮前面的HTML代碼段將用于顯示按鈕(標(biāo)記為AM和FM),如果用戶(hù)選擇FM按鈕,則查詢(xún)字符串將包含name=value的配對(duì)操作為broadcast=fm。因?yàn)樵谶@種情況下,Servlet將響應(yīng)HTTP請(qǐng)求,因此Servlet應(yīng)基于HttpServlet類(lèi)。Servlet應(yīng)根據(jù)提交給它的查詢(xún)字符串中的用戶(hù)信息使用的GET或POST方法,而相應(yīng)地使用doGet()或doPost()方法。

3.在﹤SERVLET﹥標(biāo)記中指定調(diào)用Servlet

當(dāng)使用﹤SERVLET﹥標(biāo)記來(lái)調(diào)用Servlet時(shí),如同使用﹤FORM﹥標(biāo)記一樣,無(wú)需創(chuàng)建一個(gè)完整的HTML頁(yè)面。作為替代,Servlet的輸出僅是HTML頁(yè)面的一部分,且被動(dòng)態(tài)嵌入到原始HTML頁(yè)面中的其它靜態(tài)文本中。所有這些都發(fā)生在服務(wù)器上,且發(fā)送給用戶(hù)的僅是結(jié)果HTML頁(yè)面。建議在Java服務(wù)器頁(yè)面(JSP)文件中使用﹤SERVLET﹥標(biāo)記。請(qǐng)參閱有關(guān)JSP技術(shù)

原始HTML頁(yè)面中包含﹤SERVLET﹥和﹤/SERVLET﹥標(biāo)記。Servlet將在這兩個(gè)標(biāo)記中被調(diào)用,且Servlet的響應(yīng)將覆蓋這兩個(gè)標(biāo)記間的所有東西和標(biāo)記本身。如果用戶(hù)的瀏覽器可以看到HTML源文件,則用戶(hù)將看不到﹤SERVLET﹥和﹤/SERVLET﹥標(biāo)記。要在DominoGoWebserver上使用該方法,請(qǐng)啟用服務(wù)器上的服務(wù)器端包括功能。部分啟用過(guò)程將會(huì)涉及到添加特殊文件類(lèi)型SHTML。當(dāng)Web服務(wù)器接收到一個(gè)擴(kuò)展名為SHTML的Web頁(yè)面請(qǐng)求時(shí),它將搜索﹤SERVLET﹥和﹤/SERVLET﹥標(biāo)記。對(duì)于所有支持的Web服務(wù)器,WebSphere應(yīng)用服務(wù)器將處理SERVLET標(biāo)記間的所有信息。下列HTML代碼段顯示了如何使用該技術(shù)。

 
 
 
  1. ﹤SERVLET NAME="myservlet" CODE="myservlet.class" CODEBASE="url" initparm1="value"﹥  
  2. ﹤PARAM NAME="parm1" VALUE="value"﹥  
  3. ﹤/SERVLET﹥ 

使用NAME和CODE屬性帶來(lái)了使用上的靈活性??梢灾皇褂闷渲幸粋€(gè)屬性,也可以同時(shí)使用兩個(gè)屬性。NAME屬性指定了Servlet的名稱(chēng)(使用WebSphere應(yīng)用服務(wù)器管理器配置的),或不帶.class擴(kuò)展名的Servlet類(lèi)名。CODE屬性指定了Servlet類(lèi)名。使用WebSphere應(yīng)用服務(wù)器時(shí),建議指定NAME和CODE,或當(dāng)NAME指定了Servlet名稱(chēng)時(shí),僅指定NAME。如果僅指定了CODE,則會(huì)創(chuàng)建一個(gè)NAME=CODE的Servlet實(shí)例。裝入的Servlet將假設(shè)Servlet名稱(chēng)與NAME屬性中指定的名稱(chēng)匹配。然后,其它SHTML文件可以成功地使用NAME屬性來(lái)指定Servlet的名稱(chēng),并調(diào)用已裝入的Servlet。NAME的值可以直接在要調(diào)用Servlet的URL中使用。如果NAME和CODE都存在,且NAME指定了一個(gè)現(xiàn)有Servlet,則通常使用NAME中指定的Servlet。由于Servlet創(chuàng)建了部分HTML文件,所以當(dāng)創(chuàng)建Servlet時(shí),將可能會(huì)使用HttpServlet的一個(gè)子類(lèi),并優(yōu)先使用doGet()方法(因?yàn)镚ET方法是提供信息給Servlet的缺省方法)。另一個(gè)選項(xiàng)是優(yōu)先使用service()方法。另外,CODEBASE是可選的,它指定了裝入Servlet的遠(yuǎn)程系統(tǒng)的URL。請(qǐng)使用WebSphere應(yīng)用服務(wù)器管理器來(lái)從JAR文件配置遠(yuǎn)程Servlet裝入系統(tǒng)。

在上述的標(biāo)記示例中,initparm1是初始化參數(shù)名,value是該參數(shù)的值??梢灾付ǘ鄠€(gè)“名稱(chēng)-值”對(duì)的集合。利用ServletConfig對(duì)象(被傳遞到Servlet的init()方法中)的getInitParameterNames()和getInitParameter()方法來(lái)查找參數(shù)名和參數(shù)值的字符串?dāng)?shù)組。在示例中,parm1是參數(shù)名,并在初始化Servlet后被才被設(shè)置某個(gè)值。因?yàn)橹荒芡ㄟ^(guò)使用“請(qǐng)求”對(duì)象的方法來(lái)使用以﹤PARAM﹥標(biāo)記設(shè)置的參數(shù),所以服務(wù)器必須調(diào)用Servletservice()方法,以從用戶(hù)處傳遞請(qǐng)求。要獲得有關(guān)用戶(hù)的請(qǐng)求信息,請(qǐng)使用getParameterNames()、getParameter()和getParameterValues()方法。

初始化參數(shù)是持續(xù)的。假設(shè)一臺(tái)客戶(hù)機(jī)通過(guò)調(diào)用一個(gè)包含某些初始化參數(shù)的SHTML文件來(lái)調(diào)用Servlet。并假設(shè)第二臺(tái)客戶(hù)機(jī)通過(guò)調(diào)用第二個(gè)SHTML文件來(lái)執(zhí)行調(diào)用Servlet調(diào)用同一個(gè)Servlet,且該SHTML中未指定任何初始化參數(shù)。那么***次調(diào)用Servlet時(shí)所設(shè)置的初始化參數(shù)將一直可用,并且通過(guò)所有其它SHTML文件而調(diào)用的所有后繼Servlet都不會(huì)更改該參數(shù)。直到Servlet調(diào)用了destroy()方法后,才能重新設(shè)置初始化參數(shù)。例如,如果另一個(gè)SHTML文件指定了另一個(gè)不同的初始化參數(shù)值,雖然已此時(shí)已裝入了Servlet,但該值仍將被忽略。

4.在JSP文件中調(diào)用Servlet

可以從JavaServer頁(yè)面(JSP)文件中調(diào)用Servlet。請(qǐng)參閱JSP技術(shù)部分。

5.在A(yíng)SP文件中調(diào)用Servlet

如果在Microsoft Internet Information Server(IIS)上有遺留的ASP文件,并且無(wú)法將ASP文件移植成JSP文件時(shí),可用ASP文件來(lái)調(diào)用Servlet。在WebSphere應(yīng)用服務(wù)器中的ASP支持包括一個(gè)用于嵌入Servlet的ActiveX控制,下面介紹ActiveX控制AspToServlet的方法和屬性。

該方法說(shuō)明如下:

(1)String ExecServletToString(String servletName);執(zhí)行ServletName,并將其輸出返回到一個(gè)字符串中。

(2)ExecServlet(String servletName);執(zhí)行ServletName,并將其輸出直接發(fā)送至HTML頁(yè)面。

(3)String VarValue(String varName);獲得一預(yù)置變量值(其它格式)。

(4)VarValue(String varName, String newVal);設(shè)置變量值。變量占據(jù)的總大小應(yīng)小于0.5個(gè)千字節(jié)(Kbyte)。且僅對(duì)配置文件使用這些變量。

其屬性如下:

◆Boolean WriteHeaders;若該屬性為真,則Servlet提供的標(biāo)題被寫(xiě)入用戶(hù)處。缺省值為假。

◆Boolean OnTest;若該屬性為真,服務(wù)器會(huì)將消息記錄到生成的HTML頁(yè)面中。缺省值為假。

下列ASP調(diào)用Servlet腳本示例是以Microsoft Visual Basic Scripting(VBScript)書(shū)寫(xiě)的。

 
 
 
  1. ﹤%  
  2. ' Small sample asp file to show the capabilities of the servlets and the ASP GateWay ...  
  3. %﹥  
  4. ﹤H1﹥ Starting the ASP-﹥Java Servlet demo﹤/H1﹥  
  5. ﹤%  
  6. ' Create a Servlet gateway object and initialize it ...  
  7. Set javaasp = Server.CreateObject("AspToServlet.AspToServlet")  
  8. ' Setting these properties is only for the sake of demo.  
  9. ' These are the default values ...  
  10. javaasp.OnTest = False 
  11. javaasp.WriteHeaders = False 
  12. ' Add several variables ...  
  13. javaasp.VarValue("gal") = "lag"  
  14. javaasp.VarValue("pico")= "ocip"  
  15. javaasp.VarValue("tal") = "lat"  
  16. javaasp.VarValue("paz") = "zap"  
  17. javaasp.VarValue("variable name with spaces") = "variable value with spaces"  
  18. %﹥  
  19. ﹤BR﹥  
  20. Lets check the variables  
  21. ﹤%  
  22. Response.Write("variable gal = ")  
  23. Response.Write(javaasp.VarValue("gal"))  
  24. %﹥  
  25. ﹤BR﹥  
  26. ﹤%  
  27. Response.Write("variable picopico = " & javaasp.VarValue("pico"))  
  28. %﹥  
  29.  
  30. ﹤BR﹥  
  31. ﹤HR﹥  
  32. ﹤%  
  33. galout = javaasp.ExecServletToString("SnoopServlet")  
  34. If javaasp.WriteHeaders = True Then  
  35. %﹥  
  36. Headers were written ﹤%  
  37. Else  
  38. %﹥  
  39. Headers were not written ﹤%  
  40. End If  
  41. Response.Write(galout)  
  42. %﹥  
  43. ﹤H1﹥ The End ...﹤/H1﹥ 

調(diào)用Servlet的方法也是根據(jù)程序員自身的要求來(lái),那么以上的這些方法希望對(duì)你在工作中要實(shí)現(xiàn)調(diào)用Servlet有幫助。


標(biāo)題名稱(chēng):調(diào)用Servlet的多種方法淺析
轉(zhuǎn)載注明:http://www.dlmjj.cn/article/cdphpso.html