通过cookie获取客户端环境信息

时间:2012-01-04 02:31:31

标签: java servlets cookies

我刚刚开始使用Java servlet。我正在尝试开发一个仅用于练习的程序,并了解我们可以用Java servlet做的事情。

尝试生成一个生成cookie的程序并将其发送回客户端作为响应。 发送回cookie和获取cookie信息很好,但我想做的是我们可以使用cookie获取有关客户端环境的信息,以及我们是否可以使用cookie获取浏览器信息,例如哪个浏览器,其版本,操作系统等

我知道他们存储状态信息,因为HTTP是无状态的。所以我只是想知道并尝试通过servlet中的cookie获取客户端的环境信息和浏览器信息。

2 个答案:

答案 0 :(得分:3)

Cookie不是为了获取客户信息而设计的。您必须使用javax.servlet.http.HttpServletRequest方法 - getHeader()getHeaders()方法来读取请求标头键值。

 Enumeration names=request.getHeaderNames();

  while(names.hasMoreElements())
     {
     String key=names.nextElement().toString();
     String value=request.getHeader(key);
     }

想要获得user-agent密钥的价值。

String userAgent=request.getHeader("user-agent");

答案 1 :(得分:0)

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class GetCookiesServlet extends HttpServlet {

    public void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {

        Cookie[] cookies = request.getCookies();

        response.setContentType("text/html");
        PrintWriter pw = response.getWriter();
        pw.println("<B>");
        for (int i = 0; i < cookies.length; i++) {
            String name = cookies[i].getName();
            String value = cookies[i].getValue();
            pw.println("name = " + name + "; value = " + value);
        }
        pw.close();
    }
}

请访问此link