mapreduce

文章介绍了UserUtils类,包含weblogfilterLog方法用于解析和过滤Web请求日志,以及filterByPVs方法根据预设URL列表检查访问权限。parseDateTime函数用于日期时间格式转换。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

package com;

 

import java.time.format.DateTimeFormatter;

import java.time.temporal.TemporalAccessor;

import java.util.HashSet;

import java.util.Locale;

 

 

public class UserUtils {

 

    public static weblog filterLog(String line) {

 

        weblog webLog = new weblog();

 

 

        String[] contents = line.split(" ");

 

 

        if (contents.length > 11) {

 

            webLog.setRequestIP(contents[0]);

 

            webLog.setRequestuser(contents[1]);

 

            webLog.setRequestTime(parseDateTime(contents[3].substring(1)));

 

            webLog.setRequestURL(contents[6]);

 

            webLog.setRequestCode(contents[8]);

 

            webLog.setRequestbytesCount(contents[9]);

 

            webLog.setReferer(contents[10]);

 

 

            if (contents.length > 12) {

                webLog.setUserAgent(contents[11] + " " + contents[12]);

            } else {

                webLog.setUserAgent(contents[11]);

            }

 

 

            if (Integer.parseInt(webLog.getRequestCode()) >= 400) {

 

                webLog.setFlag(false);

            } else {

                webLog.setFlag(true);

            }

 

        } else {

 

            webLog.setFlag(false);

        }

 

        return webLog;

    }

 

 

    public static weblog filterByPVs(String line) {

 

        weblog webLog = filterLog(line);

 

 

        HashSet<String> urls = new HashSet<>();

 

 

        urls.add("/about");

        urls.add("/black-ip-list/");

        urls.add("/cassandra-clustor/");

        urls.add("/finance-rhive-repurchase/");

        urls.add("/hadoop-family-roadmap/");

        urls.add("/hadoop-hive-intro/");

        urls.add("/hadoop-zookeeper-intro/");

        urls.add("/hadoop-mahout-roadmap/");

 

        if (!urls.contains(webLog.getRequestURL())) {

            webLog.setFlag(false);

        }

 

        return webLog;

    }

 

 

    public static String parseDateTime(String dateTime) {

 

        DateTimeFormatter srcDateTimeFormatter = DateTimeFormatter.ofPattern("dd/MMM/yyyy:HH:mm:ss", Locale.ENGLISH);

 

 

        DateTimeFormatter dstDateTimeFormatter = DateTimeFormatter.ofPattern("yyyyMMddHH");

 

 

        TemporalAccessor parseDateTime = srcDateTimeFormatter.parse(dateTime);

 

 

        String formattedDateTime = dstDateTimeFormatter.format(parseDateTime);

 

        return formattedDateTime;

    }

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值