لا يُسمح بنشر بعض الكلمات عند الدردشة أو نترك الرسائل. يمكننا استخدام المرشحات لتنفيذ هذه الوظيفة.
نحن ببساطة نستخدم المرشحات لتنفيذ وظيفة المرشح هذه ، وبعض الأماكن غير مكتوبة بالكامل
رمز مكتب الاستقبال:
<Body> <form Action = "<c: url value = '/wordservlet' //>" method = "post"> name: <input type = "text" name = "name"/> <br/> محتوى الرسالة: <textarea rows = "10" cols = "10" name = "textarea"
رمز في servlet:
فقط اقرأ البيانات التي تم جمعها من مكتب الاستقبال. انظر إلى الكلمات الحساسة فيه ، كل مرشح.
شفرة:
DOPOST public void (طلب httpservletrequest ، استجابة httpservletresponse) يلقي servletexception ، ioException {string name = request.getParameter ("name") ؛ // name string text = request.getParameter ("textarea") ؛ pw.println ("name ="+name) ؛ // الإخراج مباشرة هنا فقط لمعرفة ما إذا كان يمكن تصفية هذه الكلمات الرئيسية. . pw.print ("المحتوى"+النص) ؛ }فلتر:
يمكن أن تنعكس وظيفة التصفية ، واعتراض المرشح بين العملاء الذين يصلون إلى الخادم.
نحن نعلم أن المرشحات يمكنها التحكم في الطلب والاستجابة ، حتى نتمكن من البدء بهذا.
طلب من العميل هو طلب ، لذلك نحتاج فقط إلى اعتراضه في منتصف الطريق وتعديل القيمة في الداخل لتحقيق التصفية. تبني نموذج تصميم العبوة ؛
رمز التصفية:
dofilter public void (طلب servletRequest ، استجابة servletResponse ، سلسلة filterchain) يلقي IoException ، servleTexception {httpservletrequest req = (httpservletrequest) ؛ myfilter myf = new myfilter (req) ؛ chain.dofilter (myf ، response) ؛ // caiyong طلب من الفصل الذي قمنا بتعزيزه ، تم نقله إلى servlet اللاحق للاستخدام}اكتب فئة MyFilter يدويًا لتعديل الوظائف التي نحتاج إلى استخدامها.
Class MyFilter يمتد httpservletrequestwrapper {// هذا يستخدم وضع wrapper myfilter (طلب httpservletrequest) {super (request) ؛ } Override // اكتب هذه الطريقة السلسلة العامة getParameter (اسم السلسلة) {سلسلة الكلمات = super.getParameter (name) ؛ System.out.println (Words) ؛ // filter sext list <string> list = wordUtils.getword () ؛ لـ (string ll: list) {words = words.replace (ll ، "*") ؛ // يتم استبدال الكلمات الحساسة بكلمات **} إرجاع ؛ }من أجل تسهيل الصيانة ، كتبنا خصيصًا أداة للحصول على المفردات الحساسة ، وهو أمر مناسب للمسؤول لإضافته.
WordUtils الفئة العامة {// استخدم القائمة الثابتة الخاصة وضع Singleton <String> = ArrayList جديد <string> () ؛ // يمكننا الوصول إلى الكلمات الحساسة المخزنة في قاعدة البيانات من هذا وتغليفها في قائمة لإرجاع {// يدويًا إضافة عدة قائمة ("Scam") ؛ list.add ("swear") ؛ list.add ("Silly") ؛ } القائمة الثابتة العامة <string> getWord () {قائمة الإرجاع ؛ } public static void addword (اسم السلسلة) {list.add (name) ؛ )هنا ، طالما تحتوي الكلمة ، ستصبح كل شيء *
الاداءات
ملخص: قوة المرشح هي أنه يمكنك تعديل كائنات الطلب والاستجابة معًا. ما هي الوظيفة التي تحتاج إلى الاتصال بها ، يمكننا تعديل الوظيفة في شكل نمط تصميم التغليف لتصبح التأثير الذي نريده. هذا يشبه إلى حد ما نمط تصميم الوكيل.
ما سبق هو المعرفة ذات الصلة لطريقة استخدام مرشح Javaee لتصفية الكلمات الحساسة المقدمة لك. آمل أن يكون ذلك مفيدًا لك. إذا كان لديك أي أسئلة ، فيرجى ترك رسالة لي وسوف يرد المحرر إليك في الوقت المناسب. شكرا جزيلا لدعمكم لموقع wulin.com!