`

org.springframework.web.util.HtmlUtils,特殊字符转义工具类

阅读更多

     很多时候,由于特殊字符的原因,会造成用户输入的信息反馈到页面上时会显示成乱码,造成页面排版混乱;另外,黑客经常利用特殊字符对网站进行xss跨站攻击,所以我们需要对页面上提交的特殊字符进行html转码。

spring提供了一个工具类,org.springframework.web.util.HtmlUtils,省去了我们写工具类对html中的特殊字符进行过滤的麻烦。以下是对该工具类的使用示例:

import org.springframework.web.util.HtmlUtils;
public class HtmpEscapeExample {
    public static void main(String[] args) {
        String specialStr = " #测试转义:#<table id=\"testid\"><tr>test1;test2</tr></table>";
     // ①转换为HTML转义字符表示
        String str1 = HtmlUtils.htmlEscape(specialStr);
        System.out.println(str1);
      
     // ②转换为数据转义表示
        String str2 = HtmlUtils.htmlEscapeDecimal(specialStr);
        System.out.println(str2);
      
      //③转换为十六进制数据转义表示
        String str3 = HtmlUtils.htmlEscapeHex(specialStr); 
        System.out.println(str3);
      
       // ④下面对转义后字符串进行反向操作
        System.out.println(HtmlUtils.htmlUnescape(str1));
        System.out.println(HtmlUtils.htmlUnescape(str2));
        System.out.println(HtmlUtils.htmlUnescape(str3));
    }
} 

             另外,如果直接是用户输入的地方,可以直接过滤,但如果管理员用编辑器来编辑,就会有本来对应格式的HTML呗,这样的话,一般就过滤一些特殊标签,比如<script>,肯定是不能用的。还有就是一些触发事件选项,比如<img src="" onerror=""> 中的onerror就要过滤掉,不能在img标签中出现,单独的<img src="">这样可以;一般大型公司对链接里的触发事件会做一些过滤,比如一般你输入<a href="" onmouseover="">,就只剩下<a href="">。

 

分享到:
评论

相关推荐

    org.springframework.web的jar包.zip

    在本篇文章中,我们将深入探讨`org.springframework.web`包中的关键概念,特别是`ServerEndpointExporter`类在WebSocket服务器端点中的作用。 首先,让我们了解`org.springframework.web`包的基本构成。这个包主要...

    org.springframework.core.jar

    `org.springframework.util`则包含了一系列通用的工具类,如对象处理、集合操作、字符串处理等,极大地提升了开发效率。 2. **资源管理**:`org.springframework.core.io`包定义了资源接口,统一了文件、URL、输入/...

    Spring项目中怎么配置log4j

    &lt;listener-class&gt;org.springframework.web.util.Log4jConfigListener ``` 以上就是Spring项目中配置log4j的基本步骤和关键知识点。通过合理配置,我们可以实现日志的高效管理和监控,从而提升开发和运维的效率。

    java常用工具类整理

    1. org.springframework.util.StringUtils 工具类用于判断字符串非空,常用的方法有 isEmpty()、hasText() 等。 2. org.springframework.util.CollectionUtils 工具类用于判断 List 和 Map 集合的非空,常用的方法有...

    spring mvc 3.0.5 jar包

    - `org.springframework.core-3.0.5.RELEASE.jar`:Spring框架的基础模块,包含核心工具类和基础接口。 3. **事务管理**: - `org.springframework.transaction-3.0.5.RELEASE.jar`:提供了声明式和编程式事务...

    HTTP请求客户端工具类RestTemplateUtil.java

    org.springframework.web.client.AsyncRestTemplate org.springframework.web.client.RestTemplate HTTP请求工具类,基于以上两个Rest请求工具模板完成封装HTTP请求,包括同步和异步请求的实现。

    spring-framework-src-2.5.6.rar

    7. **org.springframework.core**和**org.springframework.util**:包含Spring框架的基础工具类和通用功能,如反射、集合操作、日期时间处理等。 通过阅读这些源码,你可以了解到Spring如何通过反射和动态代理实现...

    SpringBoot之自带工具类常用示例

    9. **`org.springframework.web.util.UriComponentsBuilder`** 这是一个用于构建URI的工具类,它可以方便地组合路径、查询参数等,创建完整的URI。例如,`UriComponentsBuilder.fromHttpUrl("http://example.com")....

    Spring3.0.2-Source源码

    6. **Spring核心工具类**:`org.springframework.core` 和 `org.springframework.util` 包提供了许多实用工具类,如反射、集合操作、日志记录等。 7. **测试支持**:Spring提供了对JUnit和其他测试框架的集成,使...

    spring's dist.jar

    在`org.springframework.jdbc`和`org.springframework.orm`包中,我们可以找到相关的工具类和抽象层,帮助开发者处理数据库操作。 4. **Web支持**:对于Web应用程序,Spring提供了MVC框架,使得开发RESTful API或...

    spring 3.0日常项目用到的jar

    6. `org.springframework.core-3.0.7.RELEASE.jar`: 核心工具类库,提供了许多基础的、通用的功能,比如类型转换、反射、集合操作等,是Spring其他模块依赖的基础。 7. `org.springframework.aop-3.0.7.RELEASE.jar...

    spring-framework的所有jar包

    4. **MVC(Model-View-Controller)**:Spring MVC是Spring提供的Web应用开发模块,它简化了构建RESTful服务和Web应用的过程,包括模型绑定、视图解析、异常处理等功能。 5. **交易管理**:Spring的交易管理模块...

    29. Spring boot 文件上传(多文件上传)【从零开始学Spring Boot】

    import org.springframework.web.multipart.MultipartHttpServletRequest; import java.util.List; @RestController public class FileUploadController { @PostMapping("/upload") public ResponseEntity...

    Spring IOC基础jar包

    3. `org.springframework.core-3.0.6.RELEASE.jar`: 核心模块,提供了Spring框架的基础工具类和基本数据类型,比如类型转换系统、泛型处理、反射工具类等,这些都是Spring框架其他部分的重要依赖。 4. `org.spring...

    Spring boot 实现单个或批量文件上传功能

    import org.springframework.web.multipart.MultipartHttpServletRequest; import java.util.List; @Controller public class FileUploadController { @PostMapping("/uploadSingle") public ResponseEntity...

    spring-scheduling-sr:org.springframework.scheduling包源码阅读笔记,学习如何用好Java执行器(高级并发对象)-Spring Framework 3.2.10-源码包

    总结来说,Spring的`org.springframework.scheduling`包提供了一套强大的异步任务和定时任务管理工具。开发者可以通过配置`TaskExecutor`和`TaskScheduler`,以及使用`@Async`、`@Scheduled`注解,灵活地设计和实现...

    spring timer、quartz俩种任务调度

    `Spring Timer`是Spring框架提供的一个简单任务调度工具,它基于Java的`java.util.Timer`类。通过`@Scheduled`注解,开发者可以在Spring应用上下文中声明一个方法为定时任务。例如: ```java import org.spring...

    简单SpringMVC环境搭建项目代码

    &lt;bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"&gt; &lt;property name="prefix" value="/WEB-INF/views/" /&gt; &lt;property name="suffix" value=".jsp" /&gt; ``` 6. **创建...

    Web项目中获取SpringBean与在非Spring组件中获取SpringBean.pdf

    import org.springframework.web.context.support.SpringBeanAutowiringSupport; public class SpringWiredBean extends SpringBeanAutowiringSupport { @Autowired private static BeanFactory beanFactory; /...

    spring-util-4.2.xsd.zip

    `spring-util-4.2.xsd`文件是Spring框架`&lt;util&gt;`命名空间的定义,主要用于处理工具类属性,如列表、地图、属性源等。在XML配置中,`&lt;util&gt;`命名空间提供了声明各种集合类型(如List、Set、Map)的便捷方式,而无需...

Global site tag (gtag.js) - Google Analytics