用过滤器对jsp页面中的敏感字段进行过滤

WordWriter.java
package myservlets;

  
  
  
  
  1. import java.io.IOException;  
  2. import java.io.PrintWriter;  
  3.  
  4. import javax.servlet.Filter;  
  5. import javax.servlet.FilterChain;  
  6. import javax.servlet.FilterConfig;  
  7. import javax.servlet.ServletException;  
  8. import javax.servlet.ServletRequest;  
  9. import javax.servlet.ServletResponse;  
  10. import javax.servlet.http.HttpServletResponse;  
  11.  
  12. public class WordWriter implements Filter {  
  13.  
  14. protected FilterConfig filterConfig;  
  15. public void destroy() {  
  16. this.filterConfig=null;  
  17.  
  18. }  
  19.  
  20. public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {  
  21.  
  22. request.setCharacterEncoding("GB2312");  
  23. response.setContentType("text/html;charset=GB2312");  
  24. HttpServletResponse res=(HttpServletResponse) response;  
  25. PrintWriter out=response.getWriter();  
  26. CharResponseWrapper wrapper=new CharResponseWrapper(res);  
  27. chain.doFilter(request, wrapper);  
  28. String resStr=wrapper.toString();  
  29. String newStr="";  
  30. if(resStr.indexOf("她妈的")>0){  
  31. newStr=resStr.replaceAll("她妈的""**");  
  32. }  
  33. out.println(newStr);  
  34. }  
  35.  
  36. public void init(FilterConfig config) throws ServletException {  
  37. this.filterConfig=config;  
  38.  
  39. }  
  40.  
  41. public void setFilterConfig(final FilterConfig filterConfig) {  
  42. this.filterConfig = filterConfig;  
  43. }  
  44.  


CharResponseWrapper.java
package myservlets;

  
  
  
  
  1. import java.io.CharArrayWriter;  
  2. import java.io.PrintWriter;  
  3.  
  4. import javax.servlet.http.HttpServletResponse;  
  5. import javax.servlet.http.HttpServletResponseWrapper;  
  6.  
  7. public class CharResponseWrapper extends HttpServletResponseWrapper {  
  8. private CharArrayWriter output;  
  9.  
  10. public String toString() {  
  11. return output.toString();  
  12. }  
  13.  
  14. public CharResponseWrapper(HttpServletResponse response) {  
  15. super(response);  
  16. output = new CharArrayWriter();  
  17. }  
  18.  
  19. public PrintWriter getWriter() {  
  20. return new PrintWriter(output);  
  21. }  

MyJsp.jsp

  
  
  
  
  1. <%@ page language="java" pageEncoding="gb2312"%>  
  2.  
  3. <%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean" %>  
  4. <%@ taglib uri="http://struts.apache.org/tags-html" prefix="html" %>  
  5. <%@ taglib uri="http://struts.apache.org/tags-logic" prefix="logic" %>  
  6. <%@ taglib uri="http://struts.apache.org/tags-tiles" prefix="tiles" %>  
  7.  
  8. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">  
  9. <html:html lang="true">  
  10. <head>  
  11. <html:base />  
  12. <title>MyJsp.jsp</title>  
  13. </head>  
  14.  
  15. <body>  
  16. This a struts page. <br>  
  17. 真她妈的!垃圾  
  18. </body>  
  19. </html:html>  

web.xml

  
  
  
  
  1. <filter>  
  2.  
  3. <filter-name>Word Filter</filter-name>  
  4.  
  5. <filter-class>myservlets.WordWriter</filter-class>  
  6.  
  7. </filter>  
  8.  
  9. <filter-mapping>  
  10.  
  11. <filter-name>Word Filter</filter-name>  
  12.  
  13. <url-pattern>/*</url-pattern>  
  14.  
  15. </filter-mapping> 

效果:

This a struts page.
真**!垃圾

你可能感兴趣的:(过滤器,jsp页面,敏感字段,进行过滤)