转自: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     //&lt;a href='http://www.qq.com'&gt;QQ&lt;/a&gt;&lt;script&gt;  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("&lt;a href='http://www.qq.com'&gt;QQ&lt;/a&gt;&lt;script&gt;")); 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     //&lt;a href='http://www.qq.com'&gt;QQ&lt;/a&gt;&lt;script&gt; 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("&lt;a href='http://www.qq.com'&gt;QQ&lt;/a&gt;&lt;script&gt;")); 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后台对前端输入的特殊字符进行转义的更多相关文章

  1. 你不可错过的二维码生成与解析-java后台与前端js都有

    1.二维码分类   二维条码也有许多不同的码制,就码制的编码原理而言,通常分为三种类型. 线性堆叠式二维码 编码原理: 建立在一维条码基础之上,按需要堆积成两行或多行. 图示: 矩阵式二维码 最常用编 ...

  2. java后台解析前端传来的json

    @RequestMapping(value = {"save"}) @ResponseBody public Result save(TBaseInterventionPlan m ...

  3. Java后台获取前端utf-8格式&nbsp;空格,使用trim()消除不了的解决办法

    byte bytes[] = {(byte) 0xC2,(byte) 0xA0}; String UTFSpace = new String(bytes,"utf-8"); htm ...

  4. 对url给后台传数据的时候特殊字符需要转义

    URL中的字符只能是ASCII字符,但是ASCII字符比较少,而URL则常常包含ASCII字符集以外的字符,如非英语字符,汉字,特殊符号等等,所以要对URL进行转换.这个过程就叫做URL编码,或者叫U ...

  5. 终于,我还是下决心学Java后台了

    我没有什么本事,人也丑,也不会忽悠,只能硬着头皮学习了.最近计划学习Java后台,因为最近接了私活的问题,好多都要Java后台和前端一起做.平常我在做什么,当然是忙着赚钱了 除了敲代码,你还有什么副业 ...

  6. android支付宝app支付(原生态)-包括android前端与java后台

    本文讲解了 android开发的原生态app集成了支付宝支付, 还提供了java后台服务器处理支付宝支付的加密代码, app前端与java后台服务器使用json数据格式交互信息,java后台服务主要用 ...

  7. Java后台+数据库+Java web前端(新手)

    实现简单页面上对数据的增删改查:Java后台+数据库表+Jsp前端网页设计 这里做一个简单的学生课程信息管理系统,做之前一定要先有自己的思路,要不然对新手来说,很容易乱的. 另有一完整的代码可供参考, ...

  8. java后台与jsp前台特殊字符处理(字符串编码与解码)

    在后台与前台数据交互时如果有特殊字符就很容易出现问题,所以就需要对字符串进行编码传输,在获取后再进行解码: 1.Java后台进行编码与解码 URLEncoder.encode(str,"ut ...

  9. android 集成支付宝app支付(原生态)-包括android前端与java后台

    本文讲解了 android开发的原生态app集成了支付宝支付, 还提供了java后台服务器处理支付宝支付的加密代码, app前端与java后台服务器使用json数据格式交互信息,java后台服务主要用 ...

随机推荐

  1. redis 学习笔记(7)-cluster 客户端(jedis)代码示例

    上节学习了cluster的搭建及redis-cli终端下如何操作,但是更常用的场景是在程序代码里对cluster读写,这需要redis-client对cluster模式的支持,目前spring-dat ...

  2. [LeetCode] Gas Station 加油站问题

    There are N gas stations along a circular route, where the amount of gas at station i is gas[i]. You ...

  3. underscore 源码解读之 bind 方法的实现

    自从进入七月以来,我的 underscore 源码解读系列 更新缓慢,再这样下去,今年更完的目标似乎要落空,赶紧写一篇压压惊. 前文 跟大家简单介绍了下 ES5 中的 bind 方法以及使用场景(没读 ...

  4. 《如何正确学习JavaScript》读后小结

    在segmentfault上读的一篇学习JavaScript路线的文章,做个小结. 一.简介.数据类型.表达式和操作符 (1)<JavaScript权威指南>前言1-2章&< ...

  5. [板子]倍增LCA

    倍增LCA板子,没有压行,可读性应该还可以.转载请随意. #include <cstdio> #include <cstring> #include <algorithm ...

  6. 【WPF】 Timer与 dispatcherTimer 在wpf中你应该用哪个?

    源:Roboby 1.timer或重复生成timer事件,dispatchertimer是集成到队列中的一个时钟.2.dispatchertimer更适合在wpf中访问UI线程上的元素 3.Dispa ...

  7. 修改/etc/profile和/etc/environment导致图形界面无法登陆的问题

    在使用ubuntu开发时,往往要修改PATH变量,有时会通过修改/etc/profile和/etc/environment来修改默认的PATH变量,但是一旦出错,很容易造成无法登陆进入图形界面的问题. ...

  8. MindManager中发送导图给别的用户的教程

    使用MindManager思维导图的过程中,可以发送当前导图.导图模版或导图主题给其他的Mindjet用户,如果正在进行导图审阅,发送导图时可以使用"供审阅"选项,本文具体为大家讲 ...

  9. django 基础篇

    jdango 简介: 一个可以使Web开发工作愉快并且高效的Web开发框架. 使用Django,使你能够以 小的代价构建和维护高质量的Web应用. Python的WEB框架有Django.Tornad ...

  10. py-faster-rcnn之从solver文件创建solver对象,建立pythonlayer

    faster-rcnn在训练阶段,根据一个solver的prototxt文件创建相应的网络.仅凭一个prototxt就创建网络?其实还涉及到自定义的PythonLayer. 比如lib/rpn/anc ...