Cookie的简单实例;
Posted naigai
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Cookie的简单实例;相关的知识,希望对你有一定的参考价值。
案例:记住上一次访问时间
1. 需求:
1. 访问一个Servlet,如果是第一次访问,则提示:您好,欢迎您首次访问。
2. 如果不是第一次访问,则提示:欢迎回来,您上次访问时间为:显示时间字符串
2. 分析:
1. 可以采用Cookie来完成
2. 在服务器中的Servlet判断是否有一个名为lastTime的cookie
1. 有:不是第一次访问
1. 响应数据:欢迎回来,您上次访问时间为:2018年6月10日11:50:20
2. 写回Cookie:lastTime=2018年6月10日11:50:01
2. 没有:是第一次访问
1. 响应数据:您好,欢迎您首次访问
@WebServlet("/CookieTestServlet") public class CookieTestServlet extends HttpServlet { protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //设置响应的消息体的数据格式以及编码 response.setContentType("text/html;charset=UTF-8"); //1.获取所有的Cookie Cookie[] cookies = request.getCookies(); //有没有cookies为lastTime boolean flag = false; //2.遍历Cookie数组 if (cookies != null && cookies.length > 0){ for (Cookie cookie : cookies) { //获取Cookie的名称 String name = cookie.getName(); //判断名称是否是Lasttime if("lastTime".equals(name)){ //找到lastTime //有Cookie,不是第一次访问 flag = true; //设置Cookie的value //获取当期时间的字符串,重新设置Cookie的值,重新发送cookie Date date = new Date(); SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss"); String formatDate = sdf.format(date); System.out.println("编码前:"+formatDate); //url编码 String encode = URLEncoder.encode(formatDate, "utf-8"); System.out.println("编码后:"+encode); cookie.setValue(encode); //设置Cookie的存活时间 cookie.setMaxAge(60*60*24*30); //一个月 response.addCookie(cookie); //响应数据 //获取Cookie的value,时间 String value = cookie.getValue(); //URL解码 String decode = URLDecoder.decode(value, "utf-8"); response.getWriter().write("<h1>欢迎回来,您上次访问的时间为:"+decode+"</h1>"); break; } } } if (cookies == null ||cookies.length<0||flag==false){ //设置Cookie的value //获取当期时间的字符串,重新设置Cookie的值,重新发送cookie Date date = new Date(); SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss"); String formatDate = sdf.format(date); //url编码 String encode = URLEncoder.encode(formatDate, "UTF-8"); Cookie cookie = new Cookie("lastTime",encode); //设置Cookie的存活时间 cookie.setMaxAge(60*60*24*30); //一个月 response.addCookie(cookie); response.getWriter().write("<h1>欢迎回来,您首次访问</h1>"); } } protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { this.doPost(request,response); } }
2. 写回Cookie:lastTime=2018年6月10日11:50:01
以上是关于Cookie的简单实例;的主要内容,如果未能解决你的问题,请参考以下文章
C#-WebForm-★内置对象简介★Request-获取请求对象Response相应请求对象Session全局变量(私有)Cookie全局变量(私有)Application全局公共变量Vi(代码片段