我刚刚开始使用Java servlet。我正在尝试开发一个仅用于练习的程序,并了解我们可以用Java servlet做的事情。
尝试生成一个生成cookie的程序并将其发送回客户端作为响应。 发送回cookie和获取cookie信息很好,但我想做的是我们可以使用cookie获取有关客户端环境的信息,以及我们是否可以使用cookie获取浏览器信息,例如哪个浏览器,其版本,操作系统等
我知道他们存储状态信息,因为HTTP是无状态的。所以我只是想知道并尝试通过servlet中的cookie获取客户端的环境信息和浏览器信息。
答案 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