2009-09-24 64 views
0

我有一個servlet託管在glassfish服務器上。我想使用telnet與它溝通,以瞭解使用html表單get方法時幕後發生的事情。如何使用telnet與運行在glassfish上的java servlet進行交互?

我應該在HTTP請求的主機字段中給出什麼?

Get /WebApplication1/NServlet HTTP/1.1 
Host: localhost 

如果我想在HTTP請求中發送自定義屬性如下,是否可以使用request.getAttribute()方法提取它們的值。

Get /WebApplication1/NServlet HTTP/1.1 
Host: localhost 
Custom-Attribute: xyz 

另一個疑問就是javax.servlet包不是java SE sdk的一部分。我不得不安裝java ee才能運行它。

+1

爲什麼你想要使用telnet,這是堅果。如果你想知道發生了什麼,然後使用Python和httplib編寫一個簡單的客戶端,或者Apache HttpClient庫將幫助你... – Jon 2009-09-24 18:04:53

+0

該學習HTTP了:http://www.w3.org/Protocols/rfc2616/ rfc2616.html – BalusC 2010-01-17 21:41:09

+0

我在電話中(支持大型軟件公司名稱編輯)支持代表,他要求我做同樣的事情,以證明我的Tomcat服務器沒有錯誤配置。所以我會說,這不完全是瘋了。 – KeithL 2014-06-12 16:27:31

回答

0

如果您想使用HTTP協議(如您在評論中所建議的那樣),請查看HttpClient。顧名思義,它就是客戶端/服務器HTTP實現的客戶端,應該相對容易地確定在客戶端設置的內容,以便在服務器上看到它。

有一個很好的教程here。我可能會首先在servlet中獲得一個簡單的頁面,然後通過瀏覽器進行檢查,然後實現客戶端。

0

根據你的問題,我沒有足夠的信息給任何人回答你。 Tomcat/Jetty /等基本上是包含servlet(並因此包含JSP/JSF/Wicket等)處理器的Web服務器,用於動態生成內容。 那麼,你試圖弄清楚什麼是什麼,爲什麼?

+0

我想爲我的應用程序使用HTTP協議。就像HTTP具有內容長度一樣,我計劃從客戶端向服務器發送配置參數。所以我可以做request.getParameter(「parameter-name」);它是我的應用程序使用http協議的正確方式,還是應該將我的配置參數發送到http請求的內容部分。 – 2009-09-24 18:58:03

+0

所以你試圖通過http配置和管理一個應用程序?如果它是一個Java應用程序,那麼JMX可以更輕鬆地完成它。如果它不是.HttpClient。 你試圖做的事聽起來像是這樣做的困難。 – 2009-09-24 22:01:48

1

Host字段只是URL的主機名部分,例如, Host: google.comhttp://google.com/

Custom-Attribute: xyz將在HttpServletRequest使用getHeader()露出,不getAttribute()。