客户端向服务器提交数据方式:
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则不会产生乱码
还可以通过修改服务器端配置解决乱码问题