java和Cookie练习

Cookie!!!

package com.nnxy.web;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
import java.text.SimpleDateFormat;
import java.util.Date;

@WebServlet(name = "cookieServlet", urlPatterns = "/cookie")
public class cookieServlet extends HttpServlet {
    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

        /**
         * 记住上一次的访问时间
         * 需求:
         * 	1.访问一个servlet,如果第一次访问,则提示:您好,欢迎首次访问
         * 	2.如果不是第一次访问,则提示:欢迎回来,您上一次访问时间为:显示时间
         * 分析:
         * 	1.可以采用Cookie来完成
         * 	2.在服务器中的Servlet判断是否有一个名为lastTime的Cookie
         * 	——有:不是比一次访问
         * 	————欢迎回来,您上一次访问时间为:显示时间
         * 	————写回Cookie:lastTime=时间
         * 	——没有:是第一次访问
         * 	————响应数据:您好欢迎首次访问
         * 	————写回Cookie:lastTime=时间
         */
        Date d = new Date();
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy年MM月dd日HH时mm分ss秒");
        String date = simpleDateFormat.format(d);
        Cookie[] cookies = req.getCookies();
        resp.setContentType("text/html;charset=utf-8");
        PrintWriter writer = resp.getWriter();
        Cookie cookie;
        writer.println("<h1>");
        //定义旗标
        boolean flag = true;
        //如果cookies里 lastTime 字段存在 证明网页被访问过 ,否则没有被访问过
        for (Cookie c : cookies) {
            if (c.getName().equalsIgnoreCase("lastTime")) {
                flag = false;
                break;
            }
        }
        if (cookies.length == 0 || flag) {
            cookie = new Cookie("lastTime", date);
            resp.addCookie(cookie);
            writer.println("你好!欢迎首次访问,当前时间是" + date);

        } else {
            writer.println("欢迎访问,您第上一次访问时间是:");
            for (Cookie c : cookies) {
                if (c.getName().equalsIgnoreCase("lastTime")) {
                    writer.print(c.getValue());
                    System.out.println(c.getName() + " : " + c.getValue());
                }
            }
        }
        writer.println("</h1>");
        cookie = new Cookie("lastTime", date);
        resp.addCookie(cookie);

    }

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        doPost(req, resp);
    }
}

结果展示

首次访问
再次访问

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值