void setMaxAge(int expiry);最大有效期 (秒)
服务端准备Cookie:
response.addCookie(Cookie cookie)
页面跳转(转发,重定向)
客户端获取cookie: request.getCookies();
a.服务端增加cookie :response对象;客户端获取对象:request对象
b.不能直接获取某一个单独对象,只能一次性将 全部的cookie拿到
通过F12可以发现 除了自己设置的Cookie对象外,还有一个name为 JSESSIONID的cookie
建议 cookie只保存 英文数字,否则需要进行编码、解码
<%@ page language=“java” contentType=“text/html; charset=UTF-8”
pageEncoding=“UTF-8”%>
<%
//客户端获取cookie
Cookie[] cookies= request.getCookies();
for(Cookie cookie:cookies){
out.print(cookie.getName()+“----”+cookie.getValue()+“
”);
}
%>
<%@ page language=“java” contentType=“text/html; charset=UTF-8”
pageEncoding=“UTF-8”%>
<%
//服务端
Cookie cookie1 = new Cookie(“name”,“zx”);
Cookie cookie2 = new Cookie(“pwd”,“abc”);
response.addCookie(cookie1);
response.addCookie(cookie2 );
//页面跳转到客户端(转发,重定向)
response.sendRedirect(“result.jsp”);
%>
<%@ page language=“java” contentType=“text/html; charset=UTF-8”
pageEncoding=“UTF-8”%>
<%!//登陆
String uname;
%>
<%
boolean falg=false;
Cookie [] cookies= request.getCookies() ;
for(Cookie cookie: cookies ){
if(cookie.getName().equals(“uname”)){
uname=cookie.getValue();
falg=true;
}
}
if(!falg){
out.print(“cookie失效”);
}else{
out.print(“cookie”+uname);
}
%>
用户名:<input type=“text” name=“uname” value=“<%=(uname==null?”“:uname) %>”>
密码:
提交:
<%@ page language=“java” contentType=“text/html; charset=UTF-8”
pageEncoding=“UTF-8”%>
<%
request.setCharacterEncoding(“utf-8”);
String name = request.getParameter(“uname”);
String pwd = request.getParameter(“upwd”);
//将用户名放到Cookie里面
Cookie cookie = new Cookie(“uname”, name); //建议 cookie只保存 英文数字,否则需要进行编码、解码
cookie.setMaxAge(10) ;
response.addCookie(cookie);
response.sendRedirect(“A.jsp”);
%>
<%@ page language=“java” contentType=“text/html; charset=UTF-8”
pageEncoding=“UTF-8”%>
a.浏览网站:开始-关闭
b.购物: 浏览、付款、退出<%@ page language=“java” contentType=“text/html; charset=UTF-8”
pageEncoding=“UTF-8”%>
Insert title here <% request.setCharacterEncoding(“utf-8”); String name = request.getParameter(“uname”); String pwd = request.getParameter(“upwd”); //将用户名放到Cookie里面 Cookie cookie = new Cookie(“uname”, name); //建议 cookie只保存 英文数字,否则需要进行编码、解码 cookie.setMaxAge(10) ; response.addCookie(cookie); response.sendRedirect(“A.jsp”); %> c.电子邮件:浏览、写邮件、退出 开始-结束
客户端第一次请求服务端时,(jsessionid-sessionid)服务端会产生一个session对象(用于保存该客户的信息);
并且每个session对象 都会有一个唯一的 sessionId( 用于区分其他session);
服务端由会 产生一个cookie,并且 该cookie的name=JSESSIONID ,value=服务端sessionId的值;
然后 服务端会在 响应客户端的同时 将该cookie发送给客户端,至此 客户端就有了 一个cookie(JSESSIONID);
因此,客户端的cookie就可以和服务端的session一一对应(JSESSIONID - sessionID)
客户端第二/n次请求服务端时:服务端会先用客户端cookie种的JSESSIONID 去服务端的session中匹配sessionid,如果匹配成功(cookie jsessionid和sesion sessionid),说明此用户 不是第一次访问,无需登录;
例子:
客户端: 顾客(客户端)
服务端: 存包处 - 商场(服务端)
顾客第一次存包:商场 判断此人是 之前已经存过包(通过你手里是否有钥匙)。
如果是新顾客(没钥匙) ,分配一个钥匙 给该顾客; 钥匙 会和 柜子 一一对应;
第二/n次 存包:商场 判断此人是 之前已经存过包(通过你手里是否有钥匙)
如果是老顾客(有钥匙),则不需要分配;该顾客手里的钥匙 会 和柜子 自动一一对应。
a. session存储在服务端(同一次会话共享,比如浏览同一个网页)
b. session是在 同一个用户(客户)请求时 共享
c. 实现机制:第一次客户请求时 产生一个sessionid 并复制给 cookie的jsessionid 然后发给客户端。最终 通过session的sessionid-cookie的jsessionid
String getId() :获取sessionId
boolean isNew() :判断是否是 新用户(第一次访问)
void invalidate():使session失效 (退出登录、注销)
void setAttribute()
Object getAttribute();
void setMaxInactiveInterval(秒) :设置最大有效 非活动时间
int getMaxInactiveInterval():获取最大有效 非活动时间 比如你设置的是一小时,在这期间你一直在浏览该页面,不会有影响,但是如果你去吃个饭回来,会让你重新登陆。
示例:
登录

客户端在第一次请求服务端时,如果服务端发现 此请求没有 JSESSIONID,则会创建一个 name=JSESIONID的cookie 并返回给客户端
Cookie:
a.不是内对对象,要使用必须new
b.但是,服务端会 自动生成一个(服务端自动new一个cookie) name=JSESIONID的cookie 并返回给客户端
| | session | cookie |
| — | — | — |
| 保存的位置 | 服务端 | 客户端 |
| 安全性 | 较安全 | 较不安全 |
| 保存的内容 | Object | String |
String getContextPath() 虚拟路径
String getRealPath(String name): 绝对路径(虚拟路径 相对的绝对路径)
pageContext JSP页面容器
request 请求对象
session 会话对象
appliation 全局对象
response 响应对象
config 配置对象(服务器配置信息)
out 输出对象
page 当前JSP页面对象(相当于java中的this)
exception 异常对象
11.四种范围对象(小1->大4)
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数前端工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Web前端开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。


既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
如果你觉得这些内容对你有帮助,可以扫码获取!!(备注:前端)
最后
文章到这里就结束了,如果觉得对你有帮助可以点个赞哦,如果有需要前端校招面试题PDF完整版的朋友可以点击这里即可获取,包括答案解析。

负担。**
[外链图片转存中…(img-jnSkz4fc-1712942428217)]
[外链图片转存中…(img-0GlRJKBU-1712942428217)]
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!
[外链图片转存中…(img-3ASWqSfH-1712942428218)]
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
如果你觉得这些内容对你有帮助,可以扫码获取!!(备注:前端)
最后
文章到这里就结束了,如果觉得对你有帮助可以点个赞哦,如果有需要前端校招面试题PDF完整版的朋友可以点击这里即可获取,包括答案解析。
[外链图片转存中…(img-WJm9DUxS-1712942428218)]
本文详细介绍了Java中Cookie的使用,如设置有效期、服务端添加和客户端获取Cookie,以及如何利用Cookie实现记住用户名功能。同时对比了Cookie与Session的区别,强调了session的安全性和存储位置。
1283

被折叠的 条评论
为什么被折叠?



