java后台对前端输入的特殊字符进行转义
转自:http://www.cnblogs.com/yangzhilong/p/5667165.html
java后台对前端输入的特殊字符进行转义
HTML:
常见的帮助类有2个:一个是spring的HtmlUtils,另外一个是apache.commons下的StringEscapeUtils

1 public static void testHtml(){ 2 String str = "<a href='http://www.qq.com'>QQ</a><script>"; 3 /** 4 * Spring的HtmlUtils进行转义 5 */ 6 //<a href='http://www.qq.com'>QQ</a><script> 7 System.out.println(org.springframework.web.util.HtmlUtils.htmlEscape(str)); 8 //<a href='http://www.qq.com'>QQ</a><script> 9 System.out.println(org.springframework.web.util.HtmlUtils.htmlEscapeDecimal(str)); 10 //<a href='http://www.qq.com'>QQ</a><script> 11 System.out.println(org.springframework.web.util.HtmlUtils.htmlEscapeHex(str)); 12 13 /** 14 * Spring的HtmlUtils进行还原 15 */ 16 //<a href='http://www.qq.com'>QQ</a><script> 17 System.out.println(org.springframework.web.util.HtmlUtils.htmlUnescape("<a href='http://www.qq.com'>QQ</a><script>")); 18 //<a href='http://www.qq.com'>QQ</a><script> 19 System.out.println(org.springframework.web.util.HtmlUtils.htmlUnescape("<a href='http://www.qq.com'>QQ</a><script>")); 20 //<a href='http://www.qq.com'>QQ</a><script> 21 System.out.println(org.springframework.web.util.HtmlUtils.htmlUnescape("<a href='http://www.qq.com'>QQ</a><script>")); 22 23 /** 24 * apache的StringEscapeUtils进行转义 25 */ 26 //<a href='http://www.qq.com'>QQ</a><script> 27 System.out.println(org.apache.commons.lang.StringEscapeUtils.escapeHtml(str)); 28 29 /** 30 * apache的StringEscapeUtils进行还原 31 */ 32 //<a href='http://www.qq.com'>QQ</a><script> 33 System.out.println(org.apache.commons.lang.StringEscapeUtils.unescapeHtml("<a href='http://www.qq.com'>QQ</a><script>")); 34 }

JavaScript:
常见的帮助类有2个:一个是spring的JavaScriptUtils,另外一个是apache.commons下的StringEscapeUtils

1 public static void testJavascript(){ 2 String js = "<script type='text/javascript'>var a=10;alert(a);</script>"; 3 /** 4 * Spring的JavaScriptUtils进行转义, 未提供还原的方法 5 */ 6 //\u003Cscript type=\'text\/javascript\'\u003Evar a=10;alert(a);\u003C\/script\u003E 7 System.out.println(org.springframework.web.util.JavaScriptUtils.javaScriptEscape(js)); 8 9 /** 10 * apache的StringEscapeUtils进行转义 11 */ 12 //<script type=\'text\/javascript\'>var a=10;alert(a);<\/script> 13 System.out.println(org.apache.commons.lang.StringEscapeUtils.escapeJavaScript(js)); 14 /** 15 * apache的StringEscapeUtils进行还原 16 */ 17 //<script type='text/javascript'>var a=10;alert(a);</script> 18 System.out.println(org.apache.commons.lang.StringEscapeUtils.unescapeJavaScript(org.apache.commons.lang.StringEscapeUtils.escapeJavaScript(js))); 19 }

SQL:
apache.commons下的StringEscapeUtils

/** * apache的StringEscapeUtils进行转义 */ String sql = "select * from table where username='" + org.apache.commons.lang.StringEscapeUtils.escapeSql("admin' or '1=1") + "' and password='admin'"; //select * from table where username='admin'' or ''1=1' and password='admin' System.out.println(sql);

java后台对前端输入的特殊字符进行转义的更多相关文章
- 你不可错过的二维码生成与解析-java后台与前端js都有
1.二维码分类 二维条码也有许多不同的码制,就码制的编码原理而言,通常分为三种类型. 线性堆叠式二维码 编码原理: 建立在一维条码基础之上,按需要堆积成两行或多行. 图示: 矩阵式二维码 最常用编 ...
- java后台解析前端传来的json
@RequestMapping(value = {"save"}) @ResponseBody public Result save(TBaseInterventionPlan m ...
- Java后台获取前端utf-8格式 ;空格,使用trim()消除不了的解决办法
byte bytes[] = {(byte) 0xC2,(byte) 0xA0}; String UTFSpace = new String(bytes,"utf-8"); htm ...
- 对url给后台传数据的时候特殊字符需要转义
URL中的字符只能是ASCII字符,但是ASCII字符比较少,而URL则常常包含ASCII字符集以外的字符,如非英语字符,汉字,特殊符号等等,所以要对URL进行转换.这个过程就叫做URL编码,或者叫U ...
- 终于,我还是下决心学Java后台了
我没有什么本事,人也丑,也不会忽悠,只能硬着头皮学习了.最近计划学习Java后台,因为最近接了私活的问题,好多都要Java后台和前端一起做.平常我在做什么,当然是忙着赚钱了 除了敲代码,你还有什么副业 ...
- android支付宝app支付(原生态)-包括android前端与java后台
本文讲解了 android开发的原生态app集成了支付宝支付, 还提供了java后台服务器处理支付宝支付的加密代码, app前端与java后台服务器使用json数据格式交互信息,java后台服务主要用 ...
- Java后台+数据库+Java web前端(新手)
实现简单页面上对数据的增删改查:Java后台+数据库表+Jsp前端网页设计 这里做一个简单的学生课程信息管理系统,做之前一定要先有自己的思路,要不然对新手来说,很容易乱的. 另有一完整的代码可供参考, ...
- java后台与jsp前台特殊字符处理(字符串编码与解码)
在后台与前台数据交互时如果有特殊字符就很容易出现问题,所以就需要对字符串进行编码传输,在获取后再进行解码: 1.Java后台进行编码与解码 URLEncoder.encode(str,"ut ...
- android 集成支付宝app支付(原生态)-包括android前端与java后台
本文讲解了 android开发的原生态app集成了支付宝支付, 还提供了java后台服务器处理支付宝支付的加密代码, app前端与java后台服务器使用json数据格式交互信息,java后台服务主要用 ...
随机推荐
- [LeetCode] Pacific Atlantic Water Flow 太平洋大西洋水流
Given an m x n matrix of non-negative integers representing the height of each unit cell in a contin ...
- JavaScript-简单的贪吃蛇小游戏
实现逻辑: //获取Html中的格子(行,列) //建立数组存储所有格子(x,y) //建立数组用于存储蛇身(x,y) //生成随机坐标(x,y)的函数 //随机创建蛇身并存储到蛇身数组 //创建食物 ...
- IO操作工具类
package com.imooc.io; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; impor ...
- LVS原理详解
一.集群简介 什么是集群 计算机集群简称集群是一种计算机系统,它通过一组松散集成的计算机软件和/或硬件连接起来高度紧密地协作完成计算工作.在某种意义上,他们可以被看作是一台计算机.集群系统中的单个计算 ...
- C程序设计语言学习笔记
在Windows下运行C语言程序 Windows下的编程工具使用 VC 6.0,下面讲解如何在VC 6.0下运行上节的"Hello, world"程序. 1) 新建Win32 Co ...
- android studio 提示翻译
1. you can import your settings from a previous version of Studio可以导入您的设置从先前版本的工作室 2. I want to impo ...
- 浅谈servlet
刚开始接触servlet的时候,其实不是太理解servlet的,后来经过慢慢摸爬滚打式的的学习,有了一点自己的理解. servlet的产生还要从Java和HTTP说起: Java的servletAPI ...
- csv to splite db form
termsql: https://github.com/tobimensch/termsql termsql -i textfile -d ',' -o sqlite.db 添加列名 termsql ...
- 测试或运维工作过程中最常用的几个linux命令?
大家在测试工作过程中,可能会遇到需要你去服务器修改一些配置文件,譬如说某个字段的值是1 则关联老版本,是0则关联新版本,这时候你可能就需要会下vi的命令操作:或者查看session设置的时长,可能需 ...
- smtplib.SMTPAuthenticationError: (535, b'Error: authentication failed')解决办法
raise SMTPAuthenticationError(code, resp) smtplib.SMTPAuthenticationError: (535, b'Error: authentica ...