服务器获得客户端提交的数据及中文乱码问题

  客户端向服务器提交数据方式:
1、通过超链接提交:

 <a href="/Request/servlet/Demo1?name1=111&name3=333">超链接提交</a>

2、表单提交:
3、文件上传

<form action="/Request/servlet/Demo1" method="get">
user1:<input type="text" name="username"/>
user2:<input type="text" name="username"/>
<input type="text" name="passwd"/>
<input type="submit" value="提交"/>
</form>


表单提交的方式在服务器端当name相同时可以用
String[] e=request.getParameterValues("username");方法获得该名称的所有值
Enumeration e=request.getParameterNames();可以得到所有参数名称,通过名称得到传入的值,如果参数有重名参数名只能得到一个参数名称和一个参数值
Map map=request.getParameterMap();
User user=new User();
BeanUtils.populate(user, map);该方法可以将map集合中的数据对应到user对象中,注意user对象中的变量名要与客户顿提交的变量名一致。只有一致的名称才能保存到user对象中

当客户端像服务器提交中文数据时会产生乱码,根据客户端提交的请求方式,即get和post有不同的乱码解决方案,超链接提交的数据都是get方式提交,当以post方式提交数据时,可以用

req.setCharacterEncoding("UTF-8");方法设置req对象的编码,浏览器端的数据编码与提交的界面编码一致,若为get方式提交,则需要在服务器端进行编码转换,

name=new String(name.getBytes("iso8859-1"),"UTF-8");可以将req的编码iso8859-1转化为UTF-8编码,如果浏览器浏览的的当前页面的编码也为UTF-8则不会产生乱码

 

还可以通过修改服务器端配置解决乱码问题

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值