cookies
cookie记录用户上一次访问的时间
public class CookieDemo01 extends HttpServlet { 17 18 public void doGet(HttpServletRequest request, HttpServletResponse response) 19 throws ServletException, IOException { 20 //设置服务器端以UTF-8编码进行输出 21 response.setCharacterEncoding("UTF-8"); 22 //设置浏览器以UTF-8编码进行接收,解决中文乱码问题 23 response.setContentType("text/html;charset=UTF-8"); 24 PrintWriter out = response.getWriter(); 25 //获取浏览器访问访问服务器时传递过来的cookie数组 26 Cookie[] cookies = request.getCookies(); 27 //如果用户是第一次访问,那么得到的cookies将是null 28 if (cookies!=null) { 29 out.write("您上次访问的时间是:"); 30 for (int i = 0; i < cookies.length; i++) { 31 Cookie cookie = cookies[i]; 32 if (cookie.getName().equals("lastAccessTime")) { 33 Long lastAccessTime =Long.parseLong(cookie.getValue()); 34 Date date = new Date(lastAccessTime); 35 out.write(date.toLocaleString()); 36 } 37 } 38 }else { 39 out.write("这是您第一次访问本站!"); 40 } 41 42 //用户访问过之后重新设置用户的访问时间,存储到cookie中,然后发送到客户端浏览器 43 Cookie cookie = new Cookie("lastAccessTime", System.currentTimeMillis()+"");//创建一个cookie,cookie的名字是lastAccessTime 44 //将cookie对象添加到response对象中,这样服务器在输出response对象中的内容时就会把cookie也输出到客户端浏览器 45 response.addCookie(cookie); 46 }
删除cookies://将cookie的有效期设置为0,命令浏览器删除该cookie 22 cookie.setMaxAge(0);
cookie中存取中文:
使用URLEncoder类里面的encode(String s,String enc)进行中文转码
1 Cookie cookie = new Cookie("userName", URLEncoder.encode("贺陆伟", "UTF-8"));
2 response.addCookie(cookie);
获取:使用URLDecoder类里面的decod(String s,String enc)进行解码。
1 URLDecoder.decode(cookies[i].getValue(), "UTF-8")