`
Willam2004
  • 浏览: 86905 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

jquery与Jetty交互中关于Get和Post的Ajax提交对于中文参数的处理(

 
阅读更多
在Web开发中,对于js与服务器的操作一般就是Get和Post两种操作。使用JQuery的ajax请求,我们一般会用到两种Get和Post,对于中文参数乱码的问题,之前网上大部分的解决都是JQuery的content-type设置为:application/x-www-form-urlencoded; charset=UTF-8,新版的jquery1.8.2已经默认就是这个,所以不需要再进行更改。
关于content-type的参数的解释:
When sending data to the server, use this content type. Default is "application/x-www-form-urlencoded; charset=UTF-8", which is fine for most cases. If you explicitly pass in a content-type to $.ajax(), then it'll always be sent to the server (even if no data is sent). If no charset is specified, data will be transmitted to the server using the server's default charset; you must decode this appropriately on the server side.

那么会将数据按照UTF-8的编码传给Server端。那么对于jetty是如何进行处理的呢?

引用

Jetty 7 get URI queryString 编码默认使用 UTF-8 编码,可以通过 request.setAttribute(“org.eclipse.jetty.server.Request.queryEncoding”,”GBK”) 设定查询参数的编码,如果不设定则默认读取系统属性 -Dorg.eclipse.jetty.util.URI.charset=GBK 的编码,如果系统属性也没有设定,则默认为 UTF-8 。
       POST 参数默认使用 Content-type 中的 Charset 编码,如果 Charset 没有,则默认使用 UTF-8 编码,当然可以在使用之前使用 request.set CharacterEncoding 设定编码。


对于Post请求,会使用Servlet的request.setCharsetEncoding的进行解码处理; 而如果是Get请求,那么将使用服务器的URI.Encoding指定的编码进行处理。

举例:产生中文乱码的情况:
代码:

$.ajax({
   url:"some.php",
   data:{"param":param},
   dataType:"json",
   type:"Get"
});


服务器:Jetty,-Dorg.eclipse.jetty.util.URI.charset=GBK
结果:产生中文参数乱码
原因:
js的ajax请求中,data参数会使用utf-8编码,而get请求又会使用GBK进行解码,导致乱码存在。
改进方案:
1.一种是js提交使用Post方式,在servlet端增加request.setCharsetEncoding("UTF-8"),让传入和编码的参数保持一致。
2. 使用url的queryString的方式进行传递,即更改前台的转码:

$.ajax({
   url:"some.php?param="+param,
   dataType:"json",
   type:"Get"
});

这样的请求也都会使用jetty服务器的org.eclipse.jetty.util.URI.charset的编码来处理。因为都是GBK编码和解码,所以就不存在乱码的问题。
分享到:
评论

相关推荐

    jetty-util-ajax-9.3.19.v20170502-API文档-中英对照版.zip

    赠送jar包:jetty-util-ajax-9.3.19.v20170502.jar; 赠送原API文档:jetty-util-ajax-9.3.19.v20170502...人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请放心使用。 双语对照,边学技术、边学英语。

    Jetty中文手册

    Jetty 欢迎访问Jetty文档 Wiki. Jetty是一个开源项目,提供了http服务器、http客户端和java servlet容器。 这个wiki提供jetty的入门教程、基础配置、功能特性、优化、安全、JavaEE、监控、常见问题、故障排除帮助...

    jetty-util-ajax-9.3.19.v20170502-API文档-中文版.zip

    赠送jar包:jetty-util-ajax-9.3.19.v20170502.jar; 赠送原API文档:jetty-util-ajax-9.3.19.v20170502-javadoc.jar;...人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请放心使用。

    Jetty cometd(Continuation)学习笔记

    Jetty是一个纯Java实现的开源Servlet容器,Jetty也可以作为HTTP服务器和HTTP客户端,Jetty仪器轻巧...众所周知因为安全的原因,多数浏览器都限制了Ajax跨域请求和javascript加载的时候只能是与当前域下的应用进行交互。

    Eclipse与jetty插件的安装和使用

    Eclipse与jetty插件的安装和使用

    jetty-io-9.4.43.v20210629-API文档-中文版.zip

    赠送jar包:jetty-io-9.4.43.v20210629.jar; 赠送原API文档:jetty-io-9.4.43.v20210629-javadoc.jar; 赠送源代码:jetty-io-9.4.43.v...人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请放心使用。

    Eclipse与Jetty集成

    Eclipse与Jetty服务器集成的最简单方法

    jetty在eclipse中配置

    自己写的jetty6在eclipse启动中配置说明

    jetty相关的全部jar包

    jetty-security-9.4.8.v20171121.jar,jetty-io-9.4.8.v20171121.jar,jetty-continuation-9.4.8.v20171121.jar,jetty-client-9.4.8.v20171121.jar,jetty-jmx-9.4.8.v20171121.jar,jetty-plus-9.4.8.v20171121....

    jetty-server-9.4.8.v20171121-API文档-中文版.zip

    赠送jar包:jetty-server-9.4.8.v20171121.jar; 赠送原API文档:jetty-server-9.4.8.v20171121-javadoc.jar; 赠送源代码:jetty-server...人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请放心使用。

    jetty-6.1.26-API文档-中文版.zip

    赠送jar包:jetty-6.1.26.jar; 赠送原API文档:jetty-6.1.26-javadoc.jar; 赠送源代码:jetty-6.1.26-sources.jar;...人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请放心使用。

    Jetty嵌入项目代码中示例

    Jetty嵌入项目代码中示例,现我有一示例项目 e:/workspace/web-demo(称为project_home),里面的Web根目录是WebContent。 在project_home建一个jetty目录,子目录如:contexts、etc、lib。 把${jetty_home}/etc...

    jetty的安装与使用

    jetty的安装与使用,eclipse jetty插件的安装,详细教程

    tomcate和jetty虚拟目录配置方法

    tomcate和jetty虚拟目录配置方法,里面带配置文件例子

    linux和windows版本的tomcat和jetty

    本压缩包包含了不同平台——windows以及linux最新的tomcat版本,(包含:tomcat-5.5.36、tomcat-6.0.37、tomcat-7.0.47)。 和jetty-distribution-9.0.6.v20130930。 供java web开发人员去下载

    jetty-util-ajax-9.2.1.v20140609.zip

    nebula-test.zip,渐变插件测试线束渐变插件测试线束

    eclipse对于jetty的插件

    最近jetty在与eclipse中的插件安装无响应,现直接把相应的插件文件jetty上传,解压后,直接放到eclipse的eclipse\plugins\下面即可,这是eclipse-win32的版本,不知道在64bit版本下是否可以运行。

    Jetty中文手册打包下载

    Jetty中文手册打包下载

    Jetty 表单提交内容过多

    NULL 博文链接:https://guanxi.iteye.com/blog/2249338

Global site tag (gtag.js) - Google Analytics