淘宝商城(天猫)高级技术专家.3年研发+3年性能测试调优/系统测试+4年团队管理与测试架构、研发系统实践. 新舞台新气象, 深化测试基础架构及研发架构,希望能在某个技术领域成为真正的技术大牛。欢迎荐才http://bbs.51testing.com/viewthread.php?tid=120496&extra=&page=1 .邮件: jianzhao.liangjz@alibaba-inc.com,MSN:liangjianzhao@163.com.微博:http://t.sina.com.cn/1674816524

HTTP GET请求传输汉字给SPRING MVC的处理

上一篇 / 下一篇  2008-09-15 12:52:20 / 个人分类:java性能监控与调优

HTTP GET请求在提交数据给服务器方面和POST有很多差异。比如传输字节数大小,编码要求等。

HTTP GET请求要求对汉字进行URL编码。

 

IE客户端javascrīpt/vbscrīpt代码。

    

 

<scrīpt language="vbscrīpt">

Function GetByteCode(ch)   

    code = Asc(ch)          ' -20001

    GetByteCode = Hex(code) ' "B1DF"

End Function

</scrīpt>


<scrīpt language="javascrīpt">

String.prototype.urlEncode = function() {

    var r = "";

    for (var i = 0; i < this.length; i++) {

        var code = "" + GetByteCode(this.charAt(i));

        if (code.length > 2) {

            var b1 = code.substr(0, code.length - 2);

            var b2 = code.substr(code.length - 2);

            if (i == 0) {

                //alert("" + code + ", " + b1 + ", " + code.length + ", " + b2);

            }

            r += "%" + b1 + "%" + b2;

        } else {

            r += "%" + code;
        }
    }
    return r;
}

</scrīpt>

 

 

 

调用上述函数编码

Var projectname=”项目1”;

var urlEncoded=projectname.urlEncode();

 var url="insertCheckList.do?projectname="+urlEncoded;

接下来就是用AJAX  httprequest发送给JBOSS/TOMCAT。

 

 

 

服务器端SPRING接收到字符串解码:

 

publicModelAndView handleRequestInternal(HttpServletRequest request,

          HttpServletResponse response)throwsException {

 

String encodeProj = request.getParameter("projectname");

      

          //客户端经过编码后的汉字

          

          String projectname=newString( encodeProj.getBytes("8859_1") ,"gb2312");

          System.out.println(projectname);      

 

}


TAG: java性能监控与调优 http Spring GET 汉字

 

评分:0

我来说两句

Open Toolbar