java根据cookie统计uv,利用Cookie统计UV流量 | 学步园

1、利用Cookie统计UV数据(邮件群发,然后统计打开该邮件的点击量)

2、在邮件中植入这个InsureToolAction的访问地址

3、在BaseAction中封装了getRequest()和getResponse()方法

public class InsureToolAction extends BaseAction {

// 客户标识

private final String CUSTOMER_IDENTIFICATION = "CusID";

private String uvFlag;

/**

* cookie中获取用户唯一标识 采用uuid记录 存在获取不存在重新设置

*/

private void autoSetCookie() {

Cookie[] cookies = getRequest().getCookies();

int count = 0;

if (cookies != null) {

for (Cookie cookie : cookies) {

if (org.apache.commons.lang3.StringUtils.equals(cookie.getName(), CUSTOMER_IDENTIFICATION)) {

uvFlag = cookie.getValue();

break;

}

count++;

// 该cookie在cookie列表中不存在

if (count == cookies.length) {

autoSetCid();

}

}

} else {

autoSetCid();

}

}

/**

* 自动设置客户端唯一标识

*/

private void autoSetCid() {

uvFlag = UUID.randomUUID().toString().replaceAll("[-]", "");

Cookie cidCookie = new Cookie(CUSTOMER_IDENTIFICATION, uvFlag);

cidCookie.setDomain(PropertyFileUtil.get("domain"));

cidCookie.setMaxAge(365*24*60*60);

cidCookie.setPath("/");

getResponse().addCookie(cidCookie);

}

}

@Scope("prototype")

public class BaseAction extends ActionSupport {

private HttpServletRequest request;

private HttpServletResponse response;

public void setRequest(HttpServletRequest request) {

this.request = request;

this.session=request.getSession();

this.application=request.getSession().getServletContext();

}

public void setResponse(HttpServletResponse response) {

this.response = response;

}

// 获取Request

public HttpServletRequest getRequest() {

return ServletActionContext.getRequest();

}

// 获取Response

public HttpServletResponse getResponse() {

return ServletActionContext.getResponse();

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值