flex java 全局拦截_flex + java 过滤敏感词
過(guò)濾敏感詞這個(gè)相對(duì)比較容易做到,網(wǎng)上也很多方法,看得比較多的一個(gè)方法就是:把所有的敏感詞寫入到一個(gè)properties文件中,程序啟動(dòng)時(shí)拼成一個(gè)正則表達(dá)式。這個(gè)也只是比較基礎(chǔ)的敏感詞過(guò)濾器,比較強(qiáng)大的過(guò)濾器是連如:“陳@@@水@@@扁”這樣的詞都能過(guò)濾掉,QQ聊天的過(guò)濾好像就做到了這樣。
對(duì)于web程序,如果發(fā)現(xiàn)敏感詞不讓通過(guò)并且導(dǎo)向另外的提示頁(yè)面,這個(gè)則可以用一般的過(guò)濾器filter來(lái)做。但是如果需要繼續(xù)執(zhí)行原先的意圖,并把敏感詞用***替換,這時(shí)似乎不能使用filter來(lái)執(zhí)行。因?yàn)闆](méi)有request.setParameter()這個(gè)方法吧...最簡(jiǎn)單的方法,就是在執(zhí)行數(shù)據(jù)庫(kù)操作時(shí)先過(guò)濾掉敏感詞,問(wèn)題是需要在每個(gè)處理請(qǐng)求的地方寫那段過(guò)濾代碼吧。。。
對(duì)于一般的j2ee系統(tǒng)來(lái)說(shuō),我沒(méi)想那么多,或許可以使用aop來(lái)做,有空得研究一下。不過(guò)對(duì)于flex 結(jié)合 j2ee的web系統(tǒng)則相對(duì)可以簡(jiǎn)單點(diǎn),廢話一下,flex與java的結(jié)合使用blazeds框架。這種系統(tǒng)一般都是把java方法暴露給flex直接調(diào)用。原理應(yīng)該類似于js框架dwr。他們的原理姑且認(rèn)為都是通過(guò)反射來(lái)執(zhí)行java方法,這好辦了,只要在Method.invoke()之前修改一下那些可能帶有敏感詞的參數(shù)就可以了。發(fā)現(xiàn)Blazeds框架提供了一個(gè)JavaAdapter類,這個(gè)類應(yīng)該是flex與java之間的適配器。同時(shí)需要配置在remoting-config.xml文件中。這是我們可以去繼承JavaAdapter類。如下:
public class MyDcsJavaAdapter extends JavaAdapter
{
public Object invoke(Message message)
{
RemotingMessage remotingMessage = (RemotingMessage)message;
List parameters = remotingMessage.getParameters();
//開始實(shí)施過(guò)濾
int size = parameters.size();
for(int i = 0 ; i < size ; i ++)
{
Object obj = parameters.get(i);
//主要是對(duì)字符串String過(guò)濾
if(obj instanceof String)
{
parameters.set(i,
SensitiveWordFilter.filter(obj.toString()));
}
}
return super.invoke(message);
}
}
接下來(lái)在remoting-config.xml配置文件中修改適配器
總結(jié)
以上是生活随笔為你收集整理的flex java 全局拦截_flex + java 过滤敏感词的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: python list 深复制_Pyth
- 下一篇: java clone 报错_创建Arra