会话技术与Cookie

该博客介绍了如何在Servlet中检查Cookie来判断用户是否是首次访问。如果找到名为'lastTime'的Cookie,则显示上次访问时间并更新Cookie;若未找到,表明是首次访问,并设置Cookie记录当前时间。

 案例: 在服务器中的Servlet判断是否有一个名为lastTime的cookie
 1. 有:不是第一次访问
     1. 响应数据:欢迎回来,您上次访问时间为:2018年6月10日11:50:20
     2. 写回Cookie:lastTime=2018年6月10日11:50:01
 2. 没有:是第一次访问
     1. 响应数据:您好,欢迎您首次访问
     2. 写回Cookie:lastTime=2018年6月10日11:50:01


@WebServlet("/LastTimeCookie")
public class LastTimeCookie extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        response.setContentType("text/html;charset=utf-8");
        Cookie[] cookies = request.getCookies();
        boolean flag=false;
        if(cookies!=null&&cookies.length>0){
            for (Cookie cookie : cookies) {
                String name = cookie.getName();
                if ("LastName".equals(name)){
                    flag=true;
                    String value = cookie.getValue();
                    value=URLDecoder.decode(value,"utf-8");
                    response.getWriter().write("<h1>欢迎回来,您上次的访问时间为"+value+"</h1>");
                    
                    Date date=new Date();
                    SimpleDateFormat sdf=new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
                    String time = sdf.format(date);
                    time=URLEncoder.encode(time,"utf-8");
                    cookie.setValue(time);
                    cookie.setMaxAge(60*60);
                    response.addCookie(cookie);
                    break;
                }
            }
        }
        if(cookies==null||cookies.length>0||flag==false){
            Date date=new Date();
            SimpleDateFormat sdf=new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
            String time = sdf.format(date);
            time=URLEncoder.encode(time,"utf-8");
            Cookie cookie=new Cookie("LastName",time);
            cookie.setValue(time);
            cookie.setMaxAge(60*60);
            response.addCookie(cookie);
            response.getWriter().write("<h1>您好 欢迎您首次登录</h1>");
        }
    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        this.doPost(request, response);
    }
}

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值