1. 程式人生 > >關於在頁面輸入特殊符號儲存到資料庫後,頁面查詢,特殊字元可以展示到頁面的問題

關於在頁面輸入特殊符號儲存到資料庫後,頁面查詢,特殊字元可以展示到頁面的問題

                                                           這是我的第one篇部落格,寫的有不好的希望大家可以多提提意見或者建議,謝謝!

       前兩天專案需要寫一個頁面輸入特殊字元點選儲存,查詢資料庫需要將特殊字元(.,>,<,@,&,*[等程式裡的特殊字元])串展示到頁面上,查了一些資料,現在將自己的經驗分享給大家!

說到這裡,我想說hibernate真是一個強大的框架!<後續說為什麼>

      前臺的寫法:

為了方便看省略一些程式碼吧。。。

<script type="text/html">
    ...
     function save(){
     var p =encodeURIComponent($.trim($("#p").val()));//頁面驗證字元編碼
     if(驗證){
         var parm ="&p="+$("#p").val() 
       }
     }
    ajax.({
           ....
           url:...
           data:'...'+param //引數傳進後臺
 <span style="white-space:pre">	</span>   ...
            })
    ...
</script>
<span style="white-space:pre">	</span>
<span style="font-size:18px;">後臺(java)的程式碼,對字元做處理,java中有一些特殊字元的轉換標識:</span>
<pre name="code" class="java" style="font-size:14px;">MtsOutput mtsOutput = new MtsOutput()
String p = paramBean.getP();
p = p.replace("<","&lt;").replace(">","&gt;");
mtsOutput .setP(P)
....
這樣就可以解決了。
<span style="font-size:18px;">別走開,後面很精彩~~~</span>
<span style="font-size:18px;">在我debug的時候不小心註釋了後臺那行轉換程式碼發現頁面照樣可以展示出<,>,@,.,等符號,我迫不及待的翻閱資料這到底是怎麼一回事的時候,終於解出答案來</span>
<span style="font-size:18px;">這就是我前面所說的hibernate很強大的一個功能,原來hibernate機制本身就對有些特殊符號進行轉換了,只要給頁面jsp中新增《<span style="font-family: Arial, Helvetica, sans-serif;">encodeURIComponent</span><span style="font-family: Arial, Helvetica, sans-serif;"> 》一行程式碼就可以了,但是還有一些特殊符號hibernate機制沒有轉換,如&,這個符號,我又用了java程式碼的replace方法解決,可發現hibernate不支援,問題在陷入了僵局之時,有位大神指點迷津,在oracle的sql語句中有個函式replace,就上述問題而言,查詢資料庫展示到頁面,寫個sql查詢語句如下:</span></span><pre name="code" class="java">select replace(mo.p,'&','&amp;') from Mts_Output mo where ...;
問題解決了!