Algumas palavras não podem ser publicadas quando conversamos ou deixamos mensagens. Podemos usar filtros para implementar esta função.
Simplesmente usamos filtros para implementar essa função de filtro, e alguns lugares não são escritos na íntegra
Código da recepção:
<Body> <form action = "<c: url value = '/wordservlet' //>" method = "post"> nome: <input type = "text" name = "name"/> <br/> conteúdo da mensagem: <textário linhas = "10" cols = "10" name = "textarea"> </textarea> <br/>
Código em Servlet:
Basta ler os dados coletados na recepção. Veja as palavras sensíveis nele, todo filtro.
Código:
public void DoPost (solicitação httpServletRequest, httpServletResponse resposta) lança servletexception, ioexception {string name = request.getParameter ("name"); // name string text.getParameter ("textarea"; pw.println ("name ="+nome); // Saída diretamente aqui apenas para ver se essas palavras -chave podem ser filtradas. . pw.print ("content"+text); }Filtro:
A função da filtragem pode ser refletida e o filtro intercepta entre os clientes que acessam o servidor.
Sabemos que os filtros podem controlar a solicitação e a resposta, para que possamos começar com isso.
A solicitação do cliente é uma solicitação, portanto, precisamos interceptá -la até a metade e modificar o valor interno para obter a filtragem. Adote o modelo de design de embalagem;
Código de filtro:
Public void Dofilter (Solicitação de servletRequest, resposta servletResponse, cadeia de filtro) lança ioexception, servletexception {httpServletRequest req = (httpServleTrequest); MyFilter myf = new MyFilter (req); Chain.Dofilter (myf, resposta); // Caiyong Solicitação da aula que fortalecemos, passe para o servlet subsequente para uso}Escreva uma classe MyFilter manualmente para modificar as funções que precisamos usar.
classe MyFilter estende httpServletRequestWrapper {// Isso está usando o modo de wrapper public myFilter (httpServletRequest request) {super (request); } @Override // Escreva este método public string getParameter (nome da string) {string words = super.getParameter (nome); System.out.println (palavras); // Lista de texto de filtro <String> list = wordutils.getword (); for (string ll: list) {words = words.replace (ll, "*"); // palavras sensíveis são substituídas por **} retornar palavras; }Para facilitar a manutenção, escrevemos especialmente uma ferramenta para obter vocabulário sensível, o que é conveniente para o administrador adicionar.
public class Wordutils {// Use Singleton Modo Lista estática privada <String> LIST = new ArrayList <String> (); // Podemos acessar palavras sensíveis armazenadas no banco de dados deste e encapsulá -las na lista para retornar estática {// adicione manualmente vários list.add ("Scam"); List.add ("Swear"); list.add ("bobo"); } Lista estática pública <String> getword () {Lista de return; } public static void addword (nome da string) {list.add (nome); } public static void sava () {// Aqui você pode armazenar os dados na lista no banco de dados para facilitar a manutenção e, é claro, você também pode escrever adições, exclusões, modificações e pesquisas}Aqui, desde que a palavra conte, tudo se tornará *
renderizações;
Resumo: O poder do filtro é que você pode modificar os objetos de solicitação e resposta juntos. Que função você precisa chamar, podemos modificar a função na forma de um padrão de design de embalagem para se tornar o efeito que queremos. Isso é um pouco semelhante ao padrão de design de proxy.
O exposto acima é o conhecimento relevante do método de usar o filtro Javaee para filtrar palavras sensíveis introduzidas a você. Espero que seja útil para você. Se você tiver alguma dúvida, deixe -me uma mensagem e o editor responderá a você a tempo. Muito obrigado pelo seu apoio ao site wulin.com!