📄 webstat.java
字号:
package msg;
import msg.*;
import java.io.*;
import java.util.*;
import java.sql.*;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.*;
import javax.xml.transform.*;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
import org.w3c.dom.*;
//import javax.swing.text.*;
public class WebStat{
String sql="";
ResultSet rs=null;
DbConn db=null;
public WebStat(){
try{
db=new msg.DbConn();
}catch(Exception e){}
}
/**
*在数据库中添加一个新的访问记录
*xmlPageInfo="<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?>"+
* "<U i=\"1171272975502\" t=\"\" s=\"ONLINE\" v=\"\" dm=\"www.3yan.com\"><I i=\"61.49.138.171\" "+
* "a=\"北京市海淀区 /东城区网通ADSL\" e=\"来自链接-www.3yan.com\" k=\"\" bo=\" MSIE 6.0\" "+
* "o=\" Windows NT 5.1\" l=\"zh-cn\" p=\"1024*768\" u=\"www.3yan.com\" ad=\"0\"/>"+
* "<VS><T f=\"http%3A%2F%2Fwww.3yan.com%2F\" ot=\"false\" u=\"www.3yan.com\" "+
* "t=\"2007-2-12 17:38:26\"/></VS></U>";
*/
public void addNewPageView(String curURL0,String xmlPageInfo){
try{
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db1 = dbf.newDocumentBuilder();
Document doc = db1.parse(new ByteArrayInputStream(xmlPageInfo.getBytes("UTF-8")));
Element U=doc.getDocumentElement(); //获取根element
NamedNodeMap I=doc.getElementsByTagName("I").item(0).getAttributes();
NamedNodeMap VS=doc.getElementsByTagName("VS").item(0).getChildNodes().item(0).getAttributes();
String id = U.getAttribute("i");
String ip = I.getNamedItem("i").getNodeValue();
String area = new String(I.getNamedItem("a").getNodeValue().getBytes("UTF-8"),"UTF-8");
area.replaceAll("\\?","_");
String fromUrl = msg.Escape.unescape(VS.getNamedItem("f").getNodeValue());
String linkUrl = I.getNamedItem("e").getNodeValue();
int index=linkUrl.indexOf("-");
if(index>0)
linkUrl=linkUrl.substring(index+1);
String mailUrl = "";
String engine = "";
String keyword = I.getNamedItem("k").getNodeValue();
if(keyword!=null && ( keyword.indexOf("?")>=0 || keyword.indexOf(":")>=0) )
keyword=msg.Escape.escape(keyword);
if(keyword!=null && !keyword.equals("")&& !keyword.equals("null"))
engine = I.getNamedItem("e").getNodeValue();
//engine=linkUrl;
if(fromUrl.indexOf("mail.")>=0)
mailUrl=fromUrl;
String url = VS.getNamedItem("u").getNodeValue();
String currentPage = Keyword.getPage(curURL0);
String time = VS.getNamedItem("t").getNodeValue();
String[] provinces=new String[]{"北京","广东","辽宁","福建","上海","江苏","广西","河南","甘肃","重庆",
"湖北","四川","陕西","内蒙古","山东","天津","湖南","香港","河北","新疆",
"吉林","黑龙江","江西","浙江","海南","西藏","澳门","贵州","青海","山西",
"台湾","安徽","宁夏","云南"};
String province="";
for(int i=0;i<provinces.length;i++){
if(area.indexOf(provinces[i])>=0){
province=provinces[i];
break;
}
}
if(province.equals(""))
province="其它";
if(fromUrl.length()>0)
fromUrl=msg.Escape.escape(fromUrl);//如果不escape,url中的?可能导致insert报错:no value specified for parameter
if(linkUrl.length()>0)
linkUrl=msg.Escape.escape(linkUrl);
if(mailUrl.length()>0)
mailUrl=msg.Escape.escape(mailUrl);
sql="insert into pageview values(\""+id+"\",\""+ip+"\",\""+area+"\",\""+province+"\",\""+fromUrl+"\",\""+linkUrl+"\",\""+mailUrl+
"\",\""+engine+"\",\""+keyword+"\",\""+url+"\",\""+currentPage+"\",\""+time+"\")";
//Log.log(sql);
if(db==null) db=new msg.DbConn();
if(db.getConnection()==null || db.isClosed())
db.setConnection();
db.setSqlQuery(sql);
db.executeUpdate();
if(db.getConnection()!=null && !db.isClosed())
db.closeConnection();
}catch(Exception e){
closeDbConnection();
Log.log("class Webstat method addNewPageView() sql:("+sql+") error:"+e.getMessage());
}
}
public long getTimeInMillis(String type){
if(type==null)
return 0;
Calendar now= Calendar.getInstance();
if(type.equals("startOfToday"))
now.set(now.get(Calendar.YEAR),now.get(Calendar.MONTH),now.get(Calendar.DAY_OF_MONTH),0,0,0);
else if(type.equals("endOfToday"))
now.set(now.get(Calendar.YEAR),now.get(Calendar.MONTH),now.get(Calendar.DAY_OF_MONTH),23,59,59);
else if(type.equals("startOfThisMonth"))
now.set(now.get(Calendar.YEAR),now.get(Calendar.MONTH),1,0,0,0);
else if(type.equals("endOfThisMonth"))
now.set(now.get(Calendar.YEAR),now.get(Calendar.MONTH),now.get(Calendar.DAY_OF_MONTH),23,59,59);
else if(type.equals("startOfYesterday")){
now.setTimeInMillis(now.getTimeInMillis()-24*60*60*1000);
now.set(now.get(Calendar.YEAR),now.get(Calendar.MONTH),now.get(Calendar.DAY_OF_MONTH),0,0,0);
}
else if(type.equals("endOfYesterday")){
now.setTimeInMillis(now.getTimeInMillis()-24*60*60*1000);
now.set(now.get(Calendar.YEAR),now.get(Calendar.MONTH),now.get(Calendar.DAY_OF_MONTH),23,59,59);
}
return now.getTimeInMillis();
}
public String getTimeString(String type){
if(type==null)
return null;
Calendar now= Calendar.getInstance();
if(type.equals("startOfToday"))
now.set(now.get(Calendar.YEAR),now.get(Calendar.MONTH),now.get(Calendar.DAY_OF_MONTH),0,0,0);
else if(type.equals("endOfToday"))
now.set(now.get(Calendar.YEAR),now.get(Calendar.MONTH),now.get(Calendar.DAY_OF_MONTH),23,59,59);
else if(type.equals("startOfThisMonth"))
now.set(now.get(Calendar.YEAR),now.get(Calendar.MONTH),1,0,0,0);
else if(type.equals("endOfThisMonth"))
now.set(now.get(Calendar.YEAR),now.get(Calendar.MONTH),now.get(Calendar.DAY_OF_MONTH),23,59,59);
else if(type.equals("startOfYesterday")){
now.setTimeInMillis(now.getTimeInMillis()-24*60*60*1000);
now.set(now.get(Calendar.YEAR),now.get(Calendar.MONTH),now.get(Calendar.DAY_OF_MONTH),0,0,0);
}
else if(type.equals("endOfYesterday")){
now.setTimeInMillis(now.getTimeInMillis()-24*60*60*1000);
now.set(now.get(Calendar.YEAR),now.get(Calendar.MONTH),now.get(Calendar.DAY_OF_MONTH),23,59,59);
}
return getTimeString(now);
}
public String getTimeString(){
return getTimeString(Calendar.getInstance());
}
public String getTimeString(Calendar c){
return String.valueOf(c.get(Calendar.YEAR))+"-"+String.valueOf(c.get(Calendar.MONTH)+1)+"-"+
String.valueOf(c.get(Calendar.DAY_OF_MONTH))+" "+String.valueOf(c.get(Calendar.HOUR_OF_DAY))+":"+
String.valueOf(c.get(Calendar.MINUTE))+":"+String.valueOf(c.get(Calendar.SECOND));
}
public static void main(String[] args){
//new WebStat();
}
private void closeDbConnection(){
try{
if(db.getConnection()!=null && !db.isClosed())
db.closeConnection();
}catch(Exception e){}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -