Javaweb-filter Study (four) Filter examples of sensitive words

Source: Internet
Author: User

Filter to achieve the message board sensitive word filtering ...

The idea is very simple, our sensitive word here is directly put in first, the actual project, certainly exists in the Database. In filter filters, We first get the user to submit the message, if there is a sensitive word, we will use the * number to Replace.

Code Demo: index.jsp:
<%@ page language="java" import="java.util.*" pageencoding= "UTF-8"%><% @taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%><! DOCTYPE HTML public "-//w3c//dtd HTML 4.01 transitional//en" ><html>  <head>     <title>Filter application example---sensitive Word filtering</title>  </head>  <body>     <h2>Filter application example---sensitive Word filtering</H2>     <form Action="<c:url value= '/noteservlet '/>" Method= "post">User Name:<input type="text" name="name" /><br/><br/>        <fieldset>            <legend>Message boards</legend>            <textarea name="note" rows="ten" cols=" ></textarea>        </fieldset>        <input type="submit" value="message" />          </form>  </body></html>
Wordsutil.java: a collection of sensitive words:
 packagecn.hncu.pubs;Importjava.util.ArrayList;Importjava.util.List; public  class wordsutil {    Private Staticlist<string> list =NewArraylist<string> ();Static{//you should import the sensitive words from the database, i'll use the words here to simulateList.add ("curse."); List.add ("sb"); } public StaticList<string>Getwords(){returnList } public Static void ReBuild(){//store The contents of the list in a database---stored once per period}}
Noteservlet.java
Package CN. Hncu. servlet;Import Java. IO. IOException;Import Java. IO. PrintWriter;Import Javax. servlet. Servletexception;Import Javax. servlet. HTTP. HttpServlet;Import Javax. servlet. HTTP. HttpServletRequest;Import Javax. servlet. HTTP. HttpServletResponse;public class Noteservlet extends HttpServlet {public void doget (httpservletrequest request, httpservletresponse respon Se) throws servletexception, IOException {response. setContentType("text/html;charset=utf-8");PrintWriter out= Response. Getwriter();         out. println("get Message Not supported");         out. Close();} public void DoPost (httpservletrequest request, httpservletresponse Response) throws servletexception, Ioex Ception {response. setContentType("text/html;charset=utf-8");PrintWriter out= Response. Getwriter();         out. println("<! DOCTYPE HTML public \ "-//w3c//dtd HTML 4.01 transitional//en\" > ");         out. println("<HTML>");         out. println(");         out. println("<BODY>");String name = Request. GetParameter("name");If (name==null | | | name. Trim(). Length() <=0){ out. println("name cannot be empty!!!");}else{String words = Request. GetParameter("note");             out. println("<br/>"+name+"the Message is:<br/>"+ Words);} out. println("</BODY>");         out. println("</HTML>");         out. Flush();         out. Close();}}
Wordfilter.java: Sensitive Word filtering
 packagecn.hncu.filter;Importjava.io.IOException;Importjava.util.List;Importjavax.servlet.Filter;Importjavax.servlet.FilterChain;Importjavax.servlet.FilterConfig;Importjavax.servlet.ServletException;Importjavax.servlet.ServletRequest;Importjavax.servlet.ServletResponse;Importjavax.servlet.http.HttpServletRequest;Importjavax.servlet.http.HttpServletRequestWrapper;Importcn.hncu.pubs.WordsUtil; public  class wordfilter implements Filter{    @Override     public void Init(filterconfig Filterconfig)throwsServletexception {}@Override     public void DoFilter(servletrequest request, servletresponse response, filterchain Chain)throwsioexception, servletexception {request.setcharacterencoding ("utf-8");//in the filter with decorative mode to enhance the function of the original request        //---getparamter () method for intercepting background callsMyrequest req =NewMyrequest ((httpservletrequest) request); Chain.dofilter (req, response);//release}@Override     public void Destroy() {}}class Myrequest extends httpservletrequestwrapper{ public myrequest(httpservletrequest Request) {Super(request); }@Override     publicStringGetParameter(String Name) {String str =Super. GetParameter (name); list<string> list = Wordsutil.getwords (); for(String Word:list) {str = Str.replaceall (word,"*"); }returnStr }}
Configure Web. XML
<?xml version= "1.0" encoding= "UTF-8"?><web-app version="3.0"xmlns="http://java.sun.com/xml/ns/javaee"  xmlns:xsi= "http://www.w3.org/2001/XMLSchema-instance"xsi:schemalocation=" Http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd ">                 <display-name></display-name>  <filter>    <filter-name>Wordfilter</filter-name>    <filter-class>Cn.hncu.filter.WordFilter</filter-class>  </filter>  <filter-mapping>    <filter-name>Wordfilter</filter-name>    <url-pattern>/*</url-pattern>  </filter-mapping>  <servlet>    <servlet-name>Noteservlet</servlet-name>    <servlet-class>Cn.hncu.servlet.NoteServlet</servlet-class>  </servlet>  <servlet-mapping>    <servlet-name>Noteservlet</servlet-name>    <url-pattern>/noteservlet</url-pattern>  </servlet-mapping>      <welcome-file-list>    <welcome-file>index.jsp</welcome-file>  </welcome-file-list></Web-app>
Demo Result:

The effect after filtering:

Full Project Link:

Https://github.com/chenhaoxiang/Java/tree/master/myWordsFilterWeb
Mywordsfilterweb.zip

Reprint please attach the original blog link:

http://blog.csdn.net/qq_26525215

Javaweb-filter Study (four) Filter examples of sensitive words

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.