成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

調用Servlet的多種方法淺析

開發 后端
調用Servlet是我們在編程過程中經常會用到的功能,那么如何調用Servlet呢?本文將會給你在多種形式下的調用淺談些方法。

要調用Servlet或Web應用程序,請使用下列任一種方法:由URL調用Servlet、在﹤FORM﹥標記中調用Servlet、在﹤SERVLET﹥標記中調用Servlet、在JSP文件中調用Servlet、在ASP文件中調用Servlet。

1.由URL調用Servlet

這里有兩種用Servlet的URL從瀏覽器中調用該Servlet的方法:

(1)指定Servlet名稱:當用WebSphere應用服務器管理器來將一個Servlet實例添加(注冊)到服務器配置中時,必須指定“Servlet名稱”參數的值。例如,可以指定將hi作為HelloWorldServlet的Servlet名稱。要調用該Servlet,需打開http://your.server.name/servlet/hi。也可以指定Servlet和類使用同一名稱(HelloWorldServlet)。在這種情況下,將由http://your.server.name/servlet/HelloWorldServlet來調用Servlet的實例。

(2)指定Servlet別名:用WebSphere應用服務器管理器來配置Servlet別名,該別名是用于調用Servlet的快捷URL。快捷URL中不包括Servlet名稱。

2.在﹤FORM﹥標記中指定調用Servlet

可以在﹤FORM﹥標記中調用Servlet。HTML格式使用戶能在Web頁面(即從瀏覽器)上輸入數據,并向Servlet提交數據。例如:

  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. (用于放置文本輸入區域的標記、按鈕和其它的提示符。)  
  7. ﹤/FORM﹥ 

ACTION特性表明了用于調用Servlet的URL。關于METHOD的特性,如果用戶輸入的信息是通過GET方法向Servlet提交的,則Servlet必須優先使用doGet()方法。反之,如果用戶輸入的信息是通過POST方法向Servlet提交的,則Servlet必須優先使用doPost()方法。使用GET方法時,用戶提供的信息是查詢字符串表示的URL編碼。無需對URL進行編碼,因為這是由表單完成的。然后URL編碼的查詢字符串被附加到ServletURL中,則整個URL提交完成。URL編碼的查詢字符串將根據用戶同可視部件之間的交互操作,將用戶所選的值同可視部件的名稱進行配對。例如,考慮前面的HTML代碼段將用于顯示按鈕(標記為AM和FM),如果用戶選擇FM按鈕,則查詢字符串將包含name=value的配對操作為broadcast=fm。因為在這種情況下,Servlet將響應HTTP請求,因此Servlet應基于HttpServlet類。Servlet應根據提交給它的查詢字符串中的用戶信息使用的GET或POST方法,而相應地使用doGet()或doPost()方法。

3.在﹤SERVLET﹥標記中指定調用Servlet

當使用﹤SERVLET﹥標記來調用Servlet時,如同使用﹤FORM﹥標記一樣,無需創建一個完整的HTML頁面。作為替代,Servlet的輸出僅是HTML頁面的一部分,且被動態嵌入到原始HTML頁面中的其它靜態文本中。所有這些都發生在服務器上,且發送給用戶的僅是結果HTML頁面。建議在Java服務器頁面(JSP)文件中使用﹤SERVLET﹥標記。請參閱有關JSP技術

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

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

使用NAME和CODE屬性帶來了使用上的靈活性。可以只使用其中一個屬性,也可以同時使用兩個屬性。NAME屬性指定了Servlet的名稱(使用WebSphere應用服務器管理器配置的),或不帶.class擴展名的Servlet類名。CODE屬性指定了Servlet類名。使用WebSphere應用服務器時,建議指定NAME和CODE,或當NAME指定了Servlet名稱時,僅指定NAME。如果僅指定了CODE,則會創建一個NAME=CODE的Servlet實例。裝入的Servlet將假設Servlet名稱與NAME屬性中指定的名稱匹配。然后,其它SHTML文件可以成功地使用NAME屬性來指定Servlet的名稱,并調用已裝入的Servlet。NAME的值可以直接在要調用Servlet的URL中使用。如果NAME和CODE都存在,且NAME指定了一個現有Servlet,則通常使用NAME中指定的Servlet。由于Servlet創建了部分HTML文件,所以當創建Servlet時,將可能會使用HttpServlet的一個子類,并優先使用doGet()方法(因為GET方法是提供信息給Servlet的缺省方法)。另一個選項是優先使用service()方法。另外,CODEBASE是可選的,它指定了裝入Servlet的遠程系統的URL。請使用WebSphere應用服務器管理器來從JAR文件配置遠程Servlet裝入系統。

