HttpServletRequest(JAVAEE3)

HttpServletRequest

1. HttpServletRequest概述

客户端发送给服务器端的数据。 我们在创建Servlet时会覆盖service()⽅法,或doGet()/doPost(),这些⽅法都有两个参数,代表 请求的request和代表响应response。 service⽅法中的request的类型是ServletRequest,⽽doGet/doPost⽅法的request的类型是 HttpServletRequest,HttpServletRequest是ServletRequest的⼦接⼝,功能和⽅法更加强⼤, 所以我们学习HttpServletRequest。

request: ServletRequest  HttpServletRequest
    客户端 -> 服务器(Servlet)  get方法
    URL: 协议 + ip + port + uri
    URI: 统一资源路径 从 / 开始

2. request的运⾏流程

所有的被访问的资源都Servlet处理的 ,没有Servlet对象的资源会调用 默认的Servlet

3. 通过抓包⼯具抓取Http请求

 因为request代表请求,所以我们可以通过该对象分别获得Http请求的请求⾏、请求头和请求 体。

4 通过request获得请求⾏

  • 获得客户端的请求⽅式:String getMethod()
  • 获得请求的资源:
    • String getRequestURI() -- 获取请求URI
    • StringBuffer getRequestURL() --获取请求行,?后面的是参数
    • String getContextPath() -- 获取应用的虚拟⽬录
    • String getServletPath() -- 获取Servlet路径
    • String getQueryString() -- 获取get⽅式请求参数  username=zhangsan&password=123
    • String getRemoteAddr() -- 获取客户机的IP地址
@Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        // 1.获得请求行信息
        // 请求方式
        String method = req.getMethod(); // 大写
        System.out.println(method);
        // URI
        String uri = req.getRequestURI();
        System.out.println(uri);
        String url = req.getRequestURL().toString();
        System.out.println(url);
        // 获得客户端IP地址
        String addr = req.getRemoteAddr();
        System.out.println(addr);
    }

5 通过request获得请求头

  • long getDateHeader(String name)
  • String getHeader(String name)
  • int getIntHeader(String name)
  • Enumeration getHeaderNames() -- 获取所有的请求头名称
  • 常⻅的请求头:
    • 1. User-Agent:浏览器告诉服务器,我访问你使⽤的浏览器版本信息 作⽤:可以在服务器端获取该头的信息,解决浏览器的兼容性问题
    • 2.Referer:告诉服务器,我(当前请求)从哪⾥来?作⽤:防盗链 

防盗:通过Referer的URL 可以判断请求的来源,从而过滤不是自己的请求;
        通过Referer里面有没有包含关键词来过滤 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值