Некоторые слова не разрешаются публиковать, когда мы общаемся или оставляем сообщения. Мы можем использовать фильтры для реализации этой функции.
Мы просто используем фильтры для реализации этой функции фильтра, и некоторые места не записаны полностью
Код стойки регистрации:
<body> <form action = "<c: url value = '/wordservlet' //>" method = "post"> name: <input type = "text" name = "name"/> <br/> Содержание сообщения: <textarea rows = "10" cols = "10" name = "textarea"> </textarea> <br/> <inpute = "value =" value = "/> </> </textarea> <br/> <input =" value = "/> </> <//textarea> <br/> <input =" value = "/> </> </textarea> <br/> <input =" "/> </> </textarea> <br/> <Input =" "
Код в сервлете:
Просто прочитайте данные, собранные с стойки регистрации. Посмотрите на чувствительные слова в нем, все фильтр.
Код:
public void Dopost (httpservletRequest, httpservletresponse response) Throws ServletException, ioException {string name = request.getParameter ("name"); // name string text = request.getParameter ("textarea"); // Обзор контент printwriter prw = response.getparameter ("textarea"); // ressse content printwritewriter pvw = response.getpriter (); pw.println ("name ="+name); // Вывод непосредственно здесь, чтобы увидеть, можно ли отфильтровать эти ключевые слова. Полем pw.print ("Контент"+Текст); }Фильтр:
Функция фильтрации может быть отражена, а фильтр перехватывает между клиентами, получающими доступ к серверу.
Мы знаем, что фильтры могут управлять запросом и ответом, поэтому мы можем начать с этого.
Запрос от клиента является запросом, поэтому нам нужно только перехватить его на полпути и изменить значение внутри для достижения фильтрации. Принять модель дизайна упаковки;
Код фильтра:
Public void DoFilter (запрос ServletRequest, ответ ServletResponse, FilterChain Chain) бросает ioException, servletexception {httpservletrequest req = (httpservletrequest); Myfilter myf = new myfilter (req); chain.dofilter (myf, response); // caiyong Запрос класса, который мы усилили, передайте его в последующий сервлет для использования}Напишите класс MyFilter вручную, чтобы изменить функции, которые нам нужно использовать.
Класс MyFilter Extens HttpservletRequestWrapper {// Это использует режим обертки Public MyFilter (httpservletRequest) {super (запрос); } @Override // написать этот метод публичной строки getParameter (string name) {String words = super.getParameter (name); System.out.println (слова); // фильтр текстовый список <string> list = wordUtils.getWord (); for (string ll: list) {words = words.replace (ll, "*"); // чувствительные слова заменяются **} возвращаемыми словами; }Чтобы облегчить техническое обслуживание, мы специально написали инструмент для получения чувствительного словаря, который удобен для добавления администратора.
открытый класс WordUtils {// Использование режима Singleton Private Static List <string> list = new ArrayList <string> (); // Мы можем получить доступ к конфиденциальным словам, хранящимся в базе данных из этого, и инкапсулируют их в список, чтобы вернуть static {// вручную добавить несколько list.add («афера»); List.add ("ругаться"); list.add ("глупо"); } public Static List <string> getWord () {return List; } public static void AddWord (string name) {list.add (name); } public static void sava () {// Здесь вы можете сохранить данные в списке в базе данных для удобного обслуживания, и, конечно, вы также можете написать дополнения, удаления, изменения и поиски}}Здесь, пока слово содержит, все станет *
визуализации;
Резюме: Мощность фильтра состоит в том, что вы можете изменить объекты запроса и ответа вместе. Какую функцию вам нужно позвонить, мы можем изменить функцию в форме шаблона конструкции упаковки, чтобы стать тем, что мы хотим. Это немного похоже на шаблон дизайна прокси.
Выше приведено соответствующее знание метода использования фильтра Javaee для фильтрации конфиденциальных слов, введенных вам. Я надеюсь, что это будет полезно для вас. Если у вас есть какие -либо вопросы, пожалуйста, оставьте мне сообщение, и редактор ответит вам вовремя. Большое спасибо за вашу поддержку сайту wulin.com!