目录

  • 一、HttpServletRequest定义:
  • 二、HttpServletRequest对象作用:
  • 三、HttpServletRequest和HttpServletResponse生命周期:
  • 四、HttpServletRequest中常用方法:
  • 五、关于HttpServletRequest请求域:

一、HttpServletRequest定义:

  1. HttpServletRequest 是一个接口,全限定名称:jakarta.servlet.http.HttpServletRequest;
  2. HttpServletRequest 接口是Servlet规范中的一员。
  3. HttpServeltRequest 接口的父类接口是 ServeltRequest
  4. Tomcat服务器实现了HttpServletRequest接口。

二、HttpServletRequest对象作用:

  1. 封装了Http协议的请求协议,HTTP请求协议中的包括请求行、请求头、请求体。
  2. 实际上是用户发送请求的时候,遵循了HTTP协议,发送的HTTP的请求协议,Tomcat服务器将HTTP协议中的信息以及数据全部解析出来,然后Tomcat服务器把这些信息封装到HttpServletRequest对象中,传给了我们javaweb程序员。
  3. 所以说如果我们想获取HTTP请求报文中的信息,我们只需要面向HttpServletRequest接口编程,调用他的方法。

三、HttpServletRequest和HttpServletResponse生命周期:

  1. 每个对象的生命周期都很短,仅在HTTP请求报文或HTTP响应报文传输的时候存在。
  2. 一个HTTP请求报文对应一个HttpServletRequest对象,一个HTTP响应报文对应一个HttpServletResponse对象。

四、HttpServletRequest中常用方法:

Parameter:参数,是前端传过来的数据
initParameter:初始化参数,是存在四大域中的数据
1. 获取前端浏览器用户提交的数据:

String getParameter(String)//key对应的value数组中的第一个元素

Map<String,String[ ]> getParameterMap()//获取整个map集合

Enumeration<String.>getgetParameterNames()//获取map集合中所有key

String[ ] getParameterValues(String)//根据key获取value

因为前端提交的数据格式:

<!--前端定义该表单发送报文格式为post,发送时执行/xmm/servlet06/MyFirstServlet该java程序-->
<form action="/xmm/servlet06/MyFirstServlet" method="post">用户名<input type="text" name="username"><br>密码 <input type="text" name="userpwd"><br>兴趣<br>抽烟<input type="checkbox" name="aihao" value="123">喝酒<input type="checkbox" name="aihao" value="312">烫头<input type="checkbox" name="aihao" value="153"><input type="submit" value="注册"></form>

username=132&userpwed=111&aihao=123&aihao=312&aihao=153

所以后端存储存储前端的数据采用Map集合来存储,而且为了防止key=aihao相同value被覆盖,我们采用Map<String,String[ ]>的方法储存数据。

Map<String,String[ ]> ,key存储String,value存储String[ ]key        value---------------------username       {"132"}userpwd        {"111"}aihao          {"123","312","153"}

注意:前端永远提交的是字符串,后端永远接收的是字符串。
2. 获取客户端的IP地址

getRemoteAddr()

3. 设置post请求请求体的字符集,可以解决post请求请求体的乱码问题(但不能解决get请求乱码,因为get请求是在请求行发送数据)

setCharacterRncoding(“UTF-8”)

4. 获取应用的根路径

getContextPath()

5. 获取servlet路径(xml文件中配置的路径)

getServletPath()

6. 获取http请求的URI

getRequestURI()

7. 获取前端请求方式是get?post?…

getMethod()

8. 向HttpServletRequest请求域中存数据。

setAttribute(String name,Object value)

9. 从HttpServletRequest请求域中取数据。

getAttribute(String name)

10. 从HttpServletRequest请求域中删除数据。

removeAttribute(String name)

五、关于HttpServletRequest请求域:

  • HttpServletRequest"请求域"对象要比ServletContext"应用域"对象范围小很多,生命周期短很多。请求域只在一次请求内有效。
  • 一个request请求对象对应一个请求域对象,一次请求结束之后,这个请求域就销毁了。
  • 注意:ServletConfig是一个servlet对象对应一个servletconfig对象,而HttpServletRequest请求域是一个request请求对应一个请求域,是前端的一次请求中的信息,这个信息也不是用户输入的信息,而是我们通过setAttribute方法向请求域中存的信息,前端request请求结束后这个请求域就销毁了。简言之:一个是面向单个servlet对象,一个是面向单个http请求。

