No se permite que algunas palabras se publiquen cuando chatea o dejamos mensajes. Podemos usar filtros para implementar esta función.
Simplemente usamos filtros para implementar esta función de filtro, y algunos lugares no están escritos en su totalidad
Código de recepción:
<Body> <Form Action = "<c: url value = '/wordservlet' //>" método = "post"> name: <input type = "text" name = "name"/> <br/> contenido de mensaje: <textarea rows = "10" cols = "10" name = "textArea"> </textArea> <br/> <input type = "Subting" Value = "Subsit"/<<</> </> </formul
Código en Servlet:
Simplemente lea los datos recopilados de la recepción. Mira las palabras sensibles en él, todo filtra.
Código:
Public void dopost (httpservletRequest solicitud, httpservletResponse respuesta) lanza ServletException, ioException {String name = request.getParameter ("name");/name string text = requit.getParameter ("textAea"); // BROWSE PRITWRITER PW = Response.getwriter (); pw.println ("name ="+name); // Salida directamente aquí solo para ver si esas palabras clave se pueden filtrar. . pw.print ("contenido"+texto); }Filtrar:
Se puede reflejar la función del filtrado e intercepta el filtro entre los clientes que acceden al servidor.
Sabemos que los filtros pueden controlar la solicitud y la respuesta, por lo que podemos comenzar con esto.
La solicitud del cliente es una solicitud, por lo que solo necesitamos interceptarla a mitad de camino y modificar el valor dentro para lograr el filtrado. Adoptar el modelo de diseño de embalaje;
Código de filtro:
Public void dofilter (solicitud de servletRequest, respuesta de servicio de servicio, cadena de filtro de filtro) lanza ioexception, servletException {httpservletRequest req = (httpservletRequest) solicitud; MyFilter myf = new myFilter (req); Chain.dofilter (myf, respuesta); // solicitud de la clase que fortalecemos, pasarlo al servlet posterior para su uso}Escriba una clase MyFilter manualmente para modificar las funciones que necesitamos usar.
clase myFilter extiende httpservletRequestWrapper {// Esto está utilizando el modo contenedor public myFilter (httpservletrequest solicitud) {super (request); } @Override // Escribir este método Cadena pública getParameter (nombre de cadena) {String Words = Super.getParameter (nombre); System.out.println (palabras); // Filtro de texto Lista <String> list = wordutils.getword (); for (string ll: list) {words = words.replace (ll, "*"); // Las palabras sensibles se reemplazan por **} Words de retorno; }Para facilitar el mantenimiento, hemos escrito especialmente una herramienta para obtener vocabulario sensible, que es conveniente para que el administrador agregue.
Public Class WordUtils {// Use el modo Singleton Lista estática privada <String> list = new ArrayList <String> (); // Podemos acceder a palabras confidenciales almacenadas en la base de datos de esto y encapsularlas en la lista para devolver Static {// agregar manualmente varias listas.Add ("Scam"); List.add ("jurar"); list.add ("tonto"); } Lista estática pública <String> getWord () {return List; } public static void addword (nombre de cadena) {list.add (nombre); } public static void sava () {// Aquí puede almacenar los datos en la lista en la base de datos para facilitar el mantenimiento y, por supuesto, también puede escribir adiciones, deleciones, modificaciones y búsquedas}Aquí, mientras la palabra contenga, todo se convertirá *
representaciones;
Resumen: La potencia del filtro es que puede modificar los objetos de solicitud y respuesta. A qué función necesita llamar, podemos modificar la función en forma de un patrón de diseño de empaque para convertirse en el efecto que queremos. Esto es un poco similar al patrón de diseño proxy.
Lo anterior es el conocimiento relevante del método de usar el filtro Javaee para filtrar palabras confidenciales que se le presentan. Espero que te sea útil. Si tiene alguna pregunta, déjame un mensaje y el editor le responderá a tiempo. ¡Muchas gracias por su apoyo al sitio web de Wulin.com!