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>");
}
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY