⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 vlog.java

📁 tbuy1.1.5是在netbeans环境下用JSF技术编写的一个论坛tbuy1.1.5是在netbeans环境下用JSF技术编写的一个论坛
💻 JAVA
字号:
/* * 作者: 胡李青 * qq: 31703299 * Copyright (c) 2007 huliqing * 主页 http://www.tbuy.biz/ * 你可以免费使用该软件,未经许可请勿作用于任何商业目的 */package biz.tbuy.common.logs;import biz.tbuy.common.ComApplication;import biz.tbuy.common.Constants;import biz.tbuy.common.Visitor;import biz.tbuy.share.XmlOper;import java.io.File;import java.io.Serializable;import java.text.SimpleDateFormat;import java.util.ArrayList;import java.util.Date;import java.util.HashMap;import java.util.List;import java.util.Map;import org.w3c.dom.Document;import org.w3c.dom.Element;import org.w3c.dom.NodeList;import org.w3c.dom.Text;/** * @author huliqing * <p><b>qq:</b>31703299 * <p><b>E-mail:</b><a href="mailto:huliqing.cn@gmail.com">huliqing.cn@gmail.com</a> * <p><b>Homepage:</b><a href="http://www.tbuy.biz/">http://www.tbuy.biz/</a> */public class Vlog implements Serializable{                public Vlog() {}        /**     * 获取访问日志信息     * @return vlogs     */    public List<Map<String, String>> getVlogsByDate(Date date) {        List<Map<String, String>> vlogs = new ArrayList<Map<String, String>>();        File vlogFile = getLogFile(date);        try {            Document doc = XmlOper.getDocument(vlogFile);            Element root = doc.getDocumentElement();            NodeList visitors = root.getElementsByTagName("visitor");            int len = visitors.getLength();            for (int i = 0; i < len; i++) {                Element visitor = (Element)visitors.item(i);                String ip = visitor.getElementsByTagName("ip").item(0).getTextContent();                String user = visitor.getElementsByTagName("user").item(0).getTextContent();                String startTime = visitor.getElementsByTagName("start-time").item(0).getTextContent();                String endTime = visitor.getElementsByTagName("end-time").item(0).getTextContent();                Map<String, String> vlog = new HashMap<String, String>(4);                vlog.put("ip", ip);                vlog.put("user", user);                vlog.put("startTime", startTime);                vlog.put("endTime", endTime);                vlogs.add(vlog);            }        } catch (Exception e) {            System.out.println("Exception:Vlog:getVlogsByDate:" + e.getMessage());        }        return vlogs;    }        /**     * 登记访问者     */     public void log(Visitor visitor) {        try {            File vlogFile = getLogFile(new Date());            Document doc = XmlOper.getDocument(vlogFile);            Element xRoot = doc.getDocumentElement();            Element xVisitor = doc.createElement("visitor");            Element xIp = doc.createElement("ip");            Element xUser = doc.createElement("user");            Element xStartTime = doc.createElement("start-time");            Element xEndTime = doc.createElement("end-time");                        Text xIp_text = doc.createTextNode(visitor.getIp());            Text xUser_text;            Text xStartTime_text;            if (visitor.isLogin()) {                xUser_text = doc.createTextNode(visitor.getUser().getId());                Date nowTime = new Date();                SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss");                xStartTime_text = doc.createTextNode(sdf.format(nowTime));            } else {                // 如果用户未登录,则startTime使用用户的首次访问时间                xUser_text = doc.createTextNode("--");                xStartTime_text = doc.createTextNode(visitor.getFirstTime());            }            Text xEndTime_text = doc.createTextNode("--");                        xRoot.appendChild(xVisitor);            xVisitor.appendChild(xIp);            xVisitor.appendChild(xUser);            xVisitor.appendChild(xStartTime);            xVisitor.appendChild(xEndTime);            xIp.appendChild(xIp_text);            xUser.appendChild(xUser_text);            xStartTime.appendChild(xStartTime_text);            xEndTime.appendChild(xEndTime_text);                        XmlOper.saveDocument(doc, vlogFile);        } catch (Exception saxe) {            System.out.println("Exception:Vlog:log:" + saxe.getMessage());        }    }        /**     * 记录用户的大概离开时的时间     */     public void logLeave(Visitor visitor) {        try {            File vlogFile = getLogFile(new Date());            Document doc = XmlOper.getDocument(vlogFile);            Element xRoot = doc.getDocumentElement();            NodeList visitors = xRoot.getElementsByTagName("visitor");            int len = visitors.getLength();            Date nowTime = new Date();            SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss");            String endTime = sdf.format(nowTime);                        for (int i = len - 1; i >= 0; i++) {                Element xVisitor = (Element)visitors.item(i);                String ip = xVisitor.getElementsByTagName("ip").item(0).getTextContent();                String user = xVisitor.getElementsByTagName("user").item(0).getTextContent();                String startTime = xVisitor.getElementsByTagName("start-time").item(0).getTextContent();                //System.out.println(ip + ":" + user + ":" + startTime);                if (!visitor.isLogin()) {                    if (ip.equals(visitor.getIp()) && startTime.equals(visitor.getFirstTime())) {                        xVisitor.getElementsByTagName("end-time").item(0).setTextContent(endTime);                        break;                    }                } else {                    if (ip.equals(visitor.getIp()) && user.equals(visitor.getUser().getId())) {                        xVisitor.getElementsByTagName("end-time").item(0).setTextContent(endTime);                        break;                    }                }            }            XmlOper.saveDocument(doc, vlogFile);        } catch (Exception e) {            System.out.println("Exception:Vlog:logLeave:" + e.getMessage());        }    }    /**     * 测试中..........     * 记录用户的大概离开时的时间,多个用户     */     public void logLeave(List<Visitor> someVisitors) {        if (someVisitors == null || someVisitors.isEmpty()) return;        try {            File vlogFile = getLogFile(new Date());            Document doc = XmlOper.getDocument(vlogFile);            Element xRoot = doc.getDocumentElement();            NodeList visitors = xRoot.getElementsByTagName("visitor");            int len = visitors.getLength();            Date nowTime = new Date();            SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss");            String endTime = sdf.format(nowTime);            for (Visitor visitor : someVisitors) {                for (int i = len - 1; i >= 0; i++) {                    Element xVisitor = (Element)visitors.item(i);                    String ip = xVisitor.getElementsByTagName("ip").item(0).getTextContent();                    String user = xVisitor.getElementsByTagName("user").item(0).getTextContent();                    String startTime = xVisitor.getElementsByTagName("start-time").item(0).getTextContent();                    //System.out.println(ip + ":" + user + ":" + startTime);                    if (!visitor.isLogin()) {                        if (ip.equals(visitor.getIp()) && startTime.equals(visitor.getFirstTime())) {                            xVisitor.getElementsByTagName("end-time").item(0).setTextContent(endTime);                            break;                        }                    } else {                        if (ip.equals(visitor.getIp()) && user.equals(visitor.getUser().getId())) {                            xVisitor.getElementsByTagName("end-time").item(0).setTextContent(endTime);                            break;                        }                    }                }            }            XmlOper.saveDocument(doc, vlogFile);        } catch (Exception e) {            System.out.println("Exception:Vlog:logLeave(manay):" + e.getMessage());        }    }        /**     * 获取特定日期的日志文件路径     */    private File getLogFile(Date date) {        //System.out.println("in getLogFile...");        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");        String filename = "vlog" + sdf.format(date) + ".xml";        String vlog = getVlogPath() + "/" + filename;        File file = new File(vlog);        if (!file.exists()) {            newXML(vlog);        }        //System.out.println("vlog" + vlog);        return file;    }        /**     * 创建新的xml文件     */    private void newXML(String path) {        try {            Document doc = XmlOper.newDocument();            Element root = doc.createElement("root");            doc.appendChild(root);            XmlOper.saveDocument(doc, path);        } catch (Exception e) {            System.out.println("Exception:Vlog:newXML:" + e.getMessage());        }    }        /**     * 获取访问日志文件的绝对路径     */    private String getVlogPath() {        return ComApplication.getInstance().getServletContextPath() +                 Constants.PATH_VLOG;    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -