📄 blackwordcheck.java
字号:
package com.wayout.wayoutsp.publics;import java.sql.*;import java.util.Calendar;import java.util.Hashtable;import java.util.Enumeration;import java.util.Random;/** * <p>Title: </p> * <p>Description: 短信平台</p> * <p>Copyright: Copyright (c) 2003</p> * <p>Company: wayout</p> * @author wayout * @version 1.0 */public class BlackWordCheck extends Thread { private volatile PreparedStatement getBlackNumPstmt = null; private static BlackWordCheck blackWordCheck=null; private static Hashtable blackHashTable=null;// private static Hashtable ADHashTable=null; private final static String SQLgetBlackNum="select VC2BLACK_WORD from WL_SMS_FILTERLIST where NUMSTATE=0";// private final static String SQLgetADWord="select ad_word from t_ad_word where state=0"; private BlackWordCheck() { blackHashTable=new Hashtable();// ADHashTable=new Hashtable(); listBlackWord();// listADWord(); }//取得启动对象 public static BlackWordCheck getInstance(){ if(blackWordCheck==null){ blackWordCheck=new BlackWordCheck(); return blackWordCheck; } return blackWordCheck; } //直接替换可能存在的敏感词public String ifExistBlackWord(String blackWord){ Enumeration wordEnu=blackHashTable.keys(); while(wordEnu.hasMoreElements()){ String s=(String)wordEnu.nextElement(); blackWord= ReplaceString.replace(blackWord,s,"**"); } return blackWord; } //当下发信息过短时,随机获取一条广告词.//public String getOneADWord(){// String ADWord="";// Random ad_id=new Random();// if(ADHashTable.size()>0){// int i=ad_id.nextInt(ADHashTable.size())+1;// ADWord=(String)ADHashTable.get(Integer.toString(i));// }// System.out.println("BlackWordCheck::add one AD message to user: "+ADWord);// return ADWord;//} public void run() { com.wayout.wayoutsp.publics.PublicFuction.threadSleep(5000); while(true) { while(!listBlackWord()){ PublicConstants.writeLog.info("BlackWordCheck::get bad Word list error!!!",0); System.out.print("BlackWordCheck::get bad Word list error!!!") ; com.wayout.wayoutsp.publics.PublicFuction.threadSleep(1000); }// while(!listADWord()){// PublicConstants.writeLog.info("BlackWordCheck::get AD list error!!!",0);// System.out.print("BlackWordCheck::get AD list error!!!") ;// com.wayout.wayoutsp.publics.PublicFuction.threadSleep(1000);// } //System.out.println("get AD list and check bad Word once") ; PublicConstants.writeLog.info("BlackWordCheck::get AD list and check bad Word once!!!",1); com.wayout.wayoutsp.publics.PublicFuction.threadSleep(1000*60*10); } } //将要加的广告语读入内存//private boolean listADWord(){// try{// Connection conn=DatabaseAccess.connectDatabase( PublicConstants.CONNECTION_URL,PublicConstants.DB_USER,PublicConstants.DB_PASS);// getBlackNumPstmt=conn.prepareStatement(SQLgetADWord);// ResultSet rst=getBlackNumPstmt.executeQuery();// ADHashTable.clear();// int key=1;// while(rst.next()){// ADHashTable.put(Integer.toString(key),rst.getString(1).trim());// //System.out.println("get AD word count: "+key);// key++;// }// //System.out.println("get AD word count: "+ADHashTable.size());// PublicConstants.writeLog.info("BlackWordCheck::get AD word count: "+key,1);// conn.close() ;// return true;// }catch(Exception e){// System.out.println("BlackWordCheck::get AD Word error: "+e);// }// return false;//}//将敏感词读入内存private boolean listBlackWord(){ try{ Connection conn=DatabaseAccess.connectDatabase( PublicConstants.CONNECTION_URL,PublicConstants.DB_USER,PublicConstants.DB_PASS); getBlackNumPstmt=conn.prepareStatement(SQLgetBlackNum); ResultSet rst=getBlackNumPstmt.executeQuery(); blackHashTable.clear(); int i=0; while(rst.next()){ blackHashTable.put(rst.getString(1).trim(),"aa"); i++; } PublicConstants.writeLog.info("get bad word count: "+i,0); System.out.println("get bad word count: "+i); conn.close() ; return true; }catch(Exception e){ System.out.println("get AD list and check bad Word: "+e); } return false; }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -