昨天改一个JSP项目,做验证的时候发现在表单中只要提交单引号就会报500,后来发现后台SQL语句全是拼接的。现在由于页面太多,不可能一个个改后台代码做preparestatement.提交的内容其它页面还要原封用到,所以最好不要替换单引号,请问有没有好点的解决方法?

解决方案 »

  1.   

    再具体就是你JSP的事情了,与ORACLE无关。
    假设录入的内容如下 :
    "i think 'over'!"
    那么你就用代码把它转换成
    "i think ''over''!"
    然后再把这个字符串提交给后台去执行就可以了。
      

  2.   

    就是''在Oracle中代表一个实际的'引号。而不是做为Oracle字符串的分隔符。
      

  3.   

    貌似前台编程需要对特殊字符进行过滤,不然你就等着被sql注入吧
      

  4.   

    这个问题不属于ORACLE范畴了,在JS中用escape对输入的单引号转义吧