利用Cookie统计UV流量

来源:互联网 发布:c语言学生成绩管理删除 编辑:程序博客网 时间:2024/05/05 23:28


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;}// 获取Requestpublic HttpServletRequest getRequest() {return ServletActionContext.getRequest();}// 获取Responsepublic HttpServletResponse getResponse() {return ServletActionContext.getResponse();}}


0 0
原创粉丝点击