我对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