回顾
HTTP协议:超文本传输协议(HTTP,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议。用于定义WEB浏览器与WEB服务器之间交换数据的过程
基于请求/响应模型的协议。请求和响应必须成对;先有请求后有响应。
HTTP协议默认的端口:80
request的含义
http中的request
Http请求包含三部分:请求行、请求头、请求体。
注意:GET请求不包含请求体
抓包查看GET请求
抓包查看POST请求
请求行:请求方式 和请求路径
请求头:键值对组成
请求体:GET没有请求体,POST有请求体
Servelet中的request
在Servlet API中,定义了一个HttpServletRequest接口,它继承自ServletRequest接口,专门用来封装HTTP请求消息。由于HTTP请求消息分为请求行、请求消息头和请求消息体三部分,因此,在HttpServletRequest接口中定义了获取请求行、请求头和请求消息体的相关方法
请求行、请求头、请求体
获取请求行
如
String method = request.getMethod();//获取请求方式
System.out.println(method);
String path =request.getContextPath(); //获取项目访问路径
System.out.println(path);
请求头
什么请求头
即键值对
获取请求头
String userAgent = request.getHeader("User-Agent");//获取浏览器信息
System.out.println(userAgent);
请求体
什么是请求体
提交的参数
如
获取请求体
传单个key
String username = request.getParameter("username");
System.out.println(username);
传复数个key
如下图复选情况
用以下代码
String[] furit = request.getParameterValues("fruit");
System.out.println(Arrays.toString(furit));
下面方法是一次性取所有的key并打包,根据key查value
Map<String,String[]> map=request.getParameterMap();
//取出map中所有的key
Set<String> keys = map.keySet();
//循环打印
for(String key:keys){
System.out.println(key+" "+Arrays.toString(map.get(key)));//get方法根据键拿值
}
}