网站记住上一次访问时间servlet实现

需求

  1. 访问一个servlet,如果是第一次访问,则提示您好欢迎您首次访问
  2. 如果不是,则提示欢迎回来,显示上次访问的时间

分析:可以采用cookie来完成

在往服务器中servlet判断是否有一个名为last time的cookie

  1. 有:不是第一次访问
  2. 没有:是第一次访问
    1. 响应数据
    2. 写回cookie
public class Cookietest extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        //设置消息体响应的数据格式编码
        response.setContentType("text/html;charset=utf-8");
        boolean flag = false;
        //获取所有的cookie
        Cookie[] cc = request.getCookies();
        if(cc!=null && cc.length>0){
            for(Cookie c : cc){
                if("lastTime".equals(c.getName())){
                    //获取cookie的value
//                    设置cookie的值
                     String v = c.getValue();
                    v= URLDecoder.decode(v,"utf-8");//url解码
                    response.getWriter().write("欢迎欢迎回来"+v);
                    //获取当前时间的字符串
                    Date date = new Date();
                    SimpleDateFormat sd = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
                    String st_date = sd.format(date);
                    st_date = URLEncoder.encode(st_date,"utf-8");//url编码
                    c.setValue(st_date);
                    response.addCookie(c);
                    flag=true;
                    //设置cookie的存活时间
                    c.setMaxAge(60*60*24*30);


                   
                    break;
                }

            }
        }
        if(cc == null || cc.length==0 || flag == false) {
            //获取当前时间的字符串
            Date date = new Date();
            SimpleDateFormat sd = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
            String st_date = sd.format(date);
            st_date = URLEncoder.encode(st_date,"utf-8");//url编码
            Cookie lastTime = new Cookie("lastTime", st_date);
            response.addCookie(lastTime);
            //设置cookie的存活时间
            lastTime.setMaxAge(60*60*24*30);
            st_date =  URLDecoder.decode(st_date,"utf-8");
            response.getWriter().write("<h1>欢迎首次访问" + st_date+"<h1>");
        }
    }

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

jsp样式

<%@ page import="java.net.URLDecoder" %>
<%@ page import="java.util.Date" %>
<%@ page import="java.text.SimpleDateFormat" %>
<%@ page import="java.net.URLEncoder" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
<%
    //设置消息体响应的数据格式编码
    response.setContentType("text/html;charset=utf-8");
    boolean flag = false;
    //获取所有的cookie
    Cookie[] cc = request.getCookies();
    if(cc!=null && cc.length>0){
        for(Cookie c : cc){
            if("lastTime".equals(c.getName())){
                //获取cookie的value
                String v = c.getValue();
                v= URLDecoder.decode(v,"utf-8");//url解码
                response.getWriter().write("欢迎欢迎回来"+v);
//                    设置cookie的值
                //获取当前时间的字符串
                Date date = new Date();
                SimpleDateFormat sd = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
                String st_date = sd.format(date);
                st_date = URLEncoder.encode(st_date,"utf-8");//url编码
                c.setValue(st_date);
                response.addCookie(c);
                flag=true;
                //设置cookie的存活时间
                c.setMaxAge(60*60*24*30);



                break;
            }

        }
    }
    if(cc == null || cc.length==0 || flag == false) {
        //获取当前时间的字符串
        Date date = new Date();
        SimpleDateFormat sd = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
        String st_date = sd.format(date);
        st_date = URLEncoder.encode(st_date,"utf-8");//url编码
        Cookie lastTime = new Cookie("lastTime", st_date);
        response.addCookie(lastTime);
        //设置cookie的存活时间
        lastTime.setMaxAge(60*60*24*30);
        st_date =  URLDecoder.decode(st_date,"utf-8");
        response.getWriter().write("<h1>欢迎首次访问" + st_date+"<h1>");
    }
%>

</body>
</html>

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值