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 超时都会失效。.

浙公网安备 33010602011771号