黑马day05 Cookie技术入门&记录上次访问的时间

1.Cookie技术:

客户端技术

Cookie是基于set-Cookie响应头和Cookie请求头工作的,服务器可以发送set-Cookie请求头命令浏览器保存一个cookie信息,浏览器会在访问服务器时以Cookie请求头的方式带回之前保存的信息

request.getCookies();

response.addCookie(Cookie c);

new  Cookie(String name,String value)//Cookie在构造的时候就需要设定好cookie的名字和值

getName();

getValue();

setValue();

!!setMaxAge与getMaxAge方法

-- 一个Cookie如果没有设置过MaxAge则这个Cookie是一个会话级别的Cookie,这个Cookie信息打给浏览器后浏览器会将它保存在浏览器的内存中,这意味着只要浏览器已关闭随着浏览器内存的销毁Cookie信息也就消失了.一个Cookie也可以设置MaxAge,浏览一一旦发现收到的Cookie被设置了MaxAge,则会将这个Cookie信息以文件的形式保存在浏览器的临时文件夹中,保存到指定的时间到来位置.这样一来即使多次开关浏览器,由于这些浏览器都能在临时文件夹中看到cookie文件,所以在cookie失效之前cookie信息都存在.

-- 想要命令浏览器删除一个Cookie,发送一个同名同path的cookie,maxage设置为0,浏览器以名字+path识别cookie,发现同名同path,cookie覆盖后立即超时被删除,从而就删除了cookie.

!!setPath与getPath方法

-- 用来通知浏览器在访问服务器中的哪个路径及其子路径时带着当前cookie信息过来

如果不明确设置,则默认的路径是发送Cookie的Servlet所在的路径

http://localhost/Day05/servlet/...

setDomain与getDomain方法

-- 用来通知浏览器在访问哪个域名的时候带着当前的cookie信息.但是要注意,现代的浏览器一旦发现cookie设置过domain信息则会拒绝接受这个Cookie.我们平常不要设置这个方法

2.实验:

package cn.itheima.cookie;

import java.io.IOException;
import java.util.Date;

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 CookieServlet extends HttpServlet {

	public void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		//设置编码
		response.setContentType("text/html;charset=utf-8");
		Cookie[] cookies = request.getCookies();
		Cookie findC = null;
		//遍历cookies
		if(cookies!=null){
			for(Cookie c:cookies){
				if("last".equals(c.getName())){
					findC=c;
				}
			}
		}
		if(findC==null){
			response.getWriter().write("您是第一次访问,目前时间是:"+new Date().toLocaleString());
		}else{
			response.getWriter().write("您上次访问的时间是:"+findC.getValue()+"<br/>"+"目前时间是:"+new Date().toLocaleString());
		}
		//把当前时间以cookie的方式发送给浏览器-->生命周期默认是会话级别的,即会话结束cookie死亡
		Date date=new Date();
		Cookie last=new Cookie("last", date.toLocaleString());
		response.addCookie(last);
	}

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

}

运行结果:

时间: 2024-10-25 04:17:44

黑马day05 Cookie技术入门&记录上次访问的时间的相关文章

黑马day05 Cookie小案例&amp;记录上次访问的图书

1.建立一个javaBean Book package cn.itheima.domain; import java.io.Serializable; public class Book implements Serializable{ private String id; private String name; private String description; private String author; private String price; public Book(){} pu

javaWeb 使用cookie显示上次访问网站时间

package de.bvb.cookie; import java.io.IOException; import java.io.PrintWriter; import java.util.Date; import javax.enterprise.inject.ResolutionException; import javax.servlet.ServletException; import javax.servlet.http.Cookie; import javax.servlet.ht

cookie案例-显示用户上次访问网站的时间

1 package cn.itcast.cookie; 2 3 import java.io.IOException; 4 import java.io.PrintWriter; 5 import java.util.Date; 6 7 import javax.servlet.ServletException; 8 import javax.servlet.http.Cookie; 9 import javax.servlet.http.HttpServlet; 10 import javax

cookies 显示用户上次访问的时间 学习笔记

Cookie.setMaxAge(72460*60) Cookie.setPath("/day0X"); Httpwatch观察 Cookie.setMaxAge(0)删除同名Cookie import java.io.IOException; import java.util.Date; import javax.servlet.ServletException; import javax.servlet.http.Cookie; import javax.servlet.http.

Cookie技术

u  常用的API 创建Cookie对象 Cookie(String name, String value)    ->以指定数据创建Cookie对象 设置Cookie对象 void setMaxAge(int expiry)                ->设置Cookie的最大有效时间 void setPath(String uri)                             ->设置Cookie的有效路径 void setDomain(String pattern)

Servlet—Cookie(显示用户上次访问时间、显示商品浏览历史)

1 . 什么是会话? 会话可简单理解为:用户开一个浏览器,点击多个超链接,访问服务器多个web资源,然后关闭浏览器,整个过程称之为一个会话. 1.1 会话过程中要解决的一些问题? 每个用户在使用浏览器与服务器进行会话的过程中,不可避免各自会产生一些数据,程序要想办法为每个用户保存这些数据. 例如:用户点击超链接通过一个servlet购买了一个商品,程序应该想办法保存用户购买的商品,以便于用户点结帐servlet时,结帐servlet可以得到用户购买的商品为用户结帐. 思考:用户购买的商品保存在r

java 使用cookie记录用户上一次访问的时间 记住 用户的 登录名

package cn.itcast.cookie; import java.io.IOException; import java.io.PrintWriter; import java.util.Date; import javax.servlet.ServletException; import javax.servlet.http.Cookie; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpSer

会话管理之Cookie技术

会话管理是web开发中比较重要的环节,这一节主要总结下会话管理中的cookie技术. 1. 何为会话 会话可简单理解为:用户开一个浏览器,点击多个超链接,访问服务器多个web资源,然后关闭浏览器,整个过程称为一个会话. 1.1 会话过程中要解决的问题 1)每个用户在使用浏览器与服务器进行会话的过程中,不可避免会各自产生一些数据,程序要想办法为每个用户保存这些数据.        2)如:用户点击超链接通过一个servlet购买了一个商品,程序应该想办法保存用户购买的商品,以便于用于点结账serv

cookie-显示用户上次访问网站的时间

public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //防止中文乱码 response.setContentType("text/html;charset=UTF-8"); PrintWriter out=response.getWriter(); out.write(" 你上次访问的时间是:&quo