Request(请求)&Response(响应)

Request&Response


在这里插入图片描述

Request(请求)

Request继承体系

在这里插入图片描述

注:

1.Tomcat需要解析请求数据,封装为request对象,并且创建request对象传递到service方法中。

2.使用request对象,查阅javaEE API文档的 HttpServletRequest接口

Request获取请求数据(核心功能)

获取请求数据

1.请求行:

GET /request-demo/req1?username=zhangsan HTTP/2
  • String getMethod():获取请求方式:GET
  • Strintg getContextPath():获取虚拟目录(项目访问路径):/request-demo
  • StringBuffer get RequestURL():获取URL(统一资源定位符):http://local:8080/request-demo/req1
  • String get RequestURI():获取URL(统一资源标识符):/request-demo/req1
  • String getQueryString():获取请求参数(GET方式):username=zhangsan&password=123

2.请求头

User-Agent:Mozilla/5.0 Chrome/91.0.4472.106
  • String getHeader(String name):根据请求头名称获取值

3.请求体

POST请求才有请求体

  • ServletinputStream getinputStream();获取字节输入流
  • BufferedReader getReader():获取字符输入流
通用方式获取请求参数
  • GET:

    String getQueryString()
    
  • POST

    BufferedReader getReader()
    

思考:

get请求方式与post请求方式区别在于获取请求参数的方式不一样,是否可以提供一种统一获取请求参数的方式,从而统一doGet与doPost方法内的代码?

Request通用方式获取请求参数

  • Map<String,String[]> getParameterMap():获取所有参数map集合
  • String[] getParameterValues(String name):根据名称获取参数值(数组)
  • String getParameter(String name):根据名称获取参数值(单个)
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.Map;

@WebServlet("/req2")
public class RequestDemo2 extends HttpServlet {
   

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
   
        System.out.println("get.....");

        //1.获取所有的Map集合
        Map<String, String[]> map = req.getParameterMap();
        for (String key : map.keySet()) {
   
            //username;zhangsan
            System.out.print(key+":");

            String[] values = map.get(key);
            for (<
  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

玥骋

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

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

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

打赏作者

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

抵扣说明:

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

余额充值