哈喽,大家好,今天我们一起来 康 康 session与cookie
目录
- 一,会话
- 二,session对象
- 三,Cookie
- 四,访问分析
- 五,session对象与cookie的对比
- 六,application对象
- 七天免登案例
一,会话
概念:一个会话就是浏览器与服务器之间的一次通话,包含浏览器与服务器之间的多次请求、响应过程
二,session对象
session对象用来存储有关用户会话的所有信息
session属性的常用方法:
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服务器保存在客户端的一系列文本信息
作用:
对特定对象的追踪
统计网页浏览次数
简化登录
安全性能:
容易信息泄露
用法:
Cookie属性的常用方法
四,访问分析
如何查看cookie:
右键检查—找到应用–cookie
五,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”);
}
实现服务内数据的共享
在服务内值存在一个对象实例
常用方法:
七天免登案例
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,以上就是我们所了解的,请关注博主,继续精彩!