Beberapa kata tidak diizinkan dipublikasikan saat kami mengobrol atau meninggalkan pesan. Kami dapat menggunakan filter untuk mengimplementasikan fungsi ini.
Kami hanya menggunakan filter untuk mengimplementasikan fungsi filter ini, dan beberapa tempat tidak ditulis secara lengkap
Kode meja depan:
<body> <Form Action = "<c: url value = '/worderver' //>" method = "post"> nama: <input type = "text" name = "name"/> <br/> konten pesan: <textArea rows = "10" cols = "10" name = "TextArea"> </TextArea> <br/> <input Type = "name =" KURUNT "> </TextArea> <br/> <input Type =" NAME = "/KUMPUIT"> </TextArea> <br/> <input type = "
Kode di Servlet:
Bacalah data yang dikumpulkan dari meja depan. Lihatlah kata -kata sensitif di dalamnya, semua filter.
Kode:
public void dopost (permintaan httpservletRequest, respons httpservletResponse) melempar servletException, ioException {string name = request.getParameter ("name"); // name string text = request.getParameter ("textarea"); // browse konten pworwriter pw = response. pw.println ("name ="+name); // output langsung di sini hanya untuk melihat apakah kata kunci tersebut dapat disaring. . pw.print ("konten"+teks); }Menyaring:
Fungsi penyaringan dapat tercermin, dan filter mencegat antara klien yang mengakses server.
Kami tahu bahwa filter dapat mengontrol permintaan dan respons, sehingga kami dapat memulai dengan ini.
Permintaan dari klien adalah permintaan, jadi kita hanya perlu mencegatnya di tengah jalan dan memodifikasi nilai di dalamnya untuk mencapai penyaringan. Mengadopsi model desain kemasan;
Kode Filter:
public void dofilter (permintaan servletRequest, respons servletResponse, rantai filterchain) melempar ioException, servletException {httpservletRequest req = (permintaan httpservletRequest); Myfilter myf = myfilter baru (req); chain.dofilter (myf, respons); // caiyong permintaan kelas yang kami perkuat, berikan ke servlet berikutnya untuk digunakan}Tulis kelas MyFilter secara manual untuk memodifikasi fungsi yang perlu kita gunakan.
kelas myfilter memperluas httpservletRequestWrapper {// Ini menggunakan mode wrapper myfilter publik (permintaan httpservletRequest) {super (request); } @Override // Tulis metode ini string publik getParameter (nama string) {string words = super.getParameter (name); System.out.println (kata -kata); // Filter Daftar Teks <String> Daftar = WordUtils.getWord (); untuk (string ll: list) {words = words.replace (ll, "*"); // kata -kata sensitif diganti dengan **} return word; }Untuk memfasilitasi pemeliharaan, kami secara khusus menulis alat untuk mendapatkan kosa kata yang sensitif, yang lebih mudah bagi administrator untuk ditambahkan.
Kelas publik WordUtils {// Gunakan Singleton Mode Private Static List <String> Daftar = ArrayList baru <string> (); // kita dapat mengakses kata -kata sensitif yang disimpan dalam database dari ini dan merangkumnya ke dalam daftar untuk mengembalikan {// secara manual menambahkan beberapa list.add ("scam"); List.add ("bersumpah"); list.add ("konyol"); } Daftar Statis Public <string> getWord () {daftar pengembalian; } public static void addWord (nama string) {list.add (name); } public static void sava () {// Di sini Anda dapat menyimpan data dalam daftar dalam database untuk pemeliharaan yang mudah, dan tentu saja Anda juga dapat menulis penambahan, penghapusan, modifikasi, dan pencarian}Di sini, selama kata itu berisi, semuanya akan menjadi *
rendering;
Ringkasan: Kekuatan filter adalah Anda dapat memodifikasi objek permintaan dan respons bersama -sama. Fungsi apa yang perlu Anda panggil, kami dapat memodifikasi fungsi dalam bentuk pola desain pengemasan untuk menjadi efek yang kami inginkan. Ini agak mirip dengan pola desain proxy.
Di atas adalah pengetahuan yang relevan dari metode menggunakan filter Javaee untuk memfilter kata -kata sensitif yang diperkenalkan kepada Anda. Saya harap ini akan membantu Anda. Jika Anda memiliki pertanyaan, silakan tinggalkan saya pesan dan editor akan membalas Anda tepat waktu. Terima kasih banyak atas dukungan Anda ke situs web Wulin.com!