HttpServletRequest
>这个对象封装了客户端提交过来的一切数据。
1、可以获取客户端请求头信息
//1、取出请求头里面的所有信息 -----得到一个枚举集合
Enumeration<String> headerNames = request.getHeaderNames();
while (headerNames.hasMoreElements()) {
String headername = (String) headerNames.nextElement();
String value = request.getHeader(headername);
System.out.println(headername + ":" + value);
}
2、获取客户端提交过来的数据
String name = request.getParameter("name");
String address = request.getParameter("address");
System.out.println("name = " + name);
System.out.println("address = " + address);
------------------------------------------------------------
//name=zhangsan&name=lisi&name=wangwu 一个key可以对应多个值。
Map<String, String[]> map = request.getParameterMap();
Set<String> keySet = map.keySet();
Iterator<String> iterator = keySet.iterator();
while (iterator.hasNext()) {
String key = (String) iterator.next();
System.out.println("key="+key + "--的值总数有:"+map.get(key).length);
//此处应写一个循坏,这里简写
String value = map.get(key)[0];
String value1 = map.get(key)[1];
String value2 = map.get(key)[2];
System.out.println(key+" ======= "+ value + "=" + value1 + "="+ value2);
}
3、获取中文数据
>客户端提交数据给服务器,如果数据中带有中文,有可能出现乱码情况,可以参照以下方法解决
>GET方式:
>1)代码转码
String username = request.getParameter("username");
String password = request.getParameter("password");
System.out.println("userName="+username+"==password="+password);
if(username!=null) {
getMethod(username, password);
}
/*
* 处理Get请求过来的数据乱码
* get请求过来的数据,在url地址栏上就已经经过编码过了,所以取到的就是乱码
* tomcat收到这批数据,getParameter默认使用ISO-8859-1去解码
*
* 先让文字回到ISO-8859-1对应的字节数组,然后再按utf-8组拼字符串
*/
private void getMethod(String username, String password) throws UnsupportedEncodingException {
username = new String(username.getBytes("ISO-8859-1"),"UTF-8");
System.out.println("username : " + username + " " + "password :" + password);
}
>2)可以在tomcat里面做设置 conf/server.xml 加上URIEncoding=“utf-8”
<Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443" URIEncoding="UTF-8"/>
>POST方式:
//设置请求体里面的文字编码。get方式没用,一定要写在getParameter之前
request.setCharacterEncoding("UTF-8");