httpservletrequest

通过request对象抓包获得请求行 请求头 请求体,三个结构里分别封装了各类信息如图

 

 我们通过request获得请求行 通过getmethod获得请求方式, getRequestURI() 获得URI  getRequestURL()获取URL,getcontextpath()获得web应用名,getQueryString()获得get方式提交的参数,getRemoteAddr()获得客户端的ip地址

我们分别使用一下

 

获得请求头,我们可以使用Referer头做防盗链,使用getheader方法,得到的信息进行判定,如果是本地的话,该链接是自制的,如果是别的ip,就是盗取的连接。

获得请求体 通过getParameter(传的是name属性值),只能获取单个值,使用getParameterValues(string数组),获取一个name多个值,也可以通过request.getParameterMap() 将所有的key和value存入map集合 ,获取所有key所在的set集合进行遍历。

解决请求体的提交的乱码问题,通过setCharacterEncoding("UTF-8"),因为get请求方式在请求行中所有了另外一种方式uname=new String(uname.getBytes("ISO8859-1"),"UTF-8"),先转成拉丁码表之后再转回utf,这样只能单个改,这样也没有关系,因为大多数请求都是post请求,少数get也是传入英文和数字,几乎没有中文传入。

posted @ 2021-03-10 11:53  Dyl啊  阅读(93)  评论(0)    收藏  举报