我正在尝试获取发出请求的输入设备的详细信息。
我是否知道,如果可以使用httpservlet请求对象。
答案 0 :(得分:1)
查看HTTP标头USER-AGENT和headers
此行(如果存在)提供原始客户端使用的软件程序。这是出于统计目的和追踪违反协议的行为。它应该包括在内。第一个以空格分隔的单词必须是软件产品名称,并带有可选的斜杠和版本指示符。构成用户代理一部分的其他产品可以单独列出。
<field> = User-Agent: <product>+
<product> = <word> [/<version>]
<version> = <word>
示例:
User-Agent: LII-Cello/1.0 libwww/2.5
获取它们
Header[] allHeaders = req.getAllHeaders();
每个标题对象都包含名称和值。
答案 1 :(得分:1)
User-agent标头是您将获得的最佳标头。但是,您不应将此标题视为“福音真理”。由于各种原因,它经常被欺骗。 (实际上,有一些网页浏览器插件/附加组件专门用于帮助用户执行此操作!)
将用户代理字符串映射到浏览器和操作系统是一个启发式过程。您最好找一个现有的Java库来为您完成。
答案 2 :(得分:0)
是的,您可以通过从HttpServletRequest对象检索User-Agent标头来获取您所需的详细信息:
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String browserType = request.getHeader("User-Agent"); // This is the line you're after
// This will just output the user agent to the browser
response.getOutputStream().write(browserType.getBytes());
response.getOutputStream().close();
}