HttpServletRequest request 方法記錄

今天在使用request中的一些方法時:對request中的方法還不明確,特此記錄一下。

常用獲取url參數的方法:參考地址https://www.cnblogs.com/panxuejun/p/7743436.html

1、request.getRequestURL()

返回的是完整的url,包括Http協議,端口號,servlet名字和映射路徑,但它不包含請求參數。
2、request.getRequestURI()

得到的是request URL的部分值,並且web容器沒有decode過的

3、request.getContextPath() 

返回對應springboot中 tomcat 配置的 server.context-path

4、request.getServletPath() 
返回調用servlet的部分url. 對應@requestmapping 配置

5、request.getQueryString() 
返回url路徑後面的查詢字符串

以下爲實際請求結果情況:

post:http://127.0.0.1:19000/api/filesys/requestTest?url=https://image.baidu.com/search/detail?ct=503316480&z=0&ipn=d&word=百度&step_word=&hs=0&pn=1&spn=0&di=26290&pi=0&rn=1&tn=baiduimagedetail&is=0%2C0&istype=0&ie=utf-8&oe=utf-8&in=&cl=2&lm=-1&st=undefined&cs=1259821177%2C3195294575&os=2658457481%2C3885594412&simid=4173905492%2C658294463&adpicid=0&lpn=0&ln=1488&fr=&fmq=1573028929370_R&fm=&ic=undefined&s=undefined&hd=undefined&latest=undefined&copyright=undefined&se=&sme=&tab=0&width=undefined&height=undefined&face=undefined&ist=&jit=&cg=&bdtype=0&oriquery=&objurl=http%3A%2F%2Fa.36krcnd.com%2Fphoto%2F2014%2F5be404781da19da8778d6cbf0296acc1.jpg&fromurl=ippr_z2C%24qAzdH3FAzdH3Fnmh6_z%26e3Bv54AzdH3FrAzdH3Fd8cc90_z%26e3Bip4s&gsm=&rpstart=0&rpnum=0&islist=&querylist=&force=undefined

 

1. request.getQueryString();

結果: url=https://image.baidu.com/search/detail?ct=503316480&z=0&ipn=d&word=%E7%99%BE%E5%BA%A6&step_word=&hs=0&pn=1&spn=0&di=26290&pi=0&rn=1&tn=baiduimagedetail&is=0%2C0&istype=0&ie=utf-8&oe=utf-8&in=&cl=2&lm=-1&st=undefined&cs=1259821177%2C3195294575&os=2658457481%2C3885594412&simid=4173905492%2C658294463&adpicid=0&lpn=0&ln=1488&fr=&fmq=1573028929370_R&fm=&ic=undefined&s=undefined&hd=undefined&latest=undefined&copyright=undefined&se=&sme=&tab=0&width=undefined&height=undefined&face=undefined&ist=&jit=&cg=&bdtype=0&oriquery=&objurl=http%3A%2F%2Fa.36krcnd.com%2Fphoto%2F2014%2F5be404781da19da8778d6cbf0296acc1.jpg&fromurl=ippr_z2C%24qAzdH3FAzdH3Fnmh6_z%26e3Bv54AzdH3FrAzdH3Fd8cc90_z%26e3Bip4s&gsm=&rpstart=0&rpnum=0&islist=&querylist=&force=undefined

2. request.getContentType();

結果: null

3. request.getRequestURI();

結果: /api/filesys/requestTest

4. request.getRequestURL();

結果: http://127.0.0.1:19000/api/filesys/requestTest

5. request.getServletPath();

結果: /requestTest

6. request.getContextPath();

結果: /api/filesys

7. request.getScheme();

結果: http

8. request.getServerPort();

結果: 19000

9. request.getServerName();

結果: 127.0.0.1

10. request.getParameter("url");

結果: https://image.baidu.com/search/detail?ct=503316480

注意

這裏request 獲取方法的結果不一定會實際地址所一致,是因爲request方法受 請求headers 中host 和origin的配置影響 所以導致請求路徑和實際會有所不同

特別注意的是從上述例子可以看出,getParameter 獲取的參數是以&分割的,會受&影響

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章