Web开发中遇到的一些乱码及解决方式


get/post请求

1.哪一些是get请求? 

Ø 在浏览器中直接输入一个地址

Ø 表单的默认提交方式

Ø 点击链接


2.哪一些是post请求

Ø 给表单设置method=post 


解决中文乱码的方式:

Step1. 在服务器端编写html/jsp文件时添加,以下代码,并且表单的提交方式必须是post

<meta http-equiv=”content-type”content=”text/html”;charset=”utf-8> 

作用:模拟一个http消息头(content-type)让浏览器以utf-8方式打开该页面,因为当表单采用post方式提交时,浏览器会按照打开该表单 所在页面的编码格式来对表单数据进行编码


Step2. 在服务器端使用servlet读取请求参数时:

request.setCharacterEncoding(utf-8); 

作用: 设置解码时的编码 格式


Step3. 如果servlet输出数据 有中文,要 添加一下代码:

response.setContentType(text/html;charset=utf-8);

作用: 

1指定out.printl输出时所使用的 编码

2告诉浏览器以指定的编码显示该页面







以下总结我遇到的一些乱码 问题:

1.在学习servlet时,没有写专门的表单来提交参数,而是直接从url中获取输入的参数,这是一种典型的get提交方式 (url如下),这里仅仅传递一个参数 "中国"

url:  "http://localhost:8080/servletdemo/sayhello?name=中国"

服务器端(采用tomcat), 接收到这个参数之后,不做其他处理,仅仅加上一个单词 "hello" ,然后将其结果输出到 浏览器端, 浏览器端接收到参数后显示时 出现"中国" 乱码,英文显示正常.  看到这个问题,首先查看了浏览器的编码方式为 utf-8 , 服务器端也已经设置了默认输出到浏览器的编码格式为 utf-8, 接着在Servlet方法中输出接收到的参数,结果显示乱码,于是我在接收参数之前,设置解码格式也为utf-8  request.setCharacterEncoding="utf-8" ,再次重启服务器,IE,继续访问,服务器端接收到的仍然是乱码,这是为什么呢? 程序如下: 



百度之后找到问题的原因所在.

最终解决方式: 

打开tomcat/conf下的配置文件 server.xml在<Connector>中增加URIEncoding,保存,重启服务器进行测试,问题解决.


总结:

1.不修改tomcat的配置文件server.xml 中Connector情况下,使用get方式传输时,服务器端程序中通过设置编码方式 是不能够正确转换中文的

2 使用post传输数据 时可以通过这种设置编码方式转化中文



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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值