我對Java不熟悉,但我需要從我的applet中向遠程webservice發出請求。如何根據applet的請求設置Accept-Language頭文件
Web服務(.Net 1.1)使用HttpContext.Current.Request.UserLanguages[0]
來確定要使用的語言。但這個成員的價值一直是空的。
那麼有沒有辦法通過Accept-Language頭和類似「en-GB」的設置?
我對Java不熟悉,但我需要從我的applet中向遠程webservice發出請求。如何根據applet的請求設置Accept-Language頭文件
Web服務(.Net 1.1)使用HttpContext.Current.Request.UserLanguages[0]
來確定要使用的語言。但這個成員的價值一直是空的。
那麼有沒有辦法通過Accept-Language頭和類似「en-GB」的設置?
如果知道applet運行的系統的默認語言(操作系統)足夠好,您可以從Applet#getLocale()
得到它。如果您確實需要首選的瀏覽器語言,則可以從ServletRequest#getLocale()
的Servlet容器中獲取服務器端的內容,並動態生成小程序標記,並將語言代碼作爲參數傳遞給小程序。
不好意思問,但我得到了下面的問題 「的HttpServletRequest解決不了的」 我已經在上面的「進口javax.servlet.http包添加了這個*。 「 但仍然沒有運氣,找不到我需要做什麼?我試圖做 HttpServletRequest request = ServletActionContext.getRequest(); Locale userPreferredLocale = request.getLocale(); 有什麼建議嗎? – 2009-11-04 14:23:17
這可能着眼於Accept-Language
HTTP標頭,您可以通過做在Java中獲得
request.getHeader("Accept-Language")
[新的答案]
好吧,我想你做這樣的事情在小程序
URL url = new URL("http://www.whateverwebservice.com/passmealongthedata");
URLConnection urlconn = url.openConnection();
然後只需設置Accept-Language
標題,然後再執行實際請求
//Assuming you know the language parameter you want to pass along you
urlconnection.setRequestProperty("Accept-Language", "en-GB");
//or "en-GB,en;q=0.7" or similar
....
continue with your program flow
....
如果語言參數應該依賴於瀏覽器中設置的語言參數,那麼使用.Net方法會很有意義。當用戶在頁面上使用構建的小應用程序請求頁面時,插入下面描述的附加<parameter>
標記。並修改該小程序以發送該值。希望我明白這一點。
[REMOVED]
[老答案】
假設你真的想確定一個applet在客戶端的瀏覽器版本:
這是不直接可能來自java AFAIK,因爲applet不必關心它運行的瀏覽器。但是你可以
檢查Passing Parameters to Applets在通過瀏覽器版本的小應用程序瞭解如何做到這一點的示例。
道歉的混亂! 我根本不懂Java中的任何知識。 我正在使用遺留應用程序,並且他們使用HttpContext.Current.Request.UserLanguages [0]來確定要使用的語言。 在JavaApplet中可能執行類似於HttpContext.Current.Request.UserLanguages [0]的操作嗎? 這javaapplet調用一個web服務,我需要通過像「en-GB」等..... 我試圖檢測到在web服務本身(.net 1.1),但沒有喜歡作爲HttpContext.Current.Request .UserLanguages [0]始終爲空。 我希望這個澄清一點 感謝您的時間 – 2009-11-04 09:59:58
擴展答案 – jitter 2009-11-04 10:27:07
對不起。改寫問題以適合您的真實問題 – jitter 2009-11-04 10:32:39