1.web.xml代码

  1. <filter>
  2. <filter-name>HtmlFilter</filter-name>
  3. <filter-class>de.bvb.web.filter.HtmlFilter</filter-class>
  4. </filter>
  5. <filter-mapping>
  6. <filter-name>HtmlFilter</filter-name>
  7. <url-pattern>/*</url-pattern>
  8. <dispatcher>REQUEST</dispatcher>
  9. <dispatcher>FORWARD</dispatcher>
  10. </filter-mapping>

2.de.bvb.web.filter.HtmlFilter.java 代码

  1. package de.bvb.web.filter;
  2.  
  3. import java.io.IOException;
  4.  
  5. import javax.servlet.Filter;
  6. import javax.servlet.FilterChain;
  7. import javax.servlet.FilterConfig;
  8. import javax.servlet.ServletException;
  9. import javax.servlet.ServletRequest;
  10. import javax.servlet.ServletResponse;
  11. import javax.servlet.http.HttpServletRequest;
  12. import javax.servlet.http.HttpServletRequestWrapper;
  13. import javax.servlet.http.HttpServletResponse;
  14.  
  15. public class HtmlFilter implements Filter {
  16.  
  17. @Override
  18. public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain) throws IOException, ServletException {
  19. HttpServletRequest request = (HttpServletRequest) req;
  20. HttpServletResponse response = (HttpServletResponse) resp;
  21. chain.doFilter(new HtmlHttpServletRequestWrapper(request), response);
  22. }
  23.  
  24. class HtmlHttpServletRequestWrapper extends HttpServletRequestWrapper {
  25.  
  26. private HttpServletRequest request;
  27.  
  28. public HtmlHttpServletRequestWrapper(HttpServletRequest request) {
  29. super(request);
  30. this.request = request;
  31. }
  32.  
  33. @Override
  34. public String getParameter(String name) {
  35. return filter(request.getParameter(name));
  36. }
  37.  
  38. public String filter(String message) {
  39. if (message == null)
  40. return (null);
  41. char content[] = new char[message.length()];
  42. message.getChars(0, message.length(), content, 0);
  43. StringBuffer result = new StringBuffer(content.length + 50);
  44. for (int i = 0; i < content.length; i++) {
  45. switch (content[i]) {
  46. case '<':
  47. result.append("&lt;");
  48. break;
  49. case '>':
  50. result.append("&gt;");
  51. break;
  52. case '&':
  53. result.append("&amp;");
  54. break;
  55. case '"':
  56. result.append("&quot;");
  57. break;
  58. default:
  59. result.append(content[i]);
  60. }
  61. }
  62. return (result.toString());
  63. }
  64.  
  65. }
  66.  
  67. @Override
  68. public void init(FilterConfig filterConfig) throws ServletException {
  69. }
  70.  
  71. @Override
  72. public void destroy() {
  73. }
  74.  
  75. }

javaWeb 使用 filter 处理 html 标签问题的更多相关文章

  1. JavaWeb使用Filter进行字符编码过滤 预防web服务中文乱码

    JavaWeb使用Filter进行字符编码过滤 预防web服务中文乱码 准备条件:一个创建好的 JavaWeb 项目 步骤: 1.创建一个类并实现 Filter 接口 import javax.ser ...

  2. [JavaWeb] Servlet Filter

    作用: Servlet 过滤器可以动态地拦截请求和响应,以变换或使用包含在请求或响应中的信息. 可以将一个或多个 Servlet 过滤器附加到一个 Servlet 或一组 Servlet.Servle ...

  3. JavaWeb 之 Filter:过滤器

    一.Filter 概述 1.概念 web 中的过滤器:当访问服务器的资源时,过滤器可以将请求拦截下来,完成一些特殊的功能. 2.作用 一般用于完成通用的操作.如:登录验证.统一编码处理.敏感字符等功能 ...

  4. 【JavaWeb】Filter 过滤器

    Filter 过滤器 简介 Filter 过滤器是 JavaWeb 三大组件之一 Filter 过滤器是 JavaEE 的规范,也就是接口 Filter 过滤器的作用是 拦截请求,过滤响应 拦截请求的 ...

  5. 传智播客JavaWeb day07、day08-自定义标签(传统标签和简单标签)、mvc设计模式、用户注册登录注销

    第七天的课程主要是讲了自定义标签.简单介绍了mvc设计模式.然后做了案例 1. 自定义标签 1.1 为什么要有自定义标签 前面所说的EL.JSTL等技术都是为了提高jsp的可读性.可维护性.方便性而取 ...

  6. javaweb之Filter详解(转)

    .概念: Filter也称之为过滤器,它是Servlet技术中比较激动人心的技术,WEB开发人员通过Filter技术,对web服务器管理的所有web资源: 例如Jsp, Servlet, 静态图片文件 ...

  7. JavaWeb之Filter过滤器

    原本计划这一篇来总结JSP,由于JSP的内容比较多,又想着晚上跑跑步减减肥,所以今天先介绍Filter以及它的使用举例,这样的话还有些时间可以锻炼锻炼.言归正传,过滤器从字面理解她的话有拦网.过滤的功 ...

  8. JavaWeb之Filter、Listener

    昨天和大家介绍了一下JSON的用法,其实JSON中主要是用来和数据库交互数据的.今天给大家讲解的是Filter和Listener的用法. 一.Listenner监听器 1.1.定义 Javaweb中的 ...

  9. javaweb之Filter过滤器详解

    快速入门 1.新建一个类,实现Filter接口 2.实现doFilter()方法,打印一句话,来证明能够进行拦截 3.在web.xml中进行配置(参照Servlet配置) 4.访问一个页面,看看能不能 ...

随机推荐

  1. return和finally的执行顺序

    创建一个类,新建一个方法: public class Demo { public int get() { int x=1; try { x++; return x; }finally{ ++x; } ...

  2. [LintCode] Restore IP Address 复原IP地址

    Given a string containing only digits, restore it by returning all possible valid IP address combina ...

  3. Point Grey articles link

    Point Grey areaDetector driver Bumblebee XB3 Specifications FlyCapture SDK Example Source Code Under ...

  4. Java Web include指令和动作的区别

  5. Linux_文件及文件夹[创建][复制][移动][删除][重命名]

    一.文件/文件夹创建 1.文件的创建 touch , vi/vim/nano , ... 语   法: touch [-acfm][-d <日期时间>][-r <参考文件或目 录&g ...

  6. MyBatis环境搭建配置文件+入门视频下载

    1.MyBatis优点 操作简单话,代码量少,效率高,成本就降低了 2.MyBatis缺点 参数只能限制为一个 selece语都要手动来写 3.与JDBC的关系:是对JDBC的扩展 把sql语句和ja ...

  7. 基于Jenkins的环境搭建

    基于 Jenkins 快速搭建持续集成环境 持续集成是一种软件开发实践,对于提高软件开发效率并保障软件开发质量提供了理论基础.Jenkins 是一个开源软件项目,旨在提供一个开放易用的软件平台,使持续 ...

  8. linux应用于发展(下)

    X windows的特点 1.独立于操作系统. 2.网络特性. 3.源码开源. Unix图形环境主要还是CDE linux主要还是在网络应用和嵌入式上使用较多. 娱乐办公什么的去windows吧. 网 ...

  9. Tomcat(JVM)性能监控方法

    Tomcat(JVM)监控方法 1.Tomcat自带的监控页面 配置详见Tomcat安装配置监控一文,如图所示为监控页面: 2.LoadRunner编写脚本实现Tomcat监控 采用编写VuGen脚本 ...

  10. 任务中使用wget,不保存文件

    */20 * * * * wget --output-document=/dev/null http://www.domain.com 使用wget每过20分钟访问一次,不保存访问文件内容