哈喽,大家好,今天我们一起来 康 康 session与cookie


目录

  • 一,会话
  • 二,session对象
  • 三,Cookie
  • 四,访问分析
  • 五,session对象与cookie的对比
  • 六,application对象
  • 七天免登案例


一,会话

概念:一个会话就是浏览器与服务器之间的一次通话,包含浏览器与服务器之间的多次请求、响应过程

session 保存json对象 session对象保存属性语句_html

二,session对象

session对象用来存储有关用户会话的所有信息

session属性的常用方法:

session 保存json对象 session对象保存属性语句_web_02

session.setAttribute(String name, Object obj)	//将信息保存在session范围内
session.getAttribute(String name)		//获取保存在session范围内的信息
session.getAttributeNames(); 	//返回Session对象中存储的每一个属性对象,枚举型
session.isNew()			//判断session对象是不是新的
getCreationTime();		//返回Session被创建的时间.单位毫秒
invalidate();			//设置session无效,一般用在[安全退出]
removeAttribute("key");	//删除属性

session与窗口的关系:
每个session对象都与浏览器一一对应 重新开启一个浏览器,相当于重新创建一个session对象重新开启一个IE窗口,直接访问系统首页面。通过超链接打开的新窗口,新窗口的session与其父窗口的session相同

三,Cookie

Cookie:是Web服务器保存在客户端的一系列文本信息
作用:
对特定对象的追踪
统计网页浏览次数
简化登录

安全性能:
容易信息泄露

用法:

session 保存json对象 session对象保存属性语句_java_03


Cookie属性的常用方法

session 保存json对象 session对象保存属性语句_session 保存json对象_04

四,访问分析

session 保存json对象 session对象保存属性语句_java_05


如何查看cookie:

右键检查—找到应用–cookie

session 保存json对象 session对象保存属性语句_java_06

五,session对象与cookie的对比

session是在服务器端保存用户信息,Cookie是在客户端保存用户信息
session中保存的是对象,Cookie保存的是字符串
session随会话结束而关闭,Cookie可以长期保存在客户端
Cookie通常用于保存不重要的用户信息,重要的信息使用session保存

六,application对象

application类似于系统的“全局变量”,用于实现用户之间的数据共享
application对象的常用方法:
void setAttribute(String key, Object value):以键/值的方式,将一个对象的值存放到application中

application.setAttribute(“LOGINED_USER”, new ArrayList());

Object getAttribute(String key):根据键去获取application中存放对象的值

if (application.getAttribute(“LOGINED_USER”) != null) {
List loginedUsers = (List) application.getAttribute(“LOGINED_USER”);
}

实现服务内数据的共享
在服务内值存在一个对象实例

常用方法:

session 保存json对象 session对象保存属性语句_session 保存json对象_07

七天免登案例

login

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Login</title>
</head>
<body>
<%--
表单(form)
	action:表单提交的地址
	method:表单提交的方式
		* get(默认) 显示在地址栏上,数据长度有限制
		* post 不显示在地址栏上,且数据长度没有限制
必须携带name属性,不然接收不到数据
--%>
<%
	String username="";
	String password="";
	if(request.getCookies()!=null){//判断是否有Cookie,一般第一次登陆是没有Cookie的,没有非空判断会报错
		for(Cookie cookie : request.getCookies()){//遍历Cookie数组
			if(cookie.getName().equals("username"))//如果有账号,则赋值给账号输入框
				username=cookie.getValue();
			if(cookie.getName().equals("password"))//如果有密码,则赋值给密码输入框
				password=cookie.getValue();
		}
	}
%>
<form action="doLogin.jsp" method="post">
<p>
	<input value="<%=username %>" type="text" name="username" placeholder="请输入用户名" required>
</p>
<p>
	<input value="<%=password %>" type="password" name="password" placeholder="请输入密码" required>
</p>
<p>
	<button>登录</button>
	<button>注册</button>
</p>
</form>
</body>
</html>

dologin

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!-- 处理登录请求 -->
<%
	String username=request.getParameter("username");//拿到登陆请求发过来的账号
	String password=request.getParameter("password");//拿到登陆请求发过来的密码
	Cookie cookie_username=new Cookie("username",username);//新建一个Cookie用来装账号
	cookie_username.setMaxAge(60*60*24*7);//设置七天的存活时间,时间单位为S(秒)
	Cookie cookie_password=new Cookie("password",password);//新建一个Cookie用来装密码
	cookie_password.setMaxAge(60*60*24*7);//设置七天的存活时间
	//将Cookie存到前台去,完成七天免登陆
	response.addCookie(cookie_username);
	response.addCookie(cookie_password);
	//前往主页
	response.sendRedirect("home.jsp");
%>

ok,以上就是我们所了解的,请关注博主,继续精彩!