牛骨文教育服务平台(让学习变的简单)
博文笔记

娜姐带你认识Java-cookie&session

创建时间:2017-10-31 投稿人: 瑜瑶 浏览次数:292

看见小伙伴留言

要娜姐分享

Cookie 和 Session 的区别

娜姐带你认识Java-cookie&session

那好的今天我们就来认识一下

Cookie 和 Session 吧

Servlet 会话

想要了解Cookie和Session首先要了解会

什么是会话!会话指用户打开一个浏览器访问一个网站,只要不关闭该浏览器,不管该用户点击多少个链接,访问多少资源,直到用户关闭浏览器,整个这个过程我们称之为一次会话。会话过程中要解决的一些问题?每个用户在使用浏览器与服务器进行会话的过程中,不可避免各自会产生一些数据,服务器要想办法为每个用户保存这些数据。

例如:多个用户打开今日头条各自商品,服务器应该想办法把每一个用户购买的商品保存在各自的地方,以便于这些用户点击结账时 servlet 可以得到用户各自购买的商品为用户结账。

每一次请求中,客户端必须将会话 ID(JSESSIONID) 发送给服务端。这样,服务器就能辨认客户端并维持会话状态了。其中JSESSIONID是由 Tomcat 或 Jetty 等服务器产生的用于会话管理的 cookie 管理。

Web 服务器一般采用如方式来进行会话管理

1.通过保存在客户端的 Cookie。

2.通过服务器端的 HttpSession 对象,要求客户端开启 Cookie。

3.如果客户端禁用 Cookie,只能通过 URL 重写方式。

cookiecookie技术可以做什么?

1.保存用户上次登录时间。

2.显示用户浏览历史。

3.把登录的用户和密码记录下来,下次登录,不需要重新输入。

什么是 Cookie?服务器在客户端保存用户的信息,如登录名,密码等,就是 Cookie。Cookie(小甜饼) 是客户端技术,服务器把每个用户的数据cookie的形式写给用户各自的浏览器。当用户使用浏览器再去访问服务器中的 web 资源时,就会带着各自的数据去。这样 web 资源处理的就是用户各自的数据了

那么现在我们来创建一个 Cookie

把登录的用户和密码记录下来

下次登录不需要重新输入

我们先创建一个工程

然后创建一个 index.html 登录页面

娜姐带你认识Java-cookie&session

Java学习交流群:495273252

然后再建一个 Servlet

娜姐带你认识Java-cookie&session

Java学习交流群:495273252

再来写一个jsp页面

(就是方便我们知道页面程序运行成功了没有)

娜姐带你认识Java-cookie&session

现在来运行一下

娜姐带你认识Java-cookie&session

点击登录

娜姐带你认识Java-cookie&session

这就带表我们的程序没有问题可以正常执行

现在按下 F12 打开开发者调试工具

重新在页面输入账号和密码

伙伴们能看到我输入的用户名和密码是什么了吗?

娜姐带你认识Java-cookie&session

现在我们设置 cookie 已经设置完成了

下一步

让我们的浏览器

得到 cookie 里面的值

(这边需要利用到 js 的知识)

娜姐带你认识Java-cookie&session

效果就是:

娜姐带你认识Java-cookie&session

总结:

1.Cookie 是在服务端创建,保存在浏览器这端。

2.Cookie 的生命周期可以通过 cookie.setMaxAge(2000) 设置。

如果不设置setMaxAge则该cookie的生命周期当浏览器关闭时,就消亡

3.Cookie 可以被多个浏览器共享(与session的区别)。

4.一个 web 应用可以保存多个 Cookie。

(如果 Cookie 重名了就会替换存在的 Cookie 值)

5.cookie存放的时候是以明文方式存放,因此安全较低。

(建议只保存用户名,不保存密码。)

娜姐带你认识Java-cookie&session

注意:

1.保存在客户端的 Cookies 会在每个 HTTP 请求中都要附带发送,导致网络传输数据增大,影响性能。

2.在 HTTP 请求以明文发送 Cookies,除非使用安全协议(HTTPS),否则会有安全问题。

3.Cookies 的大小限制在4KB(新版本放松至8 KB)左右,难以保存复杂的会话跟踪信息。

4.用户可以改变浏览器的设置,启用或禁用 Cookies。如果用户禁用Cookies,服务器就无法将 Cookies 保存至客户端,从而无法使用Cookies 来跟踪会话状态。

5.安装在客户端的 Cookies 具有安全缺陷。一些浏览器自带或安装开发者工具包允许用户查看、修改或删除特定网站的 Cookies 信息。黑客可能采用跨站点脚本技术盗取用户的 Cookies 信息,可能给用户造成经济或其他损失。

session

大家都有在网上购物的经历吧?

不同的用户登录网站后,不管该用户浏览该网站的哪个页面都可以显示登录人的名字,同样可以随时去查看自己的购物车中的商品,而且我们的购物车中的商品也不一样,这些都是怎么实现的呢?

娜姐带你认识Java-cookie&session

session技术

Session 是服务器端技术,利用这个技术,服务器在运行时可以为每一个用户的浏览器创建一个独享的 Session 对象,由于 Session 为用户独享,所以用户在访问服务器的 web 资源时,可以把各自的数据放在各自的 Session 中,当用户再去访问服务器中的其它 web 资源时,其它 web 资源再从用户各自的Session 中取出数据为用户服务。

我们创建一个 Session

娜姐带你认识Java-cookie&session

创建一个监听器

(用来监听Session会话的创建与销毁)

娜姐带你认识Java-cookie&session

Java学习交流群:495273252

好咧!

现在我们打开了两个浏览器

娜姐带你认识Java-cookie&session

Java学习交流群:495273252

第一次访问的时候,会创建一个 Session!并且提示你是新朋友,当我们刷新页面之后,检测到你不是第一次访问,页面上输出欢迎回来!

同时监听器在控制台上输出监听到的Session的生命周期

娜姐带你认识Java-cookie&session

Session小结1. session是存在服务器的内存中。

2. 一个用户浏览器,独享一个session域对象。

3. session中的属性的默认生命周期是30min ,我们有3种 Session 生命周期的设置方式

第一种:tomcat/conf/web.xml

娜姐带你认识Java-cookie&session

Java学习交流群:495273252

<session-config>

<session-timeout>30</session-timeout>

//表示30分钟的意思

</session-config>

对所有的 web 应用生效

第二种:在单个web应用的下去修改 web.xml

娜姐带你认识Java-cookie&session

Java学习交流群:495273252

<session-config>

<session-timeout>30</session-timeout>

</session-config>

session精确到分钟,cookie精确到秒

如果发生冲突,则以自己的 web 应用的优先级高

第三种:直接在代码中写 session.setMaxInactiveinterval(30);

娜姐带你认识Java-cookie&session

Java学习交流群:495273252

三十秒后session失效

5. session中可以存放多个属性

6. session 可以存放对象

7. 如果 session.setAttribute(“name”,val) , 如果名字重复,则会替换该属性.

Session 的作用

1.防止用户非法登录到某个页面

2.用户必须登录!否则不能操作和管理页面

这下了解

cookie 和 Session 的区别了吗?

伙伴们?

声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。