会话技术:Cookie和Session

一、Cookie操作

       cookie:将服务器的数据保存到浏览器端的技术

   * IE;将cookie保存到指定目录中,以文件的形式存储
   * 火狐或谷歌:将cookie保存到指定的文件中
  * 使用HTTP协议进行通信,而HTTP协议是采用ISO-8859-1进行编码的
  * request.getCookies();获得当前web项目的所有的cookie信息,获得当前servlet所在目录,以及之上的所有目录下的cookie信息   
  * cookie的value可以设置多少个字符:4kb

public void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		request.setCharacterEncoding("UTF-8");
		response.setContentType("text/html;charset=UTF-8");
		String data = "中文"; //中文必须要进行解码才能保存成功
 		Cookie cookie = new Cookie("cn",URLEncoder.encode(data, "UTF-8"));
		//读取Cookie时用URLDecoder.decode(c.getValue(), "UTF-8");进行解码
		
		// * 修改cookie保存路径
		cookie.setPath("/day07/");
		//设置有效时间
		cookie.setMaxAge(60*60); // 如果设置的值为零,则进行删除操作,单位是秒

 		//发送数据
		response.addCookie(cookie);
	}

二、Session
       session的默认有效时间是30分钟,可以在tomcat的conf/web.xml中进行修改

public void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		request.setCharacterEncoding("UTF-8");
		response.setContentType("text/html;charset=UTF-8");
		HttpSession session = request.getSession(); //没有创建,有返回
		System.out.println(session.isNew());
	}

看下面的响应(Response)中有个Set-Cookie,创建session后会有个ID,服务器会将这个ID以Cookie响应到浏览器,浏览器关闭时这个Cookie也就消失。可以对这个cookie进行持久化操作

      会话技术:Cookie和Session_第1张图片
      

你可能感兴趣的:(会话技术:Cookie和Session)