Javaweb学习笔记7(Request、获取请求数据、请求转发、数据共享)

Request类

在实现了servlet的方法后,可以看到service方法里面有Request和Response
在这里插入图片描述

Request和Response的原理

图解:
在这里插入图片描述
request对象和response对象的原理

  1. request和response对象是由服务器创建的。我们来使用它们
  2. request对象是来获取请求消息,response对象是来设置响应消息

Request的体系结构

ServletRequest		--	接口
	|	继承
HttpServletRequest	-- 接口
	|	实现
org.apache.catalina.connector.RequestFacade 类
(tomcat编写,通过这个类来创建Request对象并传递给service方法)

首先我们可以试一下,继承了HttpServlet后,实现他的doGET方法,发现有一个req,我们尝试输出他这个req
在这里插入图片描述
得到如下
在这里插入图片描述

Request对象的作用

获取请求消息数据

获取请求行数据

GET /day14/demo1?name=abc HTTP/1.1

  • 方法:
    1. 获取请求方式 :GET
      • String getMethod()
    2. (常用)获取虚拟目录:/request
      • String getContextPath()
    3. 获取Servlet路径: /demo1
      • String getServletPath()
    4. 获取get方式请求参数:name=zhangsan
      • String getQueryString()
    5. (常用)获取请求URI:/request/demo1
      • String getRequestURI():/request/demo1
      • StringBuffer getRequestURL():http://localhost/request/demo1
      • URL:统一资源定位符 : http://localhost/request/demo1 例如中华人民共和国
      • URI:统一资源标识符 :/request/demo1 例如共和国
    6. 获取协议及版本:HTTP/1.1
      • String getProtocol()
    7. 获取客户机的IP地址:
      • String getRemoteAddr()
@WebServlet("/demo1")
public class Demo1 extends HttpServlet {
   
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
   
        // 获取请求方式
        String method = req.getMethod();
        System.out.println(method);
        // 获取虚拟目录
        String contextPath = req.getContextPath();
        System.out.println(contextPath);
        // 获取Servlet目录
        String servletPath = req.getServletPath();
        System.out.println(servletPath);
        // 获取get方式请求的参数
        String queryString = req.getQueryString();
        System.out.println(queryString);
        // 获取请求URI
        String requestURI = req.getRequestURI();
        System.out.println(requestURI);
        // 获取请求URL
        StringBuffer requestURL = req.getRequestURL();
        System.out.println(requestURL);
        // 获取用户的ip
        String remoteUser = req.getRemoteUser();
        System.out.println(remoteUser);
    }
    
}

在这里插入图片描述

在这里插入图片描述

获取请求头数据

方法:

  • (常用)String getHeader(String name):通过请求头的名称获取请求头的值
  • Enumeration<String> getHeaderNames():获取所有的请求头名称,封装了一下
@WebServlet
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

huamanggg

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值