0
点赞
收藏
分享

微信扫一扫

WEB核心【request对象】第九章


目录

​​1,request对象​​

​​1.1引言&概述​​

​​1.2请求行​​

​​1.3请求头【重点】​​

​​1.4请求体【阶段重点】​​

​​1.4.1请求参数​​

​​1.4.2乱码解决​​

1,request对象

1.1引言&概述

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

WEB核心【request对象】第九章_前端

WEB核心【request对象】第九章_请求头_02

 

WEB核心【request对象】第九章_运维_03

 

http 1.1:长链接 

1.2请求行

WEB核心【request对象】第九章_请求头_04

WEB核心【request对象】第九章_运维_05

  

WEB核心【request对象】第九章_运维_06

WEB核心【request对象】第九章_码表_07

 

1.3请求头【重点】

WEB核心【request对象】第九章_前端_08

/**
* 请求头
*/
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>");
}
}

 

1.4请求体【阶段重点】

1.4.1请求参数

请求体:post方式

请求参数:get:请求行

   post:请求体

WEB核心【request对象】第九章_请求头_09

WEB核心【request对象】第九章_服务器_10

 

/**
* 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;
}

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

小结:

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

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

单个值:getParameter()

多个值:getParameterValues()

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

1.4.2乱码解决

WEB核心【request对象】第九章_请求头_11

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

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

request.setCharacterEncoding("utf-8");

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

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

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

WEB核心【request对象】第九章_服务器_12

 

举报

相关推荐

第九章 Flask

第九章 时间

第九章JDBC

第九章_子查询

第九章 顺序容器

0 条评论