Servlet(3):Cookie和Session
一. Cookie
Cookie是客户端技术,程序把每个用户的数据以cookie的形式写给用户各自的浏览器。当用户使用浏览器再去访问服务器中的web资源时,就会带着各自的数据去。这样,web资源处理的就是用户各自的数据了
1. 使用cookie记录用户上一次访问的时间
public class CookieTest extends javax.servlet.http.HttpServlet {
boolean flag=false;
protected void doPost(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response) throws javax.servlet.ServletException, IOException { //乱码问题
request.setCharacterEncoding("utf-8");
response.setCharacterEncoding("utf-8"); //通过用户请求,检查它是否带有cookie
Cookie[] cookies = request.getCookies();
if(flag){
if(cookies!=null){
for (int i = 0; i < cookies.length; i++) {
Cookie cookie=cookies[i];
if(cookie.getName().equals("lastLoginTime")){
response.getWriter().println("你上次来的时间为:"+cookie.getValue());
}
}
}
}else {
response.getWriter().println("你是第一次来");
}
flag=true;<span class="hljs-comment">//服务端建立一个cookie,把这个cookie发给客户端</span>
response.addCookie(<span class="hljs-keyword">new</span> <span class="hljs-type">Cookie</span>(<span class="hljs-string">"lastLoginTime"</span>,<span class="hljs-type">System</span>.currentTimeMillis()+<span class="hljs-string">""</span>));
} <span class="hljs-keyword">protected</span> void doGet(javax.servlet.http.<span class="hljs-type">HttpServletRequest</span> request, javax.servlet.http.<span class="hljs-type">HttpServletResponse</span> response) <span class="hljs-keyword">throws</span> javax.servlet.<span class="hljs-type">ServletException</span>, <span class="hljs-type">IOException</span> {
doPost(request,response);
}
}
1,第一次访问时这个Servlet时,效果如下所示:

2,点击浏览器的刷新按钮,进行第二次访问,此时就服务器就可以通过cookie获取浏览器上一次访问的时间了,效果如下:

二. Session
Session是服务器端技术,利用这个技术,服务器在运行时可以为每一个用户的浏览器创建一个其独享的session对象,由于session为用户浏览器独享,所以用户在访问服务器的web资源时,可以把各自的数据放在各自的session中,当用户再去访问服务器中的其它web资源时,其它web资源再从用户各自的session中取出数据为用户服务
1. session实现原理
//session存入信息
//乱码问题
request.setCharacterEncoding("UTF-8");
response.setCharacterEncoding("utf-8");<span class="hljs-comment">//Session由服务器自动创建;HttpSession 得到的sessioin对象</span>
HttpSession session = request.getSession(); <span class="hljs-comment">//得到sessionID,一次会话,一个seesionID;</span>
<span class="hljs-built_in">String</span> id = session.getId();
response.getWriter().println(<span class="hljs-string">"获得的session的ID:"</span>+id); <span class="hljs-built_in">String</span> name=<span class="hljs-string">"学java的闪电侠"</span>;
<span class="hljs-comment">//向session中存入一个值;</span>
session.setAttribute(<span class="hljs-string">"name"</span>,name);
response.getWriter().println(<span class="hljs-string">"存入信息成功:"</span>+name);
//获得session存入的信息
//乱码问题
request.setCharacterEncoding("UTF-8");
response.setCharacterEncoding("utf-8");
//获得
HttpSession session = request.getSession();
String name = (String) session.getAttribute("name");
response.getWriter().println("得到的session存入的信息:"+name);
1,第一次访问时,服务器会创建一个新的sesion,并且把session的Id以cookie的形式发送给客户端浏览器

2,再次请求服务器,此时就可以看到浏览器再请求服务器时,会把存储到cookie中的session的Id一起传递到服务器端了

