首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java Web开发 >

经过函数escape(javascript)编码的数据,传递到jsp页面后应该怎么接收

2011-12-11 
经过函数escape(javascript)编码的数据,传递到jsp页面后应该如何接收?客户端给出部分代码:varxmlhttpreque

经过函数escape(javascript)编码的数据,传递到jsp页面后应该如何接收?
客户端给出部分代码:
var   xmlhttprequest=getXMLHttpRequest();
if(xmlhttprequest)
{
xmlhttprequest.open( "POST ", "xtgzpt_lzkz_gdgl_get_zuidajianhao.jsp ",true);
xmlhttprequest.onreadystatechange   =   gotresult;  
xmlhttprequest.setRequestHeader( 'Content-Type ', 'application/x-www-form-urlencoded;charset=utf-8 ');
param= " ";
param=param+ "gdnd= "+form1.gdnd.value;
param=param+ "&jg= "+form1.jg.value;
param=param+ "&bcqy= "+escape(form1.bcqy.value);
alert(param);
xmlhttprequest.send(param);  
}
服务器端用一下这句代码接收:
String   t_bcqy=unescape(request.getParameter( "bcqy "));
至此,程序一点都不报错,但是就是这句话过不去,请各位指教。。。


unescape函数的定义如下:
<%!
String[]   hex   =   {
                "00 ", "01 ", "02 ", "03 ", "04 ", "05 ", "06 ", "07 ", "08 ", "09 ", "0A ", "0B ", "0C ", "0D ", "0E ", "0F ",
                "10 ", "11 ", "12 ", "13 ", "14 ", "15 ", "16 ", "17 ", "18 ", "19 ", "1A ", "1B ", "1C ", "1D ", "1E ", "1F ",
                "20 ", "21 ", "22 ", "23 ", "24 ", "25 ", "26 ", "27 ", "28 ", "29 ", "2A ", "2B ", "2C ", "2D ", "2E ", "2F ",
                "30 ", "31 ", "32 ", "33 ", "34 ", "35 ", "36 ", "37 ", "38 ", "39 ", "3A ", "3B ", "3C ", "3D ", "3E ", "3F ",
                "40 ", "41 ", "42 ", "43 ", "44 ", "45 ", "46 ", "47 ", "48 ", "49 ", "4A ", "4B ", "4C ", "4D ", "4E ", "4F ",
                "50 ", "51 ", "52 ", "53 ", "54 ", "55 ", "56 ", "57 ", "58 ", "59 ", "5A ", "5B ", "5C ", "5D ", "5E ", "5F ",
                "60 ", "61 ", "62 ", "63 ", "64 ", "65 ", "66 ", "67 ", "68 ", "69 ", "6A ", "6B ", "6C ", "6D ", "6E ", "6F ",
                "70 ", "71 ", "72 ", "73 ", "74 ", "75 ", "76 ", "77 ", "78 ", "79 ", "7A ", "7B ", "7C ", "7D ", "7E ", "7F ",
                "80 ", "81 ", "82 ", "83 ", "84 ", "85 ", "86 ", "87 ", "88 ", "89 ", "8A ", "8B ", "8C ", "8D ", "8E ", "8F ",


                "90 ", "91 ", "92 ", "93 ", "94 ", "95 ", "96 ", "97 ", "98 ", "99 ", "9A ", "9B ", "9C ", "9D ", "9E ", "9F ",
                "A0 ", "A1 ", "A2 ", "A3 ", "A4 ", "A5 ", "A6 ", "A7 ", "A8 ", "A9 ", "AA ", "AB ", "AC ", "AD ", "AE ", "AF ",
                "B0 ", "B1 ", "B2 ", "B3 ", "B4 ", "B5 ", "B6 ", "B7 ", "B8 ", "B9 ", "BA ", "BB ", "BC ", "BD ", "BE ", "BF ",
                "C0 ", "C1 ", "C2 ", "C3 ", "C4 ", "C5 ", "C6 ", "C7 ", "C8 ", "C9 ", "CA ", "CB ", "CC ", "CD ", "CE ", "CF ",
                "D0 ", "D1 ", "D2 ", "D3 ", "D4 ", "D5 ", "D6 ", "D7 ", "D8 ", "D9 ", "DA ", "DB ", "DC ", "DD ", "DE ", "DF ",
                "E0 ", "E1 ", "E2 ", "E3 ", "E4 ", "E5 ", "E6 ", "E7 ", "E8 ", "E9 ", "EA ", "EB ", "EC ", "ED ", "EE ", "EF ",
                "F0 ", "F1 ", "F2 ", "F3 ", "F4 ", "F5 ", "F6 ", "F7 ", "F8 ", "F9 ", "FA ", "FB ", "FC ", "FD ", "FE ", "FF "
        };
byte[]   val   =   {
                0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,
                0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,
                0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,
                0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,
                0x3F,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,
                0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,
                0x3F,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,
                0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,
                0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,
                0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,
                0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,


                0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,
                0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,
                0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,
                0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,
                0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F
        };
String   escape(String   s)   {
                StringBuffer   sbuf   =   new   StringBuffer();
                int   len   =   s.length();
                for   (int   i   =   0;   i   <   len;   i++)   {
                        int   ch   =   s.charAt(i);
                        if   (ch   ==   '   ')   {                                                 //   space   :   map   to   '+ '  
                                sbuf.append( '+ ');
                        }   else   if   ( 'A '   <=   ch   &&   ch   <=   'Z ')   {         //   'A '.. 'Z '   :   as   it   was
                                sbuf.append((char)ch);
                        }   else   if   ( 'a '   <=   ch   &&   ch   <=   'z ')   {         //   'a '.. 'z '   :   as   it   was
                                sbuf.append((char)ch);
                        }   else   if   ( '0 '   <=   ch   &&   ch   <=   '9 ')   {         //   '0 '.. '9 '   :   as   it   was
                                sbuf.append((char)ch);
                        }   else   if   (ch   ==   '- '   ||   ch   ==   '_ '               //   unreserved   :   as   it   was
                                ||   ch   ==   '. '   ||   ch   ==   '! '


                                ||   ch   ==   '~ '   ||   ch   ==   '* '
                                ||   ch   ==   '\ ' '   ||   ch   ==   '( '
                                ||   ch   ==   ') ')   {
                                sbuf.append((char)ch);
                        }   else   if   (ch   <=   0x007F)   {                             //   other   ASCII   :   map   to   %XX
                                sbuf.append( '% ');
                                sbuf.append(hex[ch]);
                        }   else   {                                                                 //   unicode   :   map   to   %uXXXX
                                sbuf.append( '% ');
                                sbuf.append( 'u ');
                                sbuf.append(hex[(ch   > > >   8)]);
                                sbuf.append(hex[(0x00FF   &   ch)]);
                        }
                }
                return   sbuf.toString();
        }
%>
<%!
String   unescape(String   s)   {
                StringBuffer   sbuf   =   new   StringBuffer();
                int   i   =   0;
                int   len   =   s.length();
                while   (i   <   len)   {
                        int   ch   =   s.charAt(i);
                        if   (ch   ==   '+ ')   {                                                 //   +   :   map   to   '   '  
                                sbuf.append( '   ');


                        }   else   if   ( 'A '   <=   ch   &&   ch   <=   'Z ')   {         //   'A '.. 'Z '   :   as   it   was
                                sbuf.append((char)ch);
                        }   else   if   ( 'a '   <=   ch   &&   ch   <=   'z ')   {         //   'a '.. 'z '   :   as   it   was
                                sbuf.append((char)ch);
                        }   else   if   ( '0 '   <=   ch   &&   ch   <=   '9 ')   {         //   '0 '.. '9 '   :   as   it   was
                                sbuf.append((char)ch);
                        }   else   if   (ch   ==   '- '   ||   ch   ==   '_ '               //   unreserved   :   as   it   was
                                ||   ch   ==   '. '   ||   ch   ==   '! '
                                ||   ch   ==   '~ '   ||   ch   ==   '* '
                                ||   ch   ==   '\ ' '   ||   ch   ==   '( '
                                ||   ch   ==   ') ')   {
                                sbuf.append((char)ch);
                        }   else   if   (ch   ==   '% ')   {
                                int   cint   =   0;
                                if   ( 'u '   !=   s.charAt(i+1))   {                   //   %XX   :   map   to   ascii(XX)
                                        cint   =   (cint   < <   4)   |   val[s.charAt(i+1)];
                                        cint   =   (cint   < <   4)   |   val[s.charAt(i+2)];


                                        i+=2;
                                }   else   {                                                         //   %uXXXX   :   map   to   unicode(XXXX)
                                        cint   =   (cint   < <   4)   |   val[s.charAt(i+2)];
                                        cint   =   (cint   < <   4)   |   val[s.charAt(i+3)];
                                        cint   =   (cint   < <   4)   |   val[s.charAt(i+4)];
                                        cint   =   (cint   < <   4)   |   val[s.charAt(i+5)];
                                        i+=5;
                                }
                                sbuf.append((char)cint);
                        }
                        i++;
                }
                return   sbuf.toString();
        }
%>

[解决办法]
至此,程序一点都不报错,但是就是这句话过不去,请各位指教。。。

这句话是什么意思?说清楚,“过不去”是什么意思?总归有个现象吧

热点排行