记录——自定义EstablishCookieUtils,LoginFilter使用

声明

为自己做demo编写

一、创建自定义Cookie使用方法

1.1创建CookieUtils对象

CookieUtils cookieUtils= new CookieUtils(userNumber);

1.2创建EstablishCookieUtils对象

EstablishCookieUtils establishCookieUtils = new EstablishCookieUtils(response,cookieUtils);

1.3调用创建方法

establishCookieUtils.establishCookie();

二、CookieUtils介绍

该类也为自定义类

2.1属性

private String cookieName;
private String cookieValue;
private int maxAge;

2.2构造方法

2.2.1无要求生命周期的Cookie 默认为-1

	public CookieUtils(String cookieName, String cookieValue) {
        this.cookieName = cookieName;
        this.cookieValue = cookieValue;
        this.maxAge = -1;
    }

使用:

new CookieUtils(cookieName,cookieValue);

2.2.2自定义生命周期的Cookie

	public CookieUtils(String cookieName, String cookieValue, int maxAge) {
        this.cookieName = cookieName;
        this.cookieValue = cookieValue;
        this.maxAge = maxAge;
    }

使用:

new CookieUtils(cookieName,cookieValue,maxAge);

2.2.3无要求生命周期的登录Cookie 默认为-1

	public CookieUtils(String userNumber) {
        this.cookieName = "LOGIN_COOKIE_"+userNumber;
        loginUtils = new LoginUtils(userNumber);
        Map<String,String> map = loginUtils.getEncryptionUserNumber();
        this.cookieValue = map.get(userNumber);
        this.maxAge = -1;
        logger.warn("COOKIE_NAME:"+this.cookieName);
        logger.warn("COOKIE_VALUE:"+this.cookieValue);
    }

使用:

new CookieUtils(userNumber);

2.2.4自定义生命周期的登录Cookie

public CookieUtils(String userNumber, int maxAge) {
        this.cookieName = "LOGIN_COOKIE_"+userNumber;
        loginUtils = new LoginUtils(userNumber);
        Map<String,String> map = loginUtils.getEncryptionUserNumber();
        this.cookieValue = map.get(userNumber);
        this.maxAge = maxAge;
        logger.warn("COOKIE_NAME:"+this.cookieName);
        logger.warn("COOKIE_VALUE:"+this.cookieValue);
    }

使用:

new CookieUtils(userNumber,maxAge);

三、EstablishCookieUtils介绍

3.1属性

	private HttpServletResponse response;
    private CookieUtils cookieUtils;

3.2构造方法

	public EstablishCookieUtils( HttpServletResponse response, CookieUtils cookieUtils) {
        this.response = response;
        this.cookieUtils = cookieUtils;
    }

使用:

new EstablishCookieUtils(response,cookieUtils);

3.3方法 API

3.3.1establishCookie()–>创建通用Cookie,并添加到自定义Cookie缓存中

public CookieCatchUtils establishCookie(){
        logger.info("EstablishCookieUtils__establishCookie()创建COOKIE__START");
        Cookie cookie = null;
        cookie = new Cookie(cookieUtils.getCookieName(),cookieUtils.getCookieValue());
        cookie.setMaxAge(cookieUtils.getMaxAge());
        response.addCookie(cookie);
        logger.info("EstablishCookieUtils__establishCookie()创建COOKIE__END");
//        向cookie缓存中添加
        return catchUtils.addMapElement(cookieUtils.getCookieName(),cookieUtils.getCookieValue());
    }

使用:

establishCookieUtils.establishCookie();

四、CookieCatchUtils介绍–>自定义Cookie缓存

4.1属性

private Map<String,String> catchMap = new HashMap<>();

4.2单例模式构建CookieCatchUtils

	private CookieCatchUtils(){}
    private static CookieCatchUtils catchUtils = new CookieCatchUtils();
    public static CookieCatchUtils getInstance(){
        return catchUtils;
    }

4.3方法API

4.3.1获取CookieMap缓存

	public Map<String, String> getCatchMap() {
        return catchMap;
    }

向CookieMap添加

	public CookieCatchUtils addMapElement(String cookieName, String cookieValue) {
        logger.info("LoginCatchUtils__addMapElement()添加缓存__START");
        catchMap.put(cookieName,cookieValue);
        logger.info(String.valueOf(catchMap));
        logger.info("LoginCatchUtils__addMapElement()添加缓存__END");
        return CookieCatchUtils.getInstance();
    }

使用:
无需自己调用,创建Cookie时自己就调用了

五、自定义LoginFilter使用方法

5.1创建CookieCatchUtils对象

CookieCatchUtils catchUtils = CookieCatchUtils.getInstance();

5.2创建LoginFilter对象

LoginFilter loginFilter = new LoginFilter(userNumber,catchUtils);

5.3调用过滤方法

loginFilter.verifyCookie();

六、LoginFilter介绍

6.1属性

	private String userName;
    private CookieCatchUtils catchUtils;

6.2构造方法

	public LoginFilter(String userName, CookieCatchUtils catchUtils) {
        this.userName = userName;
        this.catchUtils = catchUtils;
    }

6.3方法API

6.3.1 验证Cookie存在

	public boolean verifyCookie( ){
        logger.info("LoginFilter__verifyCookie()验证登录COOKIE__START");
        Map<String,String> map = catchUtils.getCatchMap();
        logger.info(String.valueOf(map));
        Set set = map.keySet();
        for (Iterator iterator = set.iterator();iterator.hasNext();){
            String key = (String) iterator.next();
            if ((LoginFilter.loginCookiePre+userName).equals(key)){
                logger.info("LoginFilter__verifyCookie()验证登录COOKIE通过__END");
                return true;
            }
        }
        logger.info("LoginFilter__verifyCookie()验证登录COOKIE不通过__END");
        return false;
    }

使用:

loginFilter.verifyCookie();
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小华哥的Java

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值