第4章:作为Servlet:请求和响应/4.2 请求
程序员文章站
2022-03-02 22:22:32
...
-
HTTP所有方法汇总
- GET:获取服务器上的资源,如果HTML中没有指定方法则默认是GET方法
- POST:修改服务器上的资源
- HEAD:只要求获取首部部分,有点像GET,但是没有响应体
- TRACE:要求服务端返回请求消息
- PUT:消息体放在URL资源上
- DELETE:删除URL上的资源
- OPTIONS:获取HTTP方法列表
- CONNECT:要求连接以便建立隧道
-
GET和POST区别
- GET的参数附加到URL后面,POST参数在消息体重
- GET参数有字节限制,POST没有
- GET参数暴露安全性
- GET约定不能修改数据,POST可以修改数据
-
关于幂等性
- 概念:就是每次请求等到的结果都是一样的
- 幂等的方法
- GET
- HEAD
- 非幂等的方法
- POST
- PUT
-
请求头部获取
- 获取方法
//打印头部 Enumeration<String> enumeration = request.getHeaderNames(); while(enumeration.hasMoreElements()){ String name = enumeration.nextElement(); System.out.println("[" + name+"]:"); Enumeration<String> enumeration2 = request.getHeaders(name); while(enumeration2.hasMoreElements()){ System.out.println(" " + enumeration2.nextElement()); } }
- 打印结果
[host]:
127.0.0.1:8081
[connection]:
keep-alive
[cache-control]:
max-age=0
[origin]:
http://127.0.0.1:8081
[upgrade-insecure-requests]:
1
[user-agent]:
Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36
[content-type]:
application/x-www-form-urlencoded
[accept]:
text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8
[referer]:
http://127.0.0.1:8081/myWeb/form.html
[accept-encoding]:
gzip, deflate, br
[accept-language]:
zh-CN,zh;q=0.9
[content-length]:body长度
11
-
请求参数获取(无论get/post)
- 参数形式都是:key=value&key=value&key=value
//获取参数名列表和参数对应的值 Enumeration<String> enumeration2 = request.getParameterNames(); while(enumeration2.hasMoreElements()){ String name = enumeration2.nextElement(); System.out.println("[" + name+"]:"); String []values = request.getParameterValues(name); for (String string : values) { System.out.println(string); } }
- 获取参数名和参数名对应的值
[color]:
light
[color2]:
write
上一篇: volatile的那点事
下一篇: Handler的那些事