今天在使用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路徑後面的查詢字符串
以下爲實際請求結果情況:
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©right=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 獲取的參數是以&分割的,會受&影響