当前位置: 技术问答>java相关
Tomcat and resin ' request.getParameter();
来源: 互联网 发布时间:2017-03-21
本文导语: 在这两种服务器下,执行request.getParameter();会有不同的结果。 如果request.getParameter()的结果是汉字的话。 tomcat 需要用new String(request.getParameter("id").getBytes("ISO-8859-1"),"GBK") 来重新编码,否则显示为乱码。 而resin 不能...
在这两种服务器下,执行request.getParameter();会有不同的结果。
如果request.getParameter()的结果是汉字的话。
tomcat 需要用new String(request.getParameter("id").getBytes("ISO-8859-1"),"GBK") 来重新编码,否则显示为乱码。
而resin 不能用此来编码,直接使用,否则显示为乱码。
这样就造成了:我在tomcat下调试的程序移植到resin下时,需要改动。
这是不是一种麻烦,何为一次编写到处运行。
如果request.getParameter()的结果是汉字的话。
tomcat 需要用new String(request.getParameter("id").getBytes("ISO-8859-1"),"GBK") 来重新编码,否则显示为乱码。
而resin 不能用此来编码,直接使用,否则显示为乱码。
这样就造成了:我在tomcat下调试的程序移植到resin下时,需要改动。
这是不是一种麻烦,何为一次编写到处运行。
|
这其实是一个标准问题,应该是sun在他的servlet2.3里没有明确的说明,导致不同的厂商有不同的实现。
但这不是java的错,只是一次编写到处调试吧,但如果做全英文的网站就不用这么烦了,谁让这些标准不是咱中国人说了算呢:)
提供一个解决方案:在所有的请求被实际处理之前先做预处理(Filter),根据应用所在的不同servlet container做相应的转换(字符集或其他)。
但这不是java的错,只是一次编写到处调试吧,但如果做全英文的网站就不用这么烦了,谁让这些标准不是咱中国人说了算呢:)
提供一个解决方案:在所有的请求被实际处理之前先做预处理(Filter),根据应用所在的不同servlet container做相应的转换(字符集或其他)。