2019独角兽企业重金招聘Python工程师标准>>>

package com.pdsu.filter;import java.io.IOException;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.HttpServletRequest;
import javax.servlet.http.HttpServletRequestWrapper;
import javax.servlet.http.HttpServletResponse;/*** 类说明:HTML特殊字符过滤器* * @author 作者: LiuJunGuang* @version 创建时间:2011-11-18 下午07:36:44*/
public class HTMLCharacterFilter implements Filter {public void init(FilterConfig filterConfig) throws ServletException {}public void doFilter(ServletRequest req, ServletResponse resp,FilterChain chain) throws IOException, ServletException {HttpServletRequest request = (HttpServletRequest) req;HttpServletResponse response = (HttpServletResponse) resp;chain.doFilter(new HTMLCharacterRequest(request), response);}public void destroy() {}
}// html特殊字符处理类
class HTMLCharacterRequest extends HttpServletRequestWrapper {public HTMLCharacterRequest(HttpServletRequest request) {super(request);}@Overridepublic String getParameter(String name) {return filter(super.getParameter(name));}@Overridepublic String[] getParameterValues(String name) {String[] values = super.getParameterValues(name);if (values == null || values.length == 0)return values;for (int i = 0; i < values.length; i++) {String str = values[i];values[i] = filter(str);}return values;}/*** 对特殊的html字符进行编码* * @param message* @return*/private String filter(String message) {if (message == null)return (null);char content[] = new char[message.length()];message.getChars(0, message.length(), content, 0);StringBuilder result = new StringBuilder(content.length + 50);for (int i = 0; i < content.length; i++) {switch (content[i]) {case '<':result.append("&lt;");break;case '>':result.append("&gt;");break;case '&':result.append("&amp;");break;case '"':result.append("&quot;");break;default:result.append(content[i]);}}return (result.toString());}
}

在web.xml中添加如下内容:

<!-- HTML特殊字符过滤器 --><filter><filter-name>HTMLFiter</filter-name><filter-class>com.pdsu.filter.HTMLCharacterFilter</filter-class></filter><filter-mapping><filter-name>HTMLFiter</filter-name><url-pattern>/*</url-pattern></filter-mapping>

转载于:https://my.oschina.net/java2010/blog/356462

HTML特殊字符过滤器相关推荐

  1. java 特殊字符过滤器_java处理url中的特殊字符

    java处理url中的特殊字符(如&,%...) URL(Uniform Resoure Locator,统一资源定位器)是Internet中对资源进行统一定位和管理的标志. 一个完整的URL ...

  2. Javaweb核心之servlet规范过滤器-----Filter

    2 Servlet规范中的过滤器-Filter 2.1 过滤器入门 2.1.1 过滤器概念及作用 过滤器--Filter,它是JavaWeb三大组件之一.另外两个是Servlet和Listener. ...

  3. mysql进阶:企业数据库安全防护方案

    0.引言 数据库安全是系统安全的重中之重,做好数据库安全防护及规范,是系统建设的基础. 今天我们来看看企业生产如何落地数据库安全防护机制. 1. 数据库安全问题 最好数据库安全,我们首先要了解能够威胁 ...

  4. PHP清洗过滤器Sanitize filters

    名称 id 说明 标记flags 字符串过滤器(string) 513 去除字符串中标签(不会进行上下文的推断,如果找不到>会将<后面的字符都去除),可以选择去除或者编码特殊字符. FIL ...

  5. Elasticsearch –使用模式替换过滤器和自定义分析器忽略查询中的特殊字符

    使用Elasticsearch 5,我们有一个字段,例如驾驶执照编号,其中的值可能包含特殊字符,并且由于用户在有限的验证范围内输入了值,因此值的大小写不一致. 例如,这些是假设值: CA-123-45 ...

  6. java 过滤器过滤特殊字符

    1.继承Filter的过滤类 package fly.cloud.bank.config.filter;import org.springframework.stereotype.Component; ...

  7. linux搜索过滤器,Unix和Linux管道(pipe)和过滤器(filter)使用介绍

    上一章Unix和Linux教程请查看:打印文件和发送邮件 在本章中我们将详细讨论Unix中的管道和过滤器.你可以将两个命令连接在一起,使一个程序的输出成为下一个程序的输入,以这种方式连接的两个或多个命 ...

  8. xss绕过字符过滤_XSS过滤器绕过总结

    XSS过滤器绕过总结 黑名单过滤器绕过 黑名单模式下的过滤器是最常见的.他们的目标是检测特定模式并防止恶意行为.这完全是"模式"的问题,它们越准确,就越可以拦截攻击. 1. 注入脚 ...

  9. bash--shell高级编程-特殊字符

    shell高级编程-特殊字符 特殊字符 用在脚本和其他地方的特殊字符 # 注释. 行首以#(#!是个例外)开头是注释. # This line is a comment. 注释也可以放在于本行命令的后 ...

最新文章

  1. 编写程序记录文件位置
  2. 重新安装nginx注意事项
  3. 每日一皮:这年头没点绝活连洗车都不行...
  4. MICRA OPENCART 自适应主题模板 ABC-0678-02
  5. Java网络编程及安全
  6. 第一节:框架前期准备篇之Log4Net日志详解
  7. Caffe2 的基本数据结构(Basics of Caffe2 - Workspaces, Operators, and Nets)[4]
  8. Redis学习-性能与优化(五)
  9. 初学jQuery之选择器
  10. 一键启动按钮线断了_【汽车用车】汽车一键启动功能不仅只用来打火,还可以这么操作?...
  11. php接收表单post数据由于数据字段太多导致丢失的案例
  12. 排队论的计算机模拟,8.2 排队论模型(二)-----计算机模拟.pdf
  13. 二叉树前中后序遍历及其本质
  14. 苹果iPad忘记了Apple ID密码该怎么办?(手机教程)
  15. WPS表格常用快捷键大全
  16. woocommerce 新增一个支付网关
  17. AcWing 黑暗城堡
  18. Python数据分析训练营——Python数据分析之Panads-1
  19. android 获取sn序列号
  20. Linux非交互式修改用户密码

热门文章

  1. 剑指offer_第3题_从尾到头打印链表
  2. LightGBM模型_相关资料整理
  3. 我们常称自己“码农”,这次已得到官方认定:“新生代农民工!
  4. 46 万奖金等你拿 | 微众银行第二届金融科技高校技术大赛报名中
  5. 中国 83 所高校上榜,清华位列第 15!QS 2021 年世界大学排名出炉
  6. 985 博士:导师是院士,直到毕业,我们都没单独说过一句话...
  7. locust压测工具:测试信息输出与分布式模式
  8. selenium提取数据之driver对象定位标签元素获取标签对象的方法
  9. 怎样才可以过大学英语六级啊,有没有好点的方法?【转载】
  10. VM创建虚拟机及安装Centos7