【注意:session.invalidate(); // 通过代码注销会话】
三. Session和Cookie的主要区别
- Cookie是把用户的数据写给用户的浏览器
- Session技术把用户的数据写到用户独占的session中
- Session对象由服务器创建,开发人员可以调用request对象的getSession方法得到session对象
Servlet(3):Cookie和Session的更多相关文章
- 动手学servlet(四) cookie和session
Cookie cookie是保存在客户端的一个“键值对”,用来存储用户的一些信息 cookie的应用: -在电子商务会话中标识用户 -对网站进行定制,比如你经常浏览哪些内容,就展示哪些页面给你 - ...
- JavaWeb之Servlet:Cookie 和 Session
会话 现实生活中我们会用手机跟对方对话,拿起手机,拨号,然后对面接听,跟着互相通话,最后会话结束. 这个过程也可以用我们的B/S模式来描述: 打开浏览器—>输入地址->发出请求->服 ...
- servlet(5) - Cookie和session - 小易Java笔记
1.会话概述 (1)会话可简单理解为:用户开一个浏览器,点击多个超链接,访问服务器多个web资源,然后关闭浏览器,整个过程称之为一个会话. (2)会话过程中的数据不宜保存在request和servle ...
- 【学习】013 Servlet、Cookie、Session的简述
Servlet核心内容 Sevlet的生命周期(重点) Servlet重要的四个生命周期方法 构造方法: 创建servlet对象的时候调用.默认情况下,第一次访问servlet的时候创建servlet ...
- servlet中cookie和session操作
1.1 软件中的会话 一次会话: 打开浏览器 -> 访问一些服务器内容 -> 关闭浏览器 登录场景: 打开浏览器 -> 浏览到登陆页面 -> 输入用户名和密码 -> 访问 ...
- Servlet技术 Cookie与Session
会话过程:用户打开浏览器,点击链接访问资源,最后到关闭浏览器的整个过程称之为会话. 会话使用:与服务器进行会话的过程中产生数据,数据被保存下来,服务器根据数据对客户进行辨别,做出个性化的响应. 介绍两 ...
- Servlet之会话(Session)以及会话追踪技术(Cookie),(URL重写)和(隐藏表单域)
Session 什么是会话? 会话: Web应用中的会话 指的是一个客户端浏览器与Web服务器之间连续发生的一系列请求和响应的过程 会话状态: Web服务器和浏览器在会话的过程中产生的状态信息 作用: ...
- Servlet 会话技术cookie和session
会话技术 Cookie技术:会话数据保存在浏览器客户端. Session技术:会话数据保存在服务器端. 一.Cooke技术 1. 特点 Cookie技术:会话数据保存在浏览器客户端. 2 .Cooki ...
- Java开发工程师(Web方向) - 02.Servlet技术 - 第2章.Cookie与Session
第2章--Cookie与Session Cookie与Session 浏览器输入地址--HTTP请求--Servlet--HTTP响应--浏览器接收 会话(session):打开浏览器,打开一系列页面 ...
- Servlet Cookie、Session
HTTP不能保持连接,可使用会话保存用户信息. 常用的会话技术有2种:Cookie.Session. Cookie 1.原理 当用户第一次访问某个网站时,服务器设置Cookie,存储用户信息,放在响应 ...
随机推荐
- centos如何上网
问题 centos如何上网 解决方法 第一步: 打开VMware,选择菜单栏的Edit->Virtual Network Editor(虚拟网络编辑器).点击Restore Defaults(即 ...
- BootStrap_1 浓缩版本
BootStrap(基于JQuery框架) 商业互吹:Bootstrap是最受欢迎的HTML.CSS和JS框架,用于开发响应式布局,移动设备优先选择的WEB项目... 特色:1.响应式布局 2.基于f ...
- easypoi导出动态表头excel
easypoi导出动态表头excel 1: springBoot项目maven依赖: <dependency> <groupId>cn.afterturn</groupI ...
- CVE-2020-0796 RCE复现
虽然热度已经过了,之前留的笔记发(水)一篇博客 影响版本 适用于32位系统的Windows 10版本1903 Windows 10 1903版(用于基于x64的系统) Windows 10 1903版 ...
- 天冷了,任务栏养只猫吧「GitHub 热点速览 v.21.46」
作者:HelloGitHub-小鱼干 运动能带来热量,盘猫也是,RunCat_for_windows 是一只奔跑在任务栏的猫,一定能给你的电脑带来一丝冬日的温暖.当然送温暖的除了任务栏小猫咪之外,还有 ...
- Python基础(递归函数)
def age(n): if n == 1: return 18 else: return age(n - 1) + 2 ret=age(100) print(ret)#216 def test(nu ...
- 系统调用篇——SSDT
写在前面 此系列是本人一个字一个字码出来的,包括示例和实验截图.由于系统内核的复杂性,故可能有错误或者不全面的地方,如有错误,欢迎批评指正,本教程将会长期更新. 如有好的建议,欢迎反馈.码字不易, ...
- 【linux系统】命令学习(八)bash 编程实战学习
常见shell : bash sh zsh windows: git bash cygwin MAC : terminal iterm netstat 是linux下用于显示网络状态的命令.通 ...
- Linux下编译tinyxml生成动态库
首先去到sourceforge下载tinyxml的源码,https://sourceforge.net/projects/tinyxml/?source=dlp,最新版本是2.6.2. 将下载成功的t ...
- <C#任务导引教程>练习三
/*Convert.ToInt("213165");int a=12345;string sn=a.ToString();//把a转换成字符串snint b=int.Parse(s ...