敏感词过滤---一些关键代码自我练习
index.jsp
<body>
<form action="<c:url value='/NoteServlet'/>" method="post">
姓名:<input type="text" name="name"/><br/>
<textarea rows="20" cols="10" name="note">
留言信息:<br/>
</textarea><br/>
<input type="submit"/>
</form>
NoteServlet.java
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
request.setCharacterEncoding("utf-8");
String name=request.getParameter("name");
String note=request.getParameter("note");
response.setContentType("text/html charset=utf-8");
response.getWriter().println(name+"说:"+note) }
NoteFilter.java
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
HttpServletRequest req=(HttpServletRequest) request;
//给request做包装;
MyRequset request2=new MyRequset(req);
chain.doFilter(request2, response);
}
class MyRequset extends HttpServletRequestWrapper{
public MyRequset(HttpServletRequest request) {
super(request);
}
@Override
public String getParameter(String name) {
for(String word:words){
val=val.replaceAll(word, "***");//这里要记得去接;string每次都是新值
}
index.jsp
<body>
<form action="<c:url value='/NoteServlet'/>" method="post">
姓名:<input type="text" name="name"/><br/>
<textarea rows="20" cols="10" name="note">
留言信息:<br/>
</textarea><br/>
<input type="submit"/>
</form>
NoteServlet.java
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
request.setCharacterEncoding("utf-8");
String name=request.getParameter("name");
String note=request.getParameter("note");
response.setContentType("text/html charset=utf-8");
response.getWriter().println(name+"说:"+note) }
NoteFilter.java
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
HttpServletRequest req=(HttpServletRequest) request;
//给request做包装;
MyRequset request2=new MyRequset(req);
chain.doFilter(request2, response);
}
class MyRequset extends HttpServletRequestWrapper{
public MyRequset(HttpServletRequest request) {
super(request);
}
@Override
public String getParameter(String name) {
String val=super.getParameter(name);
//WordUtil写的敏感词库;这个词库应该是从数据库读取;项目启动时读取到内存中
List< String> words=WordUtil.getWords();for(String word:words){
val=val.replaceAll(word, "***");//这里要记得去接;string每次都是新值
}
return val; } }