HttpServletRequest接口:请求域
目录
- 一、HttpServletRequest定义:
- 二、HttpServletRequest对象作用:
- 三、HttpServletRequest和HttpServletResponse生命周期:
- 四、HttpServletRequest中常用方法:
- 五、关于HttpServletRequest请求域:
一、HttpServletRequest定义:
- HttpServletRequest 是一个接口,全限定名称:jakarta.servlet.http.HttpServletRequest;
- HttpServletRequest 接口是Servlet规范中的一员。
- HttpServeltRequest 接口的父类接口是 ServeltRequest
- Tomcat服务器实现了HttpServletRequest接口。
二、HttpServletRequest对象作用:
- 封装了Http协议的请求协议,HTTP请求协议中的包括请求行、请求头、请求体。
- 实际上是用户发送请求的时候,遵循了HTTP协议,发送的HTTP的请求协议,Tomcat服务器将HTTP协议中的信息以及数据全部解析出来,然后Tomcat服务器把这些信息封装到HttpServletRequest对象中,传给了我们javaweb程序员。
- 所以说如果我们想获取HTTP请求报文中的信息,我们只需要面向HttpServletRequest接口编程,调用他的方法。
三、HttpServletRequest和HttpServletResponse生命周期:
- 每个对象的生命周期都很短,仅在HTTP请求报文或HTTP响应报文传输的时候存在。
- 一个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接口:请求域相关推荐
- java request获取域,Java Web - Servlet(13)HttpServletRequest详解(获取请求数据、请求分派、请求域)(二)...
Java Web -- Servlet(13)HttpServletRequest详解(获取请求数据.请求分派.请求域)(2) HttpServletRequest ----------------- ...
- java跨域权重_爱站权重查询 API 接口请求调用
原标题:爱站权重查询 API 接口请求调用 爱站权重查询 API 接口在网上已经很多且大都封装成了 API 供别人调用.支持前台跨域请求,以GET/POST方式提交即可.爱站权重查询 API 接口可以 ...
- 【springboot】【若依(ruoyi)】@RestController 接口跨域请求
前言 springboot 2.1.1.RELEASE 360极速浏览器 12.0.1476.0 (正式版本) (32 位) jquery 3.5.0 接口跨域请求有两者方式: jsonp CORS ...
- php跨域请求解决方案_解决TP接口跨域问题
首先在入口文件添加 也就是public下的index.php目录下添加 // [ 应用入口文件 ] // 处理跨域需遇见请求 if(isset($_SERVER['REQUEST_METHOD'])& ...
- Servlet | HttpServletRequest接口、通过request接口获取请求参数
目录 一:HttpServletRequest接口 二:通过request接口获取请求参数 一:HttpServletRequest接口 (1)HttpServletRequest是一个接口,全限定名 ...
- axios 前端请求接口 跨域问题 Vue实现跨域请求
在前端写接口请求的时候,遇到了跨域的问题.(在一个项目工程中通过接口请求另一个项目工程中的数据) 通过在线api测试 https://getman.cn或者postman接口测试工具,都能正常请求到数 ...
- Servlet入门篇(GenericServlet 类 - HttpServlet 类 -ServletConfig 接口 - HttpServletRequest 接口……)
1.Servlet 简介 Servlet 对请求的处理和响应过程可分为以下几个步骤: (1)客户端发送请求至服务器端: (2)服务器将请求信息发送至 Servlet : (3)Servlet 生成响应 ...
- httpservletrequest 设置请求头_请求和常用对象
## 一.主要内容 ![](https://raw.githubusercontent.com/Cushier/picture-java/master/middle/20190712150414.pn ...
- 前端调用第三方接口跨域问题(淘宝)
前端调用第三方接口跨域问题 百度了好久,大部分的文章都前篇一律的说jsonp跨域,要不就是说配置CROS.看到那种文章出处应该都是一家,心好累.首先来说淘宝目前的接口是不支持jsonp请求的,配置CR ...
最新文章
- 轻松获取LAMP,LNMP环境编译参数配置
- OpenGL ES 详解纹理生成和纹理映射步骤以及函数
- Log4Net使用详解(续)
- 函数要多小才够好——谈小函数之道
- VS调用matlab
- C语言中的隐式声明是什么,有什么危害?warning: implicit declaration of function ‘xxx’
- Python 2退出历史舞台 一句话证明它的重要性
- 在Laravel中使用数据库事务以及捕获事务失败后的异常
- 仿生蠕虫机器人制作步骤_鸭子机器人领衔,盘点2019年上半年那些有趣的仿生机器人...
- 昇腾万里·让AI无所不及!DevRun开发者沙龙在武汉成功举办
- axios发送post数据后台收不到_axios 发 post 请求,后端接收不到参数的解决方案
- java -虹软Caused by: java.lang.UnsatisfiedLinkError: Can‘t load library: **\WIN64\libarcsoft_face.dll
- Q90:简易地模拟透明材质(Simple Transparency)
- CSV 导入SQL Server(bulk insert方式)
- python判断是否包含某数字_python如何判断数组里是否有某个数字
- 中国漂粉精市场深度调查及战略研究报告(2022版)
- Springboot-项目启动加载类
- Monkey框架(测试方法篇) - monkey日志分析
- 消息中间件 RocketMQ的单机安装
- 全面拥抱云 用友U9 cloud来了
热门文章
- HelpDesk/ServiceDesk
- 反恐SCAN验厂的主要内容
- C#模拟PrtScn实现截屏
- python3 ..../%E7%9B%B8%E5%86%8C/ 把乱码部分改为汉字。编码。
- 等距离分箱matlab代码,数据挖掘实验(二)数据预处理【等深分箱与等宽分箱】...
- 计算机操作系统的教学目标,《操作系统》课程教学大纲.doc.doc
- 通讯行业的标准和规范
- GreenDao存List案例
- 计算机软件著作权申请步骤
- zed2相机简单使用