Servlet总结十一:HttpServletRequest接口
wxin55 2024-10-27 15:57 12 浏览 0 评论
1、HttpServletRequest是一个接口,Servlet规范中重要的接口之一;
2、继承关系:public interface HttpServletRequest extends ServletRequest;
3、HttpServletRequest接口的实现类是Web容器负责的,Tomcat服务器有自己的实现。但是程序要还是只需要面向HttpServletRequest接口调用方法即可,不需要关心具体的实现类;
4、HttpServletRequest这个对象中封装了哪些信息?
1、请求方式
2、URI
3、协议版本号
4、表单提交的数据
5、HttpServletRequest对象代表一次请求,一次请求执行一次service()方法,对应一个request对象,100个请求对应100个request对象,所以request对象的生命周期是短暂的;
什么是一次请求?到目前为止,我们可以这样理解一次请求:在网页上点击超链接,到最终网页停下来,这就是一次完整的请求;(后面学习重定向,浏览器会自动跳转到其他地址,会重新发送新的请求,这句话就不正确了)
6、表单提交的这些数据被自动封装在request对象中了 表单数据是这样的格式提交的,POST请求,在请求体中提交,数据格式:
username=admin&password=123&sex=boy&interest=sport&interest=music&grade=gz&introduce=student
表单提交的数据会自动封装到request对象中,request对象中有一个Map集合,存储这些数据
Map<String, String>
key value(value是数组)
----------------------------------------------------------------------
username {"admin"}
password {"123"}
sex {"boy"}
interest {"sport",music}
grade {"gz"}
introduce {"IAmAStudent"}
7、HttpServletRequest中常用的方法
表单提交的数据会封装在request对象的Map集合中,key是name,value是一个一维数组
/*获取浏览器提交的数据*/
String getParameter(String name) 获取key对应的一维数组的首元素
Map getParameterMap() 获取request对象中的Map集合
Enumeration getParameterNames() 获取所有的Map集合中所有的key
String[] getP arameterValues(String name) 返回String数组,数组包含key对应的多个value值
/*获取路径、URL、URI、IP*/
String getContextPath() 获取上下文路径(web项目根路径)
String getMethod() 获取浏览器请求方式
String getRequestURI() 获取请求的URI
StringBuffer getRequestURL() 获取请求的URL
String getServletPath() 获取请求的ServletPath,即servlet对应的请求路径
String getRemoteAddr() 获取客户端IP地址
/*从一次请求对应的HttpServletRequest对象范围中增删查数据*/
Object getAttribute(String name) 从此次请求对应的request对象范围中获取数据
void setAttribute(String name, Object o) 从此次请求对应的request对象范围中存储数据
void removeAttribute(String name) 从此次请求对应的request对象范围中删除数据
/*请求转发器*/
RequestDispatcher getRequestDispatcher(String path) 获取请求转发器
/*编码*/
void setCharacterEncoding(String env) 覆盖此请求正文中使用的字符编码的名称
/**/
HttpSession getSession() 返回与此请求关联的当前会话,或者如果该请求没有会话,则创建一个。
Cookie[] getCookies() 返回一个数组,其中包含Cookie 客户端与此请求一起发送的所有对象。
8、HttpServletRequest和ServletContext的范围
1、HttpServletRequest是一次请求对应一个request对象,所以范围小
2、ServletContext是webapp的上下文对象,范围极大
3、setAttribute、getAttribute、removeAttribute这些方法,在ServletContext和ServletContext接口中都存在,用来在其各自的范围内进行数据的增删查,所以在request对象的范围增删查和在Servlet上下文对象的范围增删查是不一样,且互不干扰的
9、一次请求Servlet对应的request对象,在此request中存储数据,可以在此request对象中取出;但是在另一次请求Servlet对应的request对象,是没有第一次请求时在request对象中添加的数据的。要解决这个不同请求对应的不同request对象之间无法共享数据的问题,需要使用请求转发技术。
相关推荐
- Java框架 —— Spring简介
-
简介一般来说,Spring指的是SpringFramework,它提供了很多功能,例如:控制反转(IOC)、依赖注入(DI)、切面编程(AOP)、事务管理(TX)主要jar包org.sprin...
- Monkey自动化测试
-
Monkey1.通过Monkey程序模拟用户触摸屏幕、滑动Trackball、按键等操作来对设备上的程序进行压力测试,检测程序多久的时间会发生异常;2.Monkey主要用于Android的压力...
- 十年之重修SpringBoot启动&自动装载&Bean加载过程
-
总结Springboot的自动装载,完全是依赖Bean的自动注册,其中默认的规则,是把需要自动装载的bean全名称编辑在spring.factories(2.7之后的版本,还支持.imports文件)...
- 一些可以显著提高大型 Java 项目启动速度的尝试
-
我们线上的业务jar包基本上普遍比较庞大,动不动一个jar包上百M,启动时间在分钟级,拖慢了我们在故障时快速扩容的响应。于是做了一些分析,看看Java程序启动慢到底慢在哪里,如何去优化,...
- class 增量发包改造为 jar 包方式发布
-
大纲class增量发包介绍项目目录结构介绍jar包方式发布落地方案class增量发包介绍当前项目的迭代修复都是通过class增量包来发版本的将改动的代码class增量打包,如下图cla...
- Flink架构及其工作原理(很详细)
-
原文链接:https://www.cnblogs.com/code2one/p/10123112.html关键词:Flink架构、面试杀手锏!更多大数据架构、实战经验,欢迎关注【大数据与机器学习】,...
- 大促系统优化之应用启动速度优化实践
-
作者:京东零售宋维飞一、前言本文记录了在大促前针对SpringBoot应用启动速度过慢而采取的优化方案,主要介绍了如何定位启动速度慢的阻塞点,以及如何解决这些问题。希望可以帮助大家了解如何定位该类问...
- Maven工程如何使用非Maven仓库jar包
-
使用Maven之前,一直都是自己手工在网上搜索需要的jar包,然后添加到工程中。以这样的方式开发,工作了好多年,曾经以为以后也会一直这样下去。直到碰上Maven,用了第一次,就抛弃老方法了。Maven...
- 【推荐】一款开源免费、功能强大的短链接生成平台
-
项目介绍reduce是一款开源免费、功能强大的短链接生成平台。部署在服务器,使用短域名解析即可提供服务。CoodyFramework首秀,自写IOC、MVC、ORM、TASK、JSON、DB连接池、...
- K8S官方java客户端之七:patch操作
-
欢迎访问我的GitHubhttps://github.com/zq2599/blog_demos内容:所有原创文章分类汇总及配套源码,涉及Java、Docker、Kubernetes、DevOPS等;...
- Java 的业务逻辑验证框架 之-fluent-validator
-
开发人员在维护核心业务逻辑的同时,还需要为输入做严格的校验。当输入不合法时,能够给caller一个明确的反馈,最常见的反馈就是返回封装了result的对象或者抛出exception。一些常见...
- 互联网大厂后端必看!手把手教你替换 Spring Boot 中的日志框架
-
在互联网大厂的后端开发工作中,SpringBoot框架是搭建项目的“得力助手”,使用十分普遍。但不少开发者都遇到过这样的困扰:SpringBoot默认集成的Logback日志框架,在实际...
- 测试经理教你如何用monkey进行压力测试!
-
一、monkey是什么1、monkey程序由android系统自带,使用Java语言写成,在Android文件系统中的存放路径是:/system/framework/monkey.jar2、Mo...
- Java-Maven详解
-
一、什么是Maven?ApacheMaven是一个软件项目管理的综合工具。基于项目对象模型(POM)的概念,提供了帮助管理构建、文档、报告、依赖、发布等方法,Maven简化和标准化项目建设过程。处理...
- SpringBoot打包部署最佳实践
-
springboot介绍SpringBoot目前流行的javaweb应用开发框架,相比传统的spring开发,springboot极大简化了配置,并且遵守约定优于配置的原则即使0配置也能正常运...
你 发表评论:
欢迎- 一周热门
- 最近发表
- 标签列表
-
- hive行转列函数 (63)
- sourcemap文件是什么 (54)
- display none 隐藏后怎么显示 (56)
- 共享锁和排他锁的区别 (51)
- httpservletrequest 获取参数 (64)
- jstl包 (64)
- qsharedmemory (50)
- watch computed (53)
- java中switch (68)
- date.now (55)
- git-bash (56)
- 盒子垂直居中 (68)
- npm是什么命令 (62)
- python中+=代表什么 (70)
- fsimage (51)
- nginx break (61)
- mysql分区表的优缺点 (53)
- centos7切换到图形界面 (55)
- 前端深拷贝 (62)
- kmp模式匹配算法 (57)
- jsjson字符串转json对象 (53)
- jdbc connection (61)
- javascript字符串转换为数字 (54)
- mybatis 使用 (73)
- 安装mysql数据库 (55)