jsp的ajax表单提交方式,JSP中AJAX表单提交中文问题简单解决方案(GBK版本).docx

该博客介绍了在GBK编码环境下,如何解决JSP中使用AJAX进行表单提交时可能出现的中文乱码问题。文章强调尽量少改动原有代码,并提供了一个简单的解决方案,适用于Resin和Tomcat服务器以及IE6和Firefox2.0浏览器。内容涉及HTTP协议的GET和POST方法,以及如何保持请求和浏览器提交内容的一致性来避免乱码。
摘要由CSDN通过智能技术生成

JSP中AJAX表单提交中文问题简单解决方案(GBK版本)

测试通过: Resin 3.0.18, Tomcat 5.0.30, 5.5.20; 浏览器: IE 6/Firefox 2.0.???上一篇文章 HYPERLINK "/beansoft/archive/2006/12/25/89835.html" JSP 中 AJAX 的表单提交中文问题的简单解决方案? 主要是针对 UTF-8 版本的进行处理的, 鉴于中国大陆地区大部分还是用 GBK 编码写 JSP, 因此本文就针对 GBK 的实践结果进行介绍.有朋友提到 HYPERLINK "/errorfun/archive/2006/12/30/91000.html" 当AJAX遭遇GBK的尴尬?里说当 AJAX 使用 GBK 编码后, 表单提交将出现乱码. 如前文所述, 只要全部采用UTF-8 编码, 是没有任何问题的. 那么都用 GBK 呢? 首先要讲的是我们的文章还是一样的原则: 尽可能少的改动原来的代码来解决中文乱码问题. 所以本文的示例没有用过滤器等方法. 那么使用 GBK 编码到底有没有乱码问题呢? 第一个关键点就是 AJAX 的表单提交代码必须正确的按照 HTTP 规范实现, 即要保持原来的 GET/POST 方式不变, 也要保持里面的内容和浏览器提交的内容一摸一样. 以下内容摘自我编写的内部培训教材: 引用开始 首先必须要介绍一下 HTTP 协议和 GET, POST 的工作方式. ??? 当用户在Web浏览器地址栏中输入一个带有http://前缀的URL并按下Enter后,或者在Web页面中某个以http://开头的超链接上单击鼠标,HTTP事务处理的第一个阶段--建立连接阶段就开始了.HTTP的默认端口是80.??? 随着连接的建立,HTTP就进入了客户向服务器发送请求的阶段.客户向服务器发送的请求是一个有特定格式的ASCII消息,其语法规则为: < Method > < URL > < HTTP Version > { : }*{ Entity Body }??? 请求消息的顶端是请求行,用于指定方法,URL和HTTP协议的版本,请求行的最后是回车换行.方法有GET,POST,HEAD,PUT,DELETE等.在请求行之后是若干个报头(Header)行.每个报头行都是由一个报头和一个取值构成的二元对,报头和取值之间以":"分隔;报头行的最后是回车换行. 常见的报头有Accept(指定MIME媒体类型),Accept_Charset(响应消息的编码方式),Accept_Encoding(响应消息的字符集),User_Agent(用户的浏览器信息)等.??? 在请求消息的报头行之后是一个回车换行,表明请求消息的报头部分结束.在这个\n之后是请求消息的消息实体(Entity Body).???? Web服务器在收到客户请求并作出处理之后,要向客户发送应答消息.与请求消息一样,应答消息的语法规则为:< HTTP Version> []{ : } *{ Entity Body }??? 应答消息的第一行为状态行,其中包括了HTTP版本号,状态码和对状态码进行简短解释的消息;状态行的最后是回车换行.状态码由3位数字组成,有5类:? 1XX 保留 ? 2XX 表示成功 ? 3XX 表示URL已经被移走 ? 4XX 表示客户错误 ? 5XX 表示服务器错误 例如:415,表示不支持改媒体类型;503,表示服务器不能访问.最常见的是200,表示成功.常见的报头有:Last_Modified(最后修改时间),Content_Type(消息内容的MIME类型),Content_Length(内容长度)等.??? 在报头行之后也是一个回车换行,用以表示应答消息的报头部分的结束,以及应答消息实体的开始.??? 下面是一个应答消息的例子:HTTP/1.0 200 OKDate: Moday,07-Apr-97 21:13:02 GMTServer:NCSA/1.1MIME_Version:1.0Content_Type:text/htmlLast_Modified:Thu Dec 5 09:28:01 1996Coentent_Length:3107...那么 GET 和 POST 有什么区别? 区别就是一个在 URL 请求里面附带了表单参数和值, 一个是在 HTTP 请求的消息实体中.用下面的例子可以很容易的看到同样的数据通过GET和POST来发送的区

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值