0

我正在尝试获取发出请求的输入设备的详细信息。

我可以知道,如果这可以使用 httpservlet 请求对象。

4

3 回答 3

1

查看 HTTP 标头USER-AGENT标头

此行(如果存在)给出原始客户端使用的软件程序。这是出于统计目的和协议违规的跟踪。它应该包括在内。第一个空格分隔的单词必须是软件产品名称,带有可选的斜杠和版本指示符。构成用户代理一部分的其他产品可以作为单独的词放置。

  <field>   =   User-Agent: <product>+
    <product> =   <word> [/<version>]
    <version> =   <word>

例子:

           User-Agent:  LII-Cello/1.0  libwww/2.5

得到他们

Header[] allHeaders = req.getAllHeaders();

每个标头对象都包含名称和值。

于 2013-09-17T10:47:55.047 回答
1

User-agent 标头是您将获得的最佳标头。但是,您不应将此标题视为“福音真理”。由于各种原因,它经常被欺骗。(确实,有专门设计用于帮助用户执行此操作的 Web 浏览器插件/附加组件!)

将用户代理字符串映射到浏览器和操作系统是一个启发式过程。你最好寻找一个现有的 Java 库来为你做这件事。

于 2013-09-17T11:07:11.540 回答
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();
}
于 2013-09-17T10:59:19.987 回答