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