HttpServletRequest接口:请求域相关推荐

  1. java request获取域,Java Web - Servlet(13)HttpServletRequest详解(获取请求数据、请求分派、请求域)(二)...

    Java Web -- Servlet(13)HttpServletRequest详解(获取请求数据.请求分派.请求域)(2) HttpServletRequest ----------------- ...

  2. java跨域权重_爱站权重查询 API 接口请求调用

    原标题:爱站权重查询 API 接口请求调用 爱站权重查询 API 接口在网上已经很多且大都封装成了 API 供别人调用.支持前台跨域请求,以GET/POST方式提交即可.爱站权重查询 API 接口可以 ...

  3. 【springboot】【若依(ruoyi)】@RestController 接口跨域请求

    前言 springboot 2.1.1.RELEASE 360极速浏览器 12.0.1476.0 (正式版本) (32 位) jquery 3.5.0 接口跨域请求有两者方式: jsonp CORS ...

  4. php跨域请求解决方案_解决TP接口跨域问题

    首先在入口文件添加 也就是public下的index.php目录下添加 // [ 应用入口文件 ] // 处理跨域需遇见请求 if(isset($_SERVER['REQUEST_METHOD'])& ...

  5. Servlet | HttpServletRequest接口、通过request接口获取请求参数

    目录 一:HttpServletRequest接口 二:通过request接口获取请求参数 一:HttpServletRequest接口 (1)HttpServletRequest是一个接口,全限定名 ...

  6. axios 前端请求接口 跨域问题 Vue实现跨域请求

    在前端写接口请求的时候,遇到了跨域的问题.(在一个项目工程中通过接口请求另一个项目工程中的数据) 通过在线api测试 https://getman.cn或者postman接口测试工具,都能正常请求到数 ...

  7. Servlet入门篇(GenericServlet 类 - HttpServlet 类 -ServletConfig 接口 - HttpServletRequest 接口……)

    1.Servlet 简介 Servlet 对请求的处理和响应过程可分为以下几个步骤: (1)客户端发送请求至服务器端: (2)服务器将请求信息发送至 Servlet : (3)Servlet 生成响应 ...

  8. httpservletrequest 设置请求头_请求和常用对象

    ## 一.主要内容 ![](https://raw.githubusercontent.com/Cushier/picture-java/master/middle/20190712150414.pn ...

  9. 前端调用第三方接口跨域问题(淘宝)

    前端调用第三方接口跨域问题 百度了好久,大部分的文章都前篇一律的说jsonp跨域,要不就是说配置CROS.看到那种文章出处应该都是一家,心好累.首先来说淘宝目前的接口是不支持jsonp请求的,配置CR ...

最新文章

  1. 轻松获取LAMP,LNMP环境编译参数配置
  2. OpenGL ES 详解纹理生成和纹理映射步骤以及函数
  3. Log4Net使用详解(续)
  4. 函数要多小才够好——谈小函数之道
  5. VS调用matlab
  6. C语言中的隐式声明是什么,有什么危害?warning: implicit declaration of function ‘xxx’
  7. Python 2退出历史舞台 一句话证明它的重要性
  8. 在Laravel中使用数据库事务以及捕获事务失败后的异常
  9. 仿生蠕虫机器人制作步骤_鸭子机器人领衔,盘点2019年上半年那些有趣的仿生机器人...
  10. 昇腾万里·让AI无所不及!DevRun开发者沙龙在武汉成功举办
  11. axios发送post数据后台收不到_axios 发 post 请求,后端接收不到参数的解决方案
  12. java -虹软Caused by: java.lang.UnsatisfiedLinkError: Can‘t load library: **\WIN64\libarcsoft_face.dll
  13. Q90:简易地模拟透明材质(Simple Transparency)
  14. CSV 导入SQL Server(bulk insert方式)
  15. python判断是否包含某数字_python如何判断数组里是否有某个数字
  16. 中国漂粉精市场深度调查及战略研究报告(2022版)
  17. Springboot-项目启动加载类
  18. Monkey框架(测试方法篇) - monkey日志分析
  19. 消息中间件 RocketMQ的单机安装
  20. 全面拥抱云 用友U9 cloud来了

热门文章

  1. HelpDesk/ServiceDesk
  2. 反恐SCAN验厂的主要内容
  3. C#模拟PrtScn实现截屏
  4. python3 ..../%E7%9B%B8%E5%86%8C/ 把乱码部分改为汉字。编码。
  5. 等距离分箱matlab代码,数据挖掘实验(二)数据预处理【等深分箱与等宽分箱】...
  6. 计算机操作系统的教学目标,《操作系统》课程教学大纲.doc.doc
  7. 通讯行业的标准和规范
  8. GreenDao存List案例
  9. 计算机软件著作权申请步骤
  10. zed2相机简单使用