WEB核心【request对象】第九章

举报
爱吃豆的土豆 发表于 2022/09/25 05:32:05 2022/09/25
【摘要】 目录 1,request对象 1.1引言&概述 1.2请求行 1.3请求头【重点】 1.4请求体【阶段重点】 1.4.1请求参数 1.4.2乱码解决 1,request对象 1.1引言&概述 request封装了 浏览器发来请求的三部分(行、头、体)     h...

目录

1,request对象

1.1引言&概述

1.2请求行

1.3请求头【重点】

1.4请求体【阶段重点】

1.4.1请求参数

1.4.2乱码解决


1,request对象

1.1引言&概述

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

 

 

http 1.1:长链接 

1.2请求行

 

 

 

1.3请求头【重点】


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

 

1.4请求体【阶段重点】

1.4.1请求参数

请求体:post方式

请求参数:get:请求行

   post:请求体

 


  
  1. /**
  2. * get
  3. */
  4. public String runa(){
  5. String uname1 = getRequest().getParameter("uname");
  6. System.out.println(uname1);
  7. String hobby1 = getRequest().getParameter("hobby");
  8. System.out.println(hobby1);
  9. String[] unames = getRequest().getParameterValues("uname");
  10. System.out.println(Arrays.toString(unames));
  11. String[] hobby = getRequest().getParameterValues("hobby");
  12. System.out.println(Arrays.toString(hobby));
  13. //获取整个参数列表
  14. System.out.println("-----------");
  15. Map<String, String[]> map = getRequest().getParameterMap();
  16. for (Map.Entry<String, String[]> entry : map.entrySet()) {
  17. System.out.println(entry.getKey()+"="+Arrays.toString(entry.getValue()));
  18. }
  19. return null;
  20. }

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

小结:

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

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

单个值:getParameter()

多个值:getParameterValues()

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

1.4.2乱码解决


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

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

request.setCharacterEncoding("utf-8");

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

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

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

 

文章来源: qianxu.blog.csdn.net,作者:爱吃豆的土豆,版权归原作者所有,如需转载,请联系作者。

原文链接:qianxu.blog.csdn.net/article/details/125079289

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。