Einige Wörter dürfen nicht veröffentlicht werden, wenn wir chatten oder Nachrichten hinterlassen. Wir können Filter verwenden, um diese Funktion zu implementieren.
Wir verwenden einfach Filter, um diese Filterfunktion zu implementieren, und einige Orte sind nicht vollständig geschrieben
Rezeption Code:
<body> <form action = "<c: url value = '/WordServlet' //>" method = "post"> name: <input type = "text" name = "name"/> <br/> Nachrichteninhalt: <textarea rows = "10" cols = "10" name = "textarea"
Code im Servlet:
Lesen Sie einfach die von der Rezeption gesammelten Daten vor. Schauen Sie sich die sensiblen Wörter darin an, alle Filter.
Code:
public void dopost (httpServletRequest -Anfrage, httpServletResponse -Antwort) löst ServletException aus, ioException {String name = request.getParameter ("Name"); // Name String text = Anforderung.GetParameter ("textarea"); // Inhalts -Prinzipriter pw = reaktions.s -Antwort (); pw.println ("name ="+name); // Ausgabe direkt hier, nur um festzustellen, ob diese Schlüsselwörter gefiltert werden können. . pw.print ("content"+text); }Filter:
Die Funktion der Filterung kann reflektiert und die Filterabschnitte zwischen Clients auf den Server zugreifen.
Wir wissen, dass Filter die Anfrage und Antwort steuern können, damit wir damit beginnen können.
Die Anfrage vom Client ist eine Anfrage. Daher müssen wir sie nur zur Hälfte abfangen und den Wert im Inneren ändern, um die Filterung zu erreichen. Das Verpackungsdesignmodell übernehmen;
Filtercode:
public void dofilter (servletRequest request, servletResponse response, filterchain kette) löst ioException, servletException {httpServletRequest req = (httpServletRequest) an; Myfilter myf = neuer myfilter (req); chain.dofilter (myf, Antwort); // Caiyong Anfrage der von uns gestärkten Klasse, geben Sie sie zur Verwendung an den nachfolgenden Servlet weiter}Schreiben Sie eine MyFilter -Klasse manuell, um die Funktionen zu ändern, die wir verwenden müssen.
Class Myfilter erweitert HttpServletRequestWrapper {// Dies verwendet den Wraper -Modus Public MyFilter (httpServletRequest -Anforderung) {Super (Request); } @Override // Schreiben Sie diese Methode public String getParameter (String -Name) {String Words = Super.getParameter (Name); System.out.println (Wörter); // Textliste filtern <string> list = WordUtils.getword (); für (String LL: List) {Words = Words.replace (ll, "*"); // Sensible Wörter werden durch **} zurücksetzt Wörter; }Um die Wartung zu erleichtern, haben wir speziell ein Tool zum Erhalten eines empfindlichen Wortschatzes geschrieben, das für den Administrator bequem ist.
öffentliche Klasse WordUtils {// Verwenden Sie den Singleton -Modus private statische Liste <string> list = new ArrayList <string> (); // Wir können auf sensible Wörter zugreifen, die in der Datenbank gespeichert sind, und in die Liste in List integriert, um static {// manuell mehrere Liste hinzuzufügen.Add ("Scam"); List.add ("schwören"); list.add ("albern"); } public statische Liste <string> getWord () {returnlist; } public static void Addwort (String -Name) {list.add (Name); } public static void Sava () {// Hier können Sie die Daten in der Liste in der Datenbank speichern, um eine einfache Wartung zu erhalten, und natürlich können Sie auch Ergänzungen, Löschungen, Modifikationen und Suchanfragen schreiben}Hier, solange das Wort enthält, wird alles * *
Renderings;
Zusammenfassung: Die Leistung des Filters besteht darin, dass Sie die Anforderungs- und Antwortobjekte zusammen ändern können. Welche Funktion Sie aufrufen müssen? Wir können die Funktion in Form eines Verpackungsdesignmusters so ändern, dass wir zu dem gewünschten Effekt werden. Dies ist dem Proxy -Designmuster ein bisschen ähnlich.
Das obige ist die relevante Kenntnis der Methode zur Verwendung von Javaee -Filter, um sensible Wörter zu filtern, die Ihnen eingeführt wurden. Ich hoffe, es wird Ihnen hilfreich sein. Wenn Sie Fragen haben, hinterlassen Sie mir bitte eine Nachricht und der Editor wird Ihnen rechtzeitig antworten. Vielen Dank für Ihre Unterstützung auf der Wulin.com -Website!