在上述的標記示例中,initparm1是初始化參數名,value是該參數的值。可以指定多個“名稱-值”對的集合。利用ServletConfig對象(被傳遞到Servlet的init()方法中)的getInitParameterNames()和getInitParameter()方法來查找參數名和參數值的字符串數組。在示例中,parm1是參數名,并在初始化Servlet后被才被設置某個值。因為只能通過使用“請求”對象的方法來使用以﹤PARAM﹥標記設置的參數,所以服務器必須調用Servletservice()方法,以從用戶處傳遞請求。要獲得有關用戶的請求信息,請使用getParameterNames()、getParameter()和getParameterValues()方法。

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

4.在JSP文件中調用Servlet

可以從JavaServer頁面(JSP)文件中調用Servlet。請參閱JSP技術部分。

5.在ASP文件中調用Servlet

如果在Microsoft Internet Information Server(IIS)上有遺留的ASP文件,并且無法將ASP文件移植成JSP文件時,可用ASP文件來調用Servlet。在WebSphere應用服務器中的ASP支持包括一個用于嵌入Servlet的ActiveX控制,下面介紹ActiveX控制AspToServlet的方法和屬性。

該方法說明如下:

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

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

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

(4)VarValue(String varName, String newVal);設置變量值。變量占據的總大小應小于0.5個千字節(Kbyte)。且僅對配置文件使用這些變量。

其屬性如下:

◆Boolean WriteHeaders;若該屬性為真,則Servlet提供的標題被寫入用戶處。缺省值為假。

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

下列ASP調用Servlet腳本示例是以Microsoft Visual Basic Scripting(VBScript)書寫的。

  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﹥ 

調用Servlet的方法也是根據程序員自身的要求來,那么以上的這些方法希望對你在工作中要實現調用Servlet有幫助。

【編輯推薦】

  1. Servlet配置及開發運行測試
  2. 選擇JSP開發工具
  3. Servlet和JSP路徑詳細介紹
  4. 如何提升Servlet和JSP應用程序的效率
  5. JSP和Servlet中的幾個編碼的作用及原理
責任編輯:仲衡 來源: 網絡學院
相關推薦

2024-01-12 08:40:56

Python計算質數質數

2009-10-20 15:39:20

Linux壓縮

2009-05-18 17:16:50

2009-07-27 14:41:33

ASP.NET調用存儲

2009-07-09 14:32:39

2009-07-08 12:56:32

編寫Servlet

2009-07-06 13:18:35

Servlet方法

2010-08-16 16:39:48

DIV內容居中

2009-07-09 13:04:37

Servlet接口

2009-07-09 13:45:06

Servlet基本結構

2010-04-19 16:17:39

防火墻網絡管理服務器安全

2022-07-05 15:15:11

Python日期命令

2009-07-08 10:02:41

Servlet 3.0

2009-07-06 09:23:51

Servlet定義

2019-03-27 14:41:41

Python數據庫Windows

2009-09-18 13:47:17

CLR類庫

2009-02-25 09:52:14

類型轉換.NET 強制轉型

2009-09-24 14:59:38

C#編寫COM組件

2009-09-18 09:16:06

.NET垃圾回收

2025-04-30 07:01:29

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 亚洲欧洲一区 | 一级片网站视频 | 欧美日韩1区 | 日韩美香港a一级毛片免费 国产综合av | 国产在线一区二区 | 中文字幕在线免费视频 | 日韩一二区在线 | 久久久精选| 91视频进入| 日韩毛片在线免费观看 | 日韩视频在线免费观看 | www.天天操.com| 超碰在线免费公开 | 美女久久视频 | 欧美美女爱爱视频 | 亚洲欧洲成人在线 | 久久精品中文字幕 | zzzwww在线看片免费 | 国产精品一区二区三区99 | 91国产精品 | 九九久久精品 | 国产91综合 | 人碰人操 | 日韩av大片免费看 | 免费观看黄色片视频 | 曰批视频在线观看 | 91资源在线| 中文字幕av网址 | 成人网址在线观看 | 国产综合精品一区二区三区 | 久久久精品久久 | 亚洲国产精品suv | 欧美精品一区二区三区视频 | 成人三级视频 | 久久91 | 欧美一级三级在线观看 | 国产亚洲一区二区三区 | 黄网站色大毛片 | 一级在线视频 | 激情视频网站 | 欧美高清视频 |