WEB核心【request对象】第九章

简介: 目录1,request对象1.1引言&概述1.2请求行1.3请求头【重点】1.4请求体【阶段重点】1.4.1请求参数1.4.2乱码解决request封装了 浏览器发来请求的三部分(行、头、体) http 1.1:长链接 请求体:post方式请求参数:get:请求行 post:请求体 小结:toBean: 该参数列表较为复杂,参数列表需要进行servlet---

 1,request对象

1.1引言&概述

request封装了 浏览器发来请求的三部分(行、头、体)

image.gif编辑

image.gif编辑

image.gif编辑

http 1.1:长链接

1.2请求行

image.gif编辑

image.gif编辑

image.gif编辑

image.gif编辑

1.3请求头【重点】

image.gif编辑

/**
 * 请求头
 */
public void run2() throws IOException {
    PrintWriter out = getResponse().getWriter();
    HttpServletRequest request = getRequest();
    // 获取请求消息中所有头字段
    Enumeration headerNames = request.getHeaderNames();
    // 使用循环遍历所有请求头,并通过getHeader()方法获取一个指定名称的头字段
    while (headerNames.hasMoreElements()) {
        String headerName = (String) headerNames.nextElement();
        out.print(headerName + " : "
                + request.getHeader(headerName)+ "<br>");
    }
}

image.gif

1.4请求体【阶段重点】

1.4.1请求参数

请求体:post方式

请求参数:get:请求行

  post:请求体

image.gif编辑

image.gif编辑

/**
 * get
 */
public String runa(){
    String uname1 = getRequest().getParameter("uname");
    System.out.println(uname1);
    String hobby1 = getRequest().getParameter("hobby");
    System.out.println(hobby1);
    String[] unames = getRequest().getParameterValues("uname");
    System.out.println(Arrays.toString(unames));
    String[] hobby = getRequest().getParameterValues("hobby");
    System.out.println(Arrays.toString(hobby));
    //获取整个参数列表
    System.out.println("-----------");
    Map<String, String[]> map = getRequest().getParameterMap();
    for (Map.Entry<String, String[]> entry : map.entrySet()) {
        System.out.println(entry.getKey()+"="+Arrays.toString(entry.getValue()));
    }
    return null;
}

image.gif

Enumeration<String> enumeration = getRequest().getParameterNames();
while (enumeration.hasMoreElements()){
    String key = enumeration.nextElement();
    System.out.println(key);
}

image.gif

小结:

toBean: 该参数列表较为复杂,参数列表需要进行servlet---service---dao的参数传递

若仅需要单独获取某个参数的值,不涉及进行参数传递、复用:

单个值:getParameter()

多个值:getParameterValues()

获取整个参数列表:getParameterMap();

1.4.2乱码解决

image.gif编辑

String str1 = getRequest().getParameter("uname");
System.out.println("乱码:"+str1);
str1 = new String(str1.getBytes("iso8859-1"),"utf-8");
System.out.println("解决乱码:"+str1);

image.gif

post请求参数,因为存在于请求体中,可以通过设置请求体解码码表为utf-8 来解决乱码问题(baseServlet已经帮我们解决):

request.setCharacterEncoding("utf-8");

get请求参数,因为存在于请求行上,请求行没有方法直接修改码表,只能停止tomcat,通过修改tomcat码表改为utf-8才可以,但是不建议。

处理方法:一个一个参数转

new String("乱码".getBytes("iso8859-1"),"utf-8");

image.gif编辑


相关文章
|
移动开发 负载均衡 安全
Web Security 之 HTTP request smuggling(上)
Web Security 之 HTTP request smuggling
313 0
|
3月前
|
前端开发 开发者
new操作符背后的秘密:揭开Web前端对象创建的神秘面纱!
【8月更文挑战第23天】在Web前端开发中,`new`操作符是创建对象实例的核心。本文以`Person`构造函数为例,通过四个步骤解析`new`操作符的工作原理:创建空对象、设置新对象原型、执行构造函数并调整`this`指向、判断并返回最终对象。了解这些有助于开发者更好地理解对象实例化过程,从而编写出更规范、易维护的代码。
39 0
|
网络安全
Caused by: org.springframework.web.client.ResourceAccessException: I/O error on POST request for "http://xxxx.svc.cluster.local:8080/xxxx": Connection reset; nested exception is java.net.SocketException: Connection reset 什么原因导致得
Caused by: org.springframework.web.client.ResourceAccessException: I/O error on POST request for "xxxx.svc.cluster.local:8080/xxxx ": Connection reset; nested exception is java.net.SocketException: Connection reset 什么原因导致得
2125 0
|
2月前
|
前端开发 Java
org.springframework.web.multipart.MultipartException: Current request is not a multipart request
org.springframework.web.multipart.MultipartException: Current request is not a multipart request
70 0
|
3月前
|
XML JavaScript 测试技术
Web自动化测试框架(基础篇)--HTML页面元素和DOM对象
本文为Web自动化测试入门指南,介绍了HTML页面元素和DOM对象的基础知识,以及如何使用Python中的Selenium WebDriver进行元素定位、操作和等待机制,旨在帮助初学者理解Web自动化测试中的关键概念和操作技巧。
53 1
|
3月前
|
开发者 Java Spring
【绝技揭秘】掌握Vaadin数据绑定:一键同步Java对象,告别手动数据烦恼,轻松玩转Web应用开发!
【8月更文挑战第31天】Vaadin不仅是一个功能丰富的Java Web应用框架,还提供了强大的数据绑定机制,使开发者能轻松连接UI组件与后端Java对象,简化Web应用开发流程。本文通过创建一个简单的用户信息表单示例,详细介绍了如何使用Vaadin的`Binder`类实现数据绑定,包括字段与模型属性的双向绑定及数据验证。通过这个示例,开发者可以更专注于业务逻辑而非繁琐的数据同步工作,提高开发效率和应用可维护性。
84 0
|
4月前
|
开发框架 JSON 前端开发
利用查询条件对象,在Asp.net Web API中实现对业务数据的分页查询处理
利用查询条件对象,在Asp.net Web API中实现对业务数据的分页查询处理
|
3月前
|
开发框架 中间件 .NET
分享 ASP.NET Core Web Api 中间件获取 Request Body 两个方法
分享 ASP.NET Core Web Api 中间件获取 Request Body 两个方法
127 0
|
5月前
|
开发框架 .NET API
ASP.NET Core Web中使用AutoMapper进行对象映射
ASP.NET Core Web中使用AutoMapper进行对象映射
|
6月前
|
JavaScript 前端开发 索引
【Web 前端】JQ对象和DOM元素之间如何转换?
【4月更文挑战第22天】【Web 前端】JQ对象和DOM元素之间如何转换?

热门文章

最新文章

下一篇
无影云桌面