由於論壇、聊天室都是開放的系統,每一個有權限的用戶都可以在其中暢所欲言。但是往往有一些別有用心的用戶就會利用它們的開放性在其中搗亂,比如在聊天時或在論壇中發文章時,嵌入HTML標記,使系統混亂。因此,想編寫一個健壯的論壇或聊天室就必須把用戶發送來的HTML標記濾去。
讓我們來分析一下如何濾去這些標記。我們都知道,HTML標記是由兩個尖括號“<”、“>”和其中的一些語句組成,如等,只要把我們接收到的HTML語句中的“<”、“>”相應換成<和>,在發回就可以了。現在思路明了多了吧。現在讓我們看看這個過程在Java程序中如何實現,為了節省篇幅,我只寫了過濾的函數。
Public String htmlFilter(String inputString);
If(inputString.length()= =0 || inputString= = null)
{
return inputString;
}
///如果接收到的字符串為空值或者長度為零,則返回該字符串,
//因為空字符串是不可能*有<和>的
StringBuffer str=new StringBuffer(inputString.length()+6);
//創建空的緩沖區
char c=’’;
for(int i=0 ;i< inputString.length();i ++)
{
c= inputString.charAt(i);//逐個掃描輸入的字符串,取下inputString中第i +1個字符
if (c= =’<’)
{
str.append(“<”);
}//如果c為‘<’,則在str緩沖中加入”<”代替‘<’
else if (c = =’>’)
{
str.append(“<”);
}//如果c為‘>’,則在str緩沖中加入”>”代替‘>’
else
{
str.append (c); //如果既無’<’ 也無’>’則直接把c中的值寫入緩沖
}
}
return str.toString(); //返回濾過HTML標記的字符串
}
你看,這樣的難題就被一個簡簡單單的Java函數解決了。你只需把它加到你的論壇或聊天使程序中就行了。