Bootstrap

前后台交互中特殊字符的处理

一、特殊字符需要做处理

1. 单引号

    后台返回的json中包含单引号,可能会引起前端页面js报错,可以在前端对单引号进行转义,或者在后台进行转义,再生成json返回到前端。

    后台根据前端传递的数据拼接sql时,单引号会导致sql语句报错,且不推荐直接使用字符串进行sql拼接,可以使用JDBC中的类,通过占位符传递参数,防止sql注入。

    如果sql中有单引号导致sql语句报错,可以将两个单引号进行转义,如:select * from table where column like '''' ;

2. 百分号、下划线

    前端get请求拼接的url中,如果有百分号,需要对百分号进行转义,否则后台将取不到该百分号,可以使用'%25'替换'%',如此,后台可以根据参数直接获取到%。

    前端传递某个参数的值为%,如果后台不对它进行处理,直接作为条件进行模糊查询,将会把数据库中所有非空的数据查询出来; 如果参数的值为_,后台不对它进行处理,直接作为条件进行模糊查询,会匹配到数据库中该字段所有单个字符的数据。

    如果遇到百分号、下划线作为查询条件,可以使用/+百分号或下划线进行转义,在本项条件后加 escape '/' 即可,如:

    select * from tabl where column like '%/%%' escape '/' ;

    select * from tabl where column like '%/_%' escape '/' ;

    

;