cookie和session
Cookie
- 从请求中拿到cookie信息
- 服务端响应给客户端cookie
Cookie[] cookies = request.getCookies();//获得cookie
cookie.getName()//获得cookie的key
cookie.getValue();//获得cookie的值
Cookie cookie = new Cookie("lastTime",System.currentTimeMillis()+"");//新建一个cookie
cookie.setMaxAge(24*60*60);//设置cookie的有效期
response.addCookie(cookie);//响应给客户端一个cookie
cookie一般会保存在本地的 用户目录下appdata;
编码与解码
Cookie cookie = new Cookie("xxx", URLEncoder.encode("夏夏夏","utf-8"));//编码
URLDecoder.decode(cookie.getValue(),"utf-8");//解码
request.setCharacterEncoding("utf-8");
response.setContentType("text/html");
response.setCharacterEncoding("utf-8");
Cookie[] cookies = request.getCookies();
PrintWriter out = response.getWriter();
if (cookies!=null){
out.write("您上一次访问的时间是:");
for (int i = 0; i < cookies.length; i++) {
Cookie cookie = cookies[i];
//获取键
if ("lastTime".equals(cookie.getName())){
//获取值
String value = cookie.getValue();
long l = Long.parseLong(value);
Date date = new Date(l);
// out.write(date.toLocaleString());
// URLDecoder.decode(cookie.getValue(),"utf-8");
}
}
}else {
out.write("这是您第一次访问!");
}
Cookie cookie = new Cookie("lastTime",System.currentTimeMillis()+"");
// Cookie cookie = new Cookie("xxx", URLEncoder.encode("夏夏夏","utf-8"));
cookie.setMaxAge(24*60*60);//设置cookie的有效期
response.addCookie(cookie);
session
- 服务器会给每个用户(浏览器)创建一个session对象
- 一个session独占一个浏览器,只要浏览器没有关闭,这个session就一直存在;
- 用户登陆之后,整个网站都可以访问!
//设置编码
request.setCharacterEncoding("utf-8");
response.setContentType("text/html;charset=utf-8");
//获取session
HttpSession session = request.getSession();
//得到session的id
String sessionId = session.getId();
System.out.println(sessionId);
//判断session是不是新创建的
if (session.isNew()){
response.getWriter().write("session创建成功;SessionId:"+sessionId);
}else {
response.getWriter().write("session已经存在;SessionId:"+sessionId);
}
//session在创建时做了什么
Cookie cookie = new Cookie("JSESSIONID",sessionId);
response.addCookie(cookie);
Cookie 和 Session 有什么不同?
作用范围不同,Cookie 保存在客户端(浏览器),Session 保存在服务器端。. 存取方式的不同,Cookie 只能保存 ASCII,Session 可以存任意数据类型,一般情况下我们可以在 Session 中保持一些常用变量信息,比如说 UserId 等。. 有效期不同,Cookie 可设置为长时间保持,比如我们经常使用的默认登录功能,Session 一般失效时间较短,客户端关闭或者 Session 超时都会失效。.
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 字符编码:从基础到乱码解决
· 提示词工程——AI应用必不可少的技术