全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
过滤非法文字在用户交互过程中,如果在论坛中出现影响网站形象的文字,可能会降低网站信誉,也有的论坛禁止使用某些文字,比如在用户反馈意见时禁止出现一些不文明的字词。实现过程:1 创建页面index.jsp,内容随便输入,为测试使用2 编写MyOutputStream类,它继承ServletOutPutStream类被重写write()方法,使用自己的字节数组输出流实现了数据输出。关键代码如下:import java.io.ByteArrayOutputStream;import java.io.IOException;import javax.servlet.ServletOutputStream;public class MyOutputStream extends ServletOutputStream ByteArrayOutputStream stream;/创建字节数组输出流public MyOutputStream(ByteArrayOutputStream stream)this.stream=stream;/在构造方法初始化输出流Overridepublic void write(int arg0) throws IOException / TODO Auto-generated method stubstream.write(arg0);/使用本类的输出流代替父类的输出方法3 编写ResponseWrapper类,他继承自HttpServletResponseWrapper类,并重写getOutputStream()方法和getWriter()方法返回本类定义的输出流,自定义的toByteArray()方法可以获取这些输出流的数据。关键代码如下:import java.io.ByteArrayOutputStream;import java.io.IOException;import java.io.PrintWriter;import javax.servlet.ServletOutputStream;import javax.servlet.http.HttpServletResponse;import javax.servlet.http.HttpServletResponseWrapper;import com.my.MyOutputStream;public class ResponseWrapper extends HttpServletResponseWrapper private MyOutputStream stream;/声明自定义输出流private ByteArrayOutputStream byteStream;/声明字节输出流private PrintWriter pw;/声明打印输出流public ResponseWrapper(HttpServletResponse response) super(response);/ TODO Auto-generated constructor stubthis.byteStream=new ByteArrayOutputStream();this.stream=new MyOutputStream(this.byteStream);this.pw=new PrintWriter(this.byteStream);Overridepublic ServletOutputStream getOutputStream() throws IOException / TODO Auto-generated method stubreturn this.stream;Overridepublic PrintWriter getWriter() throws IOException / TODO Auto-generated method stubreturn this.pw;public byte toByteArray()return this.byteStream.toByteArray();4 创建LetterFilter过滤器,他是本类的核心类,实现了Filter接口,在doFilter()方法的实现代码中创建自己的应答对象,执行过滤器之后的操作后获取应答对象输出流的内容,然后代替该内容中的非法文字,再通过原有应答对象输出应答数据到浏览器。关键代码如下:import java.io.IOException;import java.io.PrintWriter;import javax.servlet.Filter;import javax.servlet.FilterChain;import javax.servlet.FilterConfig;import javax.servlet.ServletException;import javax.servlet.ServletRequest;import javax.servlet.ServletResponse;import javax.servlet.http.HttpServletResponse;import com.wrapper.ResponseWrapper;/* * Servlet Filter implementation class LetterFilter */public class LetterFilter implements Filter /* * Default constructor. */ public LetterFilter() / TODO Auto-generated constructor stub /* * see Filter#destroy() */public void destroy() / TODO Auto-generated method stub/* * see Filter#doFilter(ServletRequest, ServletResponse, FilterChain) */public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException / TODO Auto-generated method stub/ place your code here/ pass the request along the filter chainHttpServletResponse httpRes=(HttpServletResponse) response;ResponseWrapper responseWrapper=new ResponseWrapper(httpRes);chain.doFilter(request, responseWrapper);/继续执行过滤之后的操作responseWrapper.getWriter().flush();byte bytes=responseWrapper.toByteArray();/获取应答对象的输出数据String content=new String(bytes);/把数据转化为字符串content=content.replace(d, a);/进行替换/System.out.println(content);PrintWriter out=httpRes.getWriter();/获取应答对象的输出流out.print(content);/输出替换后的数据out.close();/* * see Filter#init(FilterConfig) */public void init(FilterConfig fConfig) throws S
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 工程人工合同
- 2025年南通公基考试题库及答案
- 临时的劳务合同
- 双重居间合同
- 2025年韩语真题口语题库及答案
- 2025食品委托加工合同样本
- 关于某某个人离婚协议中特殊财产分割条款
- 技术共享框架协议
- 2025上海分析测试中心行政管理岗招聘1人考试参考题库及答案解析
- 2025民间房产抵押借款标准合同范本
- 2025上海市大数据中心招聘15人考试参考试题及答案解析
- 物业市星级评优汇报
- 创新创业大赛解读
- 2025至2030中国企业资源计划(ERP)软件行业项目调研及市场前景预测评估报告
- T/CRRA 2301-2024国有企业废旧物资交易平台服务流程管理规范
- Ⅲ类射线装置辐射工作人员试题库及考核规则(2025年)
- mTOR经HIF-1α调控脑胶质瘤血管生成拟态的分子机制探秘
- 英文版合同委托付款协议
- 2025贵州贵阳市公安局面向社会公开招聘警务辅助100人笔试备考题库及答案解析
- 旅游景区游客服务规范手册
- 档案法培训课件
评论
0/150
提交评论