前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >java基础

java基础

原创
作者头像
大学里的混子
修改2019-03-07 10:09:35
4260
修改2019-03-07 10:09:35
举报
文章被收录于专栏:LeetCodeLeetCode

从服务器角度怎么才能判断来访客户的唯一性呢?

已知的一些方法:

一、MAC判断,公网上要获取客户端网卡MAC可不是件容易事,而且受路由等环境影响,准确率是有一定问题的;

二、ActiveX方式获取客户端硬件信息,这个因为在用户看来总是貌似很危险的东东,所以不是很受欢迎;

三、向客户端cookie中写标识,类似为每个访问者建个GUID,这个也因为一些不可控的原因(如用户禁用cookie或用户随时删除cookie等),变得不是很有效;

四、综合判断用户机器名、操作系统、浏览器等信息,这个方式最大的问题就是相似的客户端太多啦,准确性也是有问题的;

五、IP判断,这个在公网上基本不用考虑了

代码语言:javascript
复制
//生成cookie
String token = UUIDUtil.uuid();
addCookie(response, token, user);
return token;
代码语言:javascript
复制
public void addCookie(HttpServletResponse response,String token,MiaoshaUser user){
    //生成Cookie
    redisService.set(MiaoshaUserKey.token,token,user);
    Cookie cookie = new Cookie(COOKI_NAME_TOKEN,token);
    cookie.setMaxAge(MiaoshaUserKey.token.expireSeconds());
    cookie.setPath("/");
    response.addCookie(cookie);
}

在HTML5中,新加入了一个localStorage特性,这个特性主要是用来作为本地存储来使用的,解决了cookie存储空间不足的问题(cookie中每条cookie的存储空间为4k),localStorage中一般浏览器支持的是5M大小,这个在不同的浏览器中localStorage会有所不同。

单例模式

静态内部类[推荐用]

代码语言:javascript
复制
public class Singleton {

    private Singleton() {}

    private static class SingletonInstance {
        private static final Singleton INSTANCE = new Singleton();
    }

    public static Singleton getInstance() {
        return SingletonInstance.INSTANCE;
    }
}

代码语言:javascript
复制
public class Singleton {

    private static volatile Singleton singleton;

    private Singleton() {}

    public static Singleton getInstance() {
        if (singleton == null) {
            synchronized (Singleton.class) {
                if (singleton == null) {
                    singleton = new Singleton();
                }
            }
        }
        return singleton;
    }
}

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 静态内部类[推荐用]
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
http://www.vxiaotou.com