HttpServletRequest

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");

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值