メッセージをチャットしたり、メッセージを残したりすると、いくつかの単語を公開することはできません。フィルターを使用してこの関数を実装できます。
フィルターを使用してこのフィルター機能を実装するだけで、一部の場所は完全に記述されていません
フロントデスクコード:
<body> <form action = "<c:url value = '/wordservlet' //>" method = "method =" post "> name:<入力タイプ=" text "name =" name "/> <br/>メッセージコンテンツ:<textarea rows =" 10 "cols =" 10 "name =" textarea "> </textarea> <br/>
サーブレットのコード:
フロントデスクから収集されたデータを読み上げてください。すべてのフィルター、その中の敏感な単語を見てください。
コード:
public void dopost(httpservletrequest request、httpservletresponse応答)servletexception、ioexception {string name = request.getParameter( "name"); // name string text = request.getParameter( "textarea"); // browse content printwriter pw = response.getwriter(); pw.println( "name ="+name); //これらのキーワードをフィルタリングできるかどうかを確認するために、ここに直接出力します。 。 pw.print( "content"+text); }フィルター:
フィルタリングの機能を反映することができ、フィルターはサーバーにアクセスするクライアント間でインターセプトします。
フィルターがリクエストと応答を制御できることがわかっているため、これから始めることができます。
クライアントからのリクエストはリクエストであるため、フィルタリングを達成するために、途中で傍受して内部の値を変更するだけです。パッケージデザインモデルを採用します。
フィルターコード:
public void dofilter(servletRequest request、servletResponse応答、フィルターチェーンチェーン)IoException、servletexception {httpservletrequest req =(httpservletrequest)request; myfilter myf = new myfilter(req); Chain.dofilter(myf、response); // caiyong私たちが強化したクラスのリクエストは、それを使用のために後続のサーブレットに渡します}MyFilterクラスを手動で作成して、使用する必要がある機能を変更します。
クラスmyfilterはhttpservletrequestwrapperを拡張します{//これは、ラッパーモードpublic myfilter(httpservletrequest request){super(request); } @Override //このメソッドを書き込むpublic string getParameter(string name){string words = super.getParameter(name); System.out.println(words); //テキストリスト<文字列>リスト= wordutils.getWord(); for(string ll:list){words = words.replace(ll、 "*"); //敏感な単語は**} return wordsに置き換えられます。 }メンテナンスを促進するために、管理者が追加するのに便利な敏感な語彙を取得するためのツールを特別に書きました。
public class wordutils {// Singleton Mode Private Static List <String> list = new ArrayList <String>(); //データベースに保存されている敏感な単語にアクセスしてリストにカプセル化してstaticを返すことができます{//いくつかのリストを手動で追加できます( "Scam"); list.add( "swear"); list.add( "silly"); } public static list <string> getWord(){return list; } public static void addword(string name){list.add(name); } public static void sava(){//ここでは、データベースにリストにデータを保存してメンテナンスを簡単に保存できます。もちろん、追加、削除、修正、検索を記述することもできます}ここで、単語が含まれている限り、すべてが *になります *
レンダリング;
概要:フィルターの力は、リクエストと応答オブジェクトを一緒に変更できることです。呼び出す必要がある機能は、パッケージングデザインパターンの形で関数を変更して、必要な効果になることができます。これは、プロキシデザインパターンに少し似ています。
上記は、Javaeeフィルターを使用して紹介された敏感な単語をフィルタリングする方法に関する関連する知識です。それがあなたに役立つことを願っています。ご質問がある場合は、メッセージを残してください。編集者は時間内に返信します。 wulin.comのウェブサイトへのご支援ありがとうございます!