Cookie:在浏览器中保存用户的信息
使用:由服务器创建,发送到浏览器保存,之后随着请求发回到服务器
1.创建cookie
Cookie cookie = new Cookie("name","value");
2.发送cookie到浏览器
response.addCookie(cookie对象);
3.获取来自客户端的cookie
Cookie[] cookies = request.getCookies();
使用注意:
1.cookie第一次是由servlet发送到浏览器中,第一次不能获取cookie
2.不同的浏览器存放的cookie不是同一个
3.如果设置了cookie的maxage,则cookie会保存在浏览器所在电脑的硬盘上,如果没设置该属性,则保存在浏览器的内存中
Session:在服务器中保存用户信息
使用:在服务器端创建Session,来保存当前访问服务器的用户的信息
1.获取session(如果已经创建了session,则返回当前session)或创建session:
HttpSession session = request.getSession();
2.设置session最大不活跃时间
session.setMaxInactiveInteval() //以秒为单位
3.使用session保存信息
session.setAttribute(String key,Object value);
session.getAttribute(String key);
4.立即销毁session
session.invalidate();
Cookie
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // 1.创建cookie Cookie cookie = new Cookie("computer", "alienware"); Cookie cookie2 = new Cookie("phone", "apple"); //cookie可以设置最大的存活时间 cookie.setMaxAge(3600); cookie2.setPath("/four_test"); // 2.将cookie发送给浏览器 response.addCookie(cookie); response.addCookie(cookie2); /* response.setHeader("Set-Cookie", "computer=alienware"); */ // 3.获取cookie Cookie[] cookies = request.getCookies(); if (cookies != null && cookies.length > 0) { for (Cookie coo : cookies) { System.out.println(coo.getName()+"--->"+coo.getValue()); } } //注意: //1.cookie第一次是由servlet发送到浏览器中,第一次不能获取cookie //2.不同的浏览器存放的cookie不是同一个 //3.如果设置了cookie的maxage,则cookie会保存在浏览器所在电脑的硬盘上,如果没设置该属性,则保存在浏览器的内存中 }
Session
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //1.创建session/获取当前session HttpSession session = request.getSession(); System.out.println(session.getId()); //2.设置session的最大不活跃时间 session.setMaxInactiveInterval(1800); //second //3.session存储用户信息 session.setAttribute("name", "zhangsan"); //4.立即销毁session //session.invalidate(); }