Cookie案例分析、Cookie案例代码实现

Cookie案例分析

  案例:记住上一次访问的时间

    需求:

      访问一个Servlet,如果第一次方法,则提示:您好,欢迎您首次访问

      如果不是第一次访问,则提示:欢迎回来,您上次访问的时间:显示时间字符串

    分析:

      可以采用Coolie来完成

      在服务器中的Servlet判断是否一个名为lastTime的Cookie

      有:不是第一次访问

      没有:不是第一次访问

        响应数据:你好,欢迎你首次访问

        写回Cookie:lastTime=2022年8月16日 13:59:34

      

     

Cookie案例代码实现

 案例:

  

@WebServlet( value = "/CookieTest")
/**
*    可以采用Coolie来完成
*       在服务器中的Servlet判断是否一个名为lastTime的Cookie
*       有:不是第一次访问
*       没有:不是第一次访问
*/
public class CookieTest extends HttpServlet {
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
this.doPost(request,response);
}

@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

// 设置响应的消息体的数据格式以及编码
response.setContentType("text/html;charse=utf-8");


// 获取所有Coolie
Cookie[] cookies = request.getCookies();

boolean fag =false;
// 遍历cookie数组
if (cookies != null && cookies.length >0) {
for (Cookie cookie : cookies) {

// 设置Cookie的vlaues
// 获取当前时间的字符串,重新设置cookie的值,重新发送cookie
Date date = new Date();
SimpleDateFormat format = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
String s = format.format(date);
System.out.println("编码前的"+s);
s = URLEncoder.encode(s,"utf-8");
System.out.println("编码后"+s);

cookie.setValue(s);
response.addCookie(cookie);

//设置cooklie存活时间
cookie.setMaxAge(60*60*24*30);
response.addCookie(cookie);

// 获取cookie名称
String name = cookie.getName();
if ("lastTime".equals(name)){
fag = true;
// 有该cookie,不是第一次访问
String value = cookie.getValue();
response.getWriter().write("<h1>欢迎回来,您上次访问的时间是"+value+"</h1>");
}

break;
}
}
if (cookies == null || cookies.length == 0 ||fag==false){
// 没有
Date date = new Date();
SimpleDateFormat format = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
String s = format.format(date);
Cookie cookie = new Cookie("lastTime",s);

//设置cooklie存活时间
cookie.setMaxAge(60*60*24*30);
response.addCookie(cookie);
response.getWriter().write("<h1>欢迎第一次访问<h1>");

}
}
}

 

posted @ 2022-08-16 15:16  一位程序袁  阅读(96)  评论(0编辑  收藏  举报