javax.servlet.http.cookie类用户创建一个cookie,Response接口中也定义了一个addcookie方法(向服务器写东西都找到Response方法),用于在其响应头中增加一个响应的set-cookie头字段,同样,Request接口中也定义了一个getcookies方法(获取到的是一个数据,即所有的cookie),用于获取客户端提交的cookie,cookie类方法如下:
在创建了一个cookie之后,如果不用这个方法设置,那么cookie的生命周期就是浏览器进程
比如我们常用的论坛登录,记住密码一周,其实就是把服务器发送过来的cookie保存在了本地硬盘、
cookie应用:
记录上次访问时间:
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setCharacterEncoding("UTF-8"); response.setContentType("text/html;charset=UTF-8"); PrintWriter out = response.getWriter(); out.print("您上次访问时间是:"); //获得用户的时间cookie Cookie cookie[] = request.getCookies(); for(int i=0;cookie!=null &&i<cookie.length;i++) { if(cookie[i].getName().equals("lastAccessTime")) { long cookieValue = Long.parseLong(cookie[i].getValue()); Date date =new Date(cookieValue); out.print(date.toLocaleString()); } } //给用户回送最新的访问时间 Cookie cookie2 =new Cookie("lastAccessTime",System.currentTimeMillis()+""); cookie2.setMaxAge(1*30*24*3600); cookie2.setPath("/D716"); response.addCookie(cookie2); }
其中setMaxAge是设置cookie有效期,不设置的话是会话级别的,即关掉浏览器就没有了
把值设置为0,表示清除该cookie。
例如上面的例子加一个按钮,表示清除上次访问时间。
删除cookie的时候path也需要一致
setPath是设置有效域,如果不设置,那么cookie只是在这个Servlet下有效,设置后,会在整个web下有效