Cookie and Session related usage

Article Directory

One, the code

1. Code

package com.cookie;

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.net.URLEncoder;

@WebServlet("/as")
public class AServlet extends HttpServlet {
    
    


    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    
    
        Cookie cookie = new Cookie("name", URLEncoder.encode("曹: 操","utf-8"));
        cookie.setMaxAge(30);
        Cookie cookie2 = new Cookie("age", "18");
        //发送cookie给客户端
        response.addCookie(cookie);
        response.addCookie(cookie2);
        //响应cookie的方式二
        //response.setHeader("set-cookie","name=lucy");

        response.setContentType("text/html;charset=UTF-8");
        response.getWriter().write("hello 百里半");
    }
}

package com.cookie;

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.net.URLDecoder;

@WebServlet( "/bs")
public class BServlet extends HttpServlet {
    
    


    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    
    
    //获取cookie
        Cookie[] cookies = request.getCookies();
        for (Cookie cookie : cookies) {
    
    
            System.out.println(cookie.getName()+"--"+ URLDecoder.decode(cookie.getValue(),"utf-8"));

        }
    }
}

package com.session;

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;

@WebServlet("/cs")
public class CServlet extends HttpServlet {
    
    


    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    
    
        System.out.println("C"+request.getSession()+",id:"+request.getSession().getId());

        Cookie c = new Cookie("JSESSIONID", request.getSession().getId());
        c.setMaxAge(60);
        //覆盖同名的cookie
        response.addCookie(c);

    }
}

package com.session;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

@WebServlet("/ds")
public class DServlet extends HttpServlet {
    
    


    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    
    
        System.out.println(request.getSession());
        System.out.println("D"+request.getSession()+",id:"+request.getSession().getId());
    }
}

package com;

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.net.URLEncoder;

@WebServlet("/as")
public class AServlet extends HttpServlet {
    
    
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    
    
        //两种方式响应cookie给浏览器
        //响应cookie的方式一
        Cookie cookie = new Cookie("name", URLEncoder.encode("曹:操","utf-8"));
        cookie.setMaxAge(30);
        Cookie cookie1 = new Cookie("age", "18");
        //发送cookie给服务端
        response.addCookie(cookie);
        response.addCookie(cookie1);
        //响应cookie的方式二
        //response.setHeader("set-cookie","name=lucy");
        response.setContentType("text/html;charset=UTF-8");
        response.getWriter().write("hello  百里半");
    }
}

package com;

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.net.URLDecoder;

@WebServlet("/bs")
public class BServlet extends HttpServlet {
    
    
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    
    
    //获取cookie
        Cookie[] cookies = request.getCookies();
        for (Cookie cookie : cookies) {
    
    
            //服务器端获取所有的cookie  tomcat8,支持cookie中有中文,但是不支持特殊符号,例如空格和冒号
            //可以使用URL编码和解码的方式,存的时候,对value值进行编码  取出来时, 再进行解码
            System.out.println(cookie.getName()+"--"+ URLDecoder.decode(cookie.getValue(),"utf-8"));
        }
    }
}

package com;

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.net.URL;
import java.net.URLDecoder;
import java.net.URLEncoder;
import java.text.SimpleDateFormat;
import java.util.Date;

@WebServlet("/cs")
public class CServlet extends HttpServlet {
    
    
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    
    
        //设置响应的消息体的数据格式以及编码
        response.setContentType("text/html;charset=utf-8");
        //1.获取所有Cookie
        Cookie[] cookies = request.getCookies();
        boolean flag=false;//没有cookies为lastTime
        //2.遍历cookie数组
        if (cookies!=null && cookies.length>0){
    
    
            for (Cookie cookie : cookies) {
    
    
                //3.获取cookie的名称
                String name = cookie.getName();
                //4.判断名称是否是:lastTime
                if ("lastTime".equals(name)){
    
    
                    //有该Cookie,不是第一次访问
                    flag=true;//有lastTime的cookie

                    //获取Cookie的value,时间
                    String value = cookie.getValue();
                    System.out.println("解码前:"+value);
                    //URL解码:
                    value = URLDecoder.decode(value, "utf-8");
                    System.out.println("解码后:"+value);

                    //设置Cookie的value
                    //获取当前时间的字符串,重新设置Cookie的道,重新发送cookie
                    Date date = new Date();
                    SimpleDateFormat sdf = new SimpleDateFormat("yyy年MM月dd日HH:mm:ss");

                    String str_date = sdf.format(date);
                    System.out.println("编码前"+str_date);
                    //URL编码
                    str_date = URLEncoder.encode(str_date, "utf-8");
                    System.out.println("编码后:"+str_date);
                    cookie.setValue(str_date);
                    //设置cookie的存活时间
                    cookie.setMaxAge(60*60*24*30);//一个月
                    response.addCookie(cookie);
                    //响应数据

                    response.getWriter().write("<h1>欢迎回来,您上次访问时间为:"+value+"</h1>");

                    break;
                }
            }
        }
        if (flag == false){
    
    
            //没有,第一次访问

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

            Cookie cookie = new Cookie("lastTime", str_date);
            //设置cookie的存活时间
            cookie.setMaxAge(60*60*24*30);//一个月
            response.addCookie(cookie);

            response.getWriter().write("<h1>您好,欢迎您首次访问</h1>");
        }
    }
}

to sum up

The above is all the codes for the related methods and usage of Cookie and Session.

Guess you like

Origin blog.csdn.net/StruggleBamboo/article/details/114749306