Java 27---会话概念与Cookie

导读

1.绝对路径与相对路径
2.会话
3.Cookie—浏览器技术

绝对路径与相对路径

在这里插入图片描述

在这里插入图片描述

会话

会话是指浏览器第一次打开到关闭的过程,其中可以有多次请求,多次响应

在这里插入图片描述

在这里插入图片描述

Cookie—浏览器技术

Cookie是客户端技术,程序把每个用户的数据以cookie的形式写给用户各自的浏览器。当用户使用浏览器再去访问服务器中的web资源时,就会带着各自的数据去。这样,web资源处理的就是用户各自的数据了。

⚠️在浏览器里 设置->高级->内容设置->Cookie查看
cookie中置存储英文

在这里插入图片描述

实例

demo1

package com.oracleoaec.servlet;

import java.io.IOException;
import java.net.URI;
import java.net.URL;
import java.net.URLEncoder;

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 ServletDemo1 extends HttpServlet{
	@Override
	protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		Cookie cookie = new Cookie("key", "value");//创建cookie,默认路径 当前资源的父路径
		//告诉浏览器,保存这条信息
		//URLEncoder的作用是将中文转码
		resp.addCookie(cookie);
		Cookie c2 = new Cookie("name",
				URLEncoder.encode("罗玉凤", "utf-8"));
		c2.setMaxAge(Integer.MAX_VALUE);
		c2.setPath("/");//设置路径/
		resp.addCookie(c2);
		Cookie c3 = new Cookie("age", "18");
		c3.setMaxAge(600);//设置存活时间秒
		c3.setPath("/haha");//设置路径/haha
		resp.addCookie(c3);
		
//		http://localhost:8888/Day04/haha/doS8
	}
	@Override
	protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		doGet(req, resp);
	}
}


路径影响:
应用只能访问自身URL路径下的cookies
根路径:当前应用都能访问--不建议使用
默认路径:当前资源的路径,在这个路径下的所有资源都能访问
指定路径:自己指定的路径,在这个路径下的所有资源都能访问


生存时间:
cookie:maxAge:最大生存时间
负数:Cookie存储在浏览器内容中,浏览器关闭,Cookie失效
0:表示删除Cookie
正数:Cookie存储在本地文件中,以秒为单位,有效期为正数值秒
默认值-1

demo2

package com.oracleoaec.servlet;

import java.io.IOException;
import java.net.URLDecoder;

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 ServletDemo2 extends HttpServlet{
	@Override
	protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		resp.setContentType("text/html;charset=utf-8");
		//获取请求携带的cookie数据,没有则返回null
		Cookie[] cookies = req.getCookies();
		//遍历数组
		//URLDecoder的作用是解码成中文
		for (Cookie c : cookies) {
			if("name".equals(c.getName())){
				String value = URLDecoder
						.decode(c.getValue(), "utf-8");
				resp.getWriter().write("key="+c.getName()+",value="+value+"<br/>");
			}else{
				//输出打印
				resp.getWriter().write("key="+c.getName()+",value="+c.getValue()+"<br/>");
			}
		}
	}
	@Override
	protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		doGet(req, resp);
	}
}

浏览器端有很多Cookie,都携带哪些?
发送请求时:根据生成Cookie的资源所在的路径进行区分
当请求资源时,如果请求资源在这个路径或者这个路径的子文件夹下,
都会携带这些Cookie

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值