HttpServletRequest(HttpServletRequest 想比 ServletRequest 添加与协议相关 API)对象代表客户端的请求,当客户端通过HTTP协议访问服务器时,HTTP请求中的所有信息都封装在这个对象中,开发人员通过这个对象的方法,可以获得客户信息。
通过Request对象进行的常用操作:
- 获取客户机信息
- 获取请求头信息
- 获取请求参数
- 利用请求域传递对象
(一)获取客户机信息
常用方法:
输出:
区别URL(统一资源定位符)与URI(统一资源标识符):
url:http://localhost/requesttest/request1 — 完整
uri:/requesttest/request1
—- 部分
URI 包含 URL的 ,URL 一定完成路径,URI可以相对路径
http://localhost/requesttest/request1
是一个URL 同时也是 URI
https://blog.csdn.net/Megustas_JJC/article/details/hello
/requesttest/request1 —- 托福ibt都是URI 不是URL
querystring:null
由于请求中没有查询串,因此querystring为null,如果改成http://localhost/requesttest/request1?username=megustas则输出变为
即通过 getQueryString 可以获得 get方式提交查询串 url中?后面部分
获得当前访问资源路径 :
在URI的基础上去掉工程虚拟目录名称的部分,剩下的就是当前访问的资源的路径。
(二)获取请求头信息
getHeader 获得头信息的值,转换一个字符串
getHeaders 获得头信息值 ,获得Enumeration
getHeaderNames 获得所有头信息名称 返回 Enumeration
- 掌握getHeader使用,遍历Enumeration 获得所有头信息
通过头信息可以进行防盗链,存在合法referer不是盗链,否则控制目标资源无法访问 (因为直接输入网址的情况没有refer的头信息)
*
通过URL 绕过盗链判断
(三)获取请求参数
请求参数:用户通过请求提交服务器的一些数据—–< a href=https://blog.csdn.net/Megustas_JJC/article/details/”url?xxx=xxx” >、< form method=”get”> 、 < form method=”post”>
可以通过getParameter(name)方法来获取
html页面: