JAVAEE_Servlet_14_HttpServletRequest接口以及常用方法(一)
HttpServletRequest接口
* javax.servlet.http.HttpServletRequest 接口
* 继承关系 HttpServletRequest---继承---> ServletRequest
* HttpServletRequest定义了 doGet() 和 doPost方法中的一个参数  public void doPost(HttpServletRequest request, HttpServletResponse response)
* HttpServletRequest 接口的实现类是WebApp容器负责实现的,例如TomCat服务器,程序员只需要面向接口掉用方法即可
* HttpServletRequest中封装了什么信息呢? javax.servlet.http.HttpServletResquest 中封装了HTTP请求的全部内容
  - 包括:
       1.请求方式 
       2.URI
       3.协议版本号
       4.表单提交过来的传给后台的数据 (用户名,密码等等)
* HttpServletResquest 变量名一般叫做 request 表示请求。
* 一个HttpServletResquest对象 代表前台的一次请求,一次请求对应一个resquest对象,100个请求代表100个resquest对象,所以 request的生命周期是短暂的。
* 什么是一次请求?   可以这样理解一次请求,我们在网页上点击超链接,到最终网页加载完成,就是一次请求。一次请求那么就会创建一个HttpServletResquest,100个请求就会创建100个HttpServletResquest对象.
* 表单数据是怎么提交的?
  - POST请求数据在请求体中提交 。
       > 数据格式例如: username=admin&password=123&sex=male&interest=music
       > 表单提交的数据会自动封装到request对象中,在request对象中Map集合存储这些数据 ,实质上数据结构是Map<String ,String[]>
HttpServletRequest中常用的方法
* 第一类:获取form表单提交的数据
       String        getParameter(String name)          通过key获取value这个一维数组的首元素
       String[]      getParameterValues(String name)    通过key获取value 返回是一个String数组
       Map           getParameterMap()                  获取整个map集合
       Enumeration   getParameterNames()                获取这个Map集合的所有key
* 获取form表单数据(用户在form表单中提交的数据会自动封装在HttpServletRequest中,实质上是以String类型的一维数组的方式存储的,key是数组名,填写的值是数组元素)
   - 获取方式 1:   String    getParameter(String name)    通过 key 获取一个对应的 value值,也就是获取到一维数组的首元素值,该方法只能获取到首元素
          String name= requset.getParameter("username");
          String password= requset.getParameter("password");
          String email=requset.getParameter("Email");
          String hobby= requset.getParameter("hobby");   hobby可以有多个值,但是如果用该方法获取,只能获取到第一个值。
  - 获取方式 2   String[]  getParameterValues(String name)  通过key获取该key值所对应的所有value值, 返回值是一个String类型的数组。
          String[] hobbies=requset.getParameterValues("favorite");
          for (String hobby:hobbies) {
              System.out.println(hobby);
          }
  - 获取方式 3:  Map    getParameterMap()     获取整个map集合
       // 获取整个Map
        Map<String,String[]> userInfo=requset.getParameterMap();
       // 获取Map集合中的key部分,一个set集合
        Set<String> names=userInfo.keySet();
       //创建迭代器
        Iterator iterator=names.iterator();
      // 遍历该Set集合
        while(iterator.hasNext()){
            // 获取集合中的每一个元素(key)
            String name=(String)iterator.next();
            System.out.print(name+" ");
            // 通过获取的key获取Map集合中对应的value
            String[] values=userInfo.get(name);
            for (String value:values) {
                System.out.println(value);
            }
        }
 -  获取方式 4:  Enumeration   getParameterNames()   获取这个Map集合的所有key
            // 获取所有的name(key)
             Enumeration names=requset.getParameterNames();
            //遍历该集合
            while(names.hasMoreElements()){
                System.out.println(names.nextElement());
            }JAVAEE_Servlet_14_HttpServletRequest接口以及常用方法(一)的更多相关文章
- java中集合类中Collection接口中的Map接口的常用方法熟悉
		1:Map接口提供了将键映射到值的对象.一个映射不能包含重复的键:每个键最多只能映射到一个值.Map接口中同样提供了集合的常用方法. 2:由于Map集合中的元素是通过key,value,进行存储的,要 ... 
- java中集合类中Collection接口中的Set接口的常用方法熟悉
		1:Set集合由Set接口和Set接口的实现类组成,Set接口继承了Collection接口,因为包含Collection接口的所有方法. 2:由于Set接口中不允许存在重复值,因此可以使用Set集合 ... 
- java中集合类中Collection接口中的List接口的常用方法熟悉
		1:集合类,在java语言中的java.util包提供了一些集合类,这些集合类又被称作容器. 2:区别集合类和数组.(1)数组的长度是固定的,集合的长度是可变的.(2)数组是用来存放基本数据类型的,集 ... 
- 集合概述及Collection接口的常用方法
		java集合像是一种容器,可以动态的把多个对象的引用放到容器中 java的集合类可以用于存储数量不等的多个对象,还可以用于保存具有映射关系的关联数组 package com.aff.coll; imp ... 
- Collection接口的常用方法
		[添加功能] boolean add(Object obj); //添加一个元素. boolean addAll(Collection c); //添加一个集合的元素(在后面追加). [删除功能] v ... 
- Python 接口自动化常用方法封装
		#!/usr/bin/env python # -*- coding:utf-8 -*- # ************************************* # @Time : 2019/ ... 
- Java集合框架的四个接口
		接口 [四个接口 collection list set map 的区别] collection 存储不唯一的无序的数据 list 存储有序的不唯一的数据 set 存储无序的唯一的数据 m ... 
- Java集合框架之四大接口、常用实现类
		Java集合框架 <Java集合框架的四大接口> Collection:存储无序的.不唯一的数据:其下有List和Set两大接口. List:存储有序的.不唯一的数据: Set:存储无序的 ... 
- java内部类、接口、集合框架、泛型、工具类、实现类
		.t1 { background-color: #ff8080; width: 1100px; height: 40px } 一.内部类 1.成员内部类. (1)成员内部类的实例化: 外部类名.内部类 ... 
随机推荐
- Java基础语法:final修饰符
			一.final类 描述: 用'final'修饰的类不能被继承,没有子类. 例如,我们是无法写一个类去继承String类,然后对String类型扩展的,因为API中已经将String类定义为'final ... 
- 你要是还学不会,请提刀来见 Typora+PicGo+Gitee + node.js 打造个人高效稳定优雅图床
			你要是还学不会,请提刀来见 Typora+PicGo+Gitee + node.js 打造个人高效稳定优雅图床 经过前面两弹的介绍,相信大家对图床都不陌生了吧, 但是小魔童觉得这样做法还是不方便,使用 ... 
- Tango with django 1.9 中文——2.准备工作
			在正式开始写代码之前,设置好开发环境是非常重要的.你要确保所有必须的组件都已安装好.本章将概述五个你需要了解的关键组件的设置和使用.清单如下: 使用命令行 Python Python包管理器pip和虚 ... 
- JavaScript实现动态添加员工
			html代码: <div id="empAdd"> <fieldset> <legend><strong>添加员工</stro ... 
- 剑指 Offer 36. 二叉搜索树与双向链表 + 中序遍历 + 二叉排序树
			剑指 Offer 36. 二叉搜索树与双向链表 Offer_36 题目描述 题解分析 本题考查的是二叉树的中序遍历以及二叉排序树的特征(二叉排序树的中序遍历序列是升序序列) 利用排序二叉树中序遍历的性 ... 
- golang——net/rpc/jsonrpc包学习
			1.jsonrpc包 该实现了JSON-RPC的ClientCodec和ServerCodec接口,可用于rpc包. 可用于跨语言使用go rpc服务. 2.常用方法 (1)func Dial(net ... 
- 【HTB系列】靶机Bitlab的渗透测试
			出品|MS08067实验室(www.ms08067.com) 本文作者:是大方子(Ms08067实验室核心成员) 0x00 本文目录 反思与总结 基本信息 渗透测试过程 补充 0x01 反思与总结 c ... 
- 24端口以太网FPGA的开发板
			板卡架构 板载FPGA(K7-325T)处理24端口10/100/1000M以太网数据: FPGA外挂4Gbit的DDR3颗粒,最大支持800MHz: 板载CPU进行系统配置.管理,并与客户端软件通信 ... 
- 代码审查:从 ArrayList 说线程安全
			本文从代码审查过程中发现的一个 ArrayList 相关的「线程安全」问题出发,来剖析和理解线程安全. 案例分析 前两天在代码 Review 的过程中,看到有小伙伴用了类似以下的写法: List< ... 
- Cai Xukun and Orz Pandas Gym - 102309C
			题目链接:https://vjudge.net/problem/Gym-102309C 题意:给定蔡徐坤投篮的位置和篮筐的位置以及最大初速度,求一个初速度和时间. 思路:一开始我以为要用到二分,后面仔 ... 
