servlet——08请求乱码问题解决办法

请求乱码问题

浏览器默认的编码格式——iso8859-1
Tomcat服务器接收——UTF-8
过程:在调用service时,会传入req对象
解决:先用iso8859-1解析,再用UTF-8
对代码进行具体操作是:

/获取请求信息
String uname=req.getParameter("uname");
uname=new String(uname.getBytes("iso8859-1"),"utf-8");
//使用String进行数据重新编码

不分请求方式

使用String进行重新编码:
uname=new String(uname.getBytes(“iso8859-1”),“utf-8”);
缺点:每一个用户名都需要进行转码

使用公共配置

Get方式请求

因为get的请求数据在url中,而post有单独的请求实体
在service方法中使用: req.setCharacterEncoding(“utf-8”);
在tomcat服务器目录下的conf文件下找到server.xml文件,打开进行如下配置:
(大约在第70行左右)

    <Connector port="8088" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443"  />

加入:

    <Connector port="8088" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" useBodyEncodingForURI="true" />

Post方式请求

在service方法中使用: req.setCharacterEncoding(“utf-8”);
对代码进行具体操作是:

//设置请求编码格式:
			req.setCharacterEncoding("utf-8");
		//设置响应编码格式
			resp.setContentType("text/html;charset=utf-8");
		//获取请求信息
			String uname=req.getParameter("uname");

Servlet流程总结

  1. 浏览器发起请求到服务器(请求)
  2. 服务器接受浏览器的请求,进行解析,创建request对象存储请求数据
  3. 服务器调用对应的servlet进行请求处理,并将request对象作为实参传递给servlet的方法
    servlet的方法执行进行请求处理
    设置请求编码格式
    设置响应编码格式
    获取请求信息
    处理请求信息
    创建业务层对象
    调用业务层对象的方法
    响应处理结果